PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.13.0
Code Block Pro – Beautiful Syntax Highlighting v1.13.0
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / cpp-macro.tmLanguage.json

cpp-macro.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.13.0, at build/shiki/languages/cpp-macro.tmLanguage.json

9,301 lines 351.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "information_for_contributors": [
3 "This file has been converted from https://github.com/jeff-hykin/better-cpp-syntax/blob/master/autogenerated/cpp.embedded.macro.tmLanguage.json",
4 "If you want to provide a fix or improvement, please create a pull request against the original repository.",
5 "Once accepted there, we are happy to receive an update request."
6 ],
7 "version": "https://github.com/jeff-hykin/better-cpp-syntax/commit/1866de22c09781cbceacc2c98063f7bf77b1ca62",
8 "name": "cpp-macro",
9 "scopeName": "source.cpp.embedded.macro",
10 "patterns": [
11 {
12 "include": "#ever_present_context"
13 },
14 {
15 "include": "#constructor_root"
16 },
17 {
18 "include": "#destructor_root"
19 },
20 {
21 "include": "#function_definition"
22 },
23 {
24 "include": "#operator_overload"
25 },
26 {
27 "include": "#using_namespace"
28 },
29 {
30 "include": "source.cpp#type_alias"
31 },
32 {
33 "include": "source.cpp#using_name"
34 },
35 {
36 "include": "source.cpp#namespace_alias"
37 },
38 {
39 "include": "#namespace_block"
40 },
41 {
42 "include": "#extern_block"
43 },
44 {
45 "include": "#typedef_class"
46 },
47 {
48 "include": "#typedef_struct"
49 },
50 {
51 "include": "#typedef_union"
52 },
53 {
54 "include": "source.cpp#misc_keywords"
55 },
56 {
57 "include": "source.cpp#standard_declares"
58 },
59 {
60 "include": "#class_block"
61 },
62 {
63 "include": "#struct_block"
64 },
65 {
66 "include": "#union_block"
67 },
68 {
69 "include": "#enum_block"
70 },
71 {
72 "include": "source.cpp#template_isolated_definition"
73 },
74 {
75 "include": "#template_definition"
76 },
77 {
78 "include": "source.cpp#template_explicit_instantiation"
79 },
80 {
81 "include": "source.cpp#access_control_keywords"
82 },
83 {
84 "include": "#block"
85 },
86 {
87 "include": "#static_assert"
88 },
89 {
90 "include": "#assembly"
91 },
92 {
93 "include": "#function_pointer"
94 },
95 {
96 "include": "#evaluation_context"
97 }
98 ],
99 "repository": {
100 "alignas_attribute": {
101 "begin": "alignas\\(",
102 "end": "\\)|(?=(?<!\\\\)\n)",
103 "beginCaptures": {
104 "0": {
105 "name": "punctuation.section.attribute.begin.cpp"
106 }
107 },
108 "endCaptures": {
109 "0": {
110 "name": "punctuation.section.attribute.end.cpp"
111 }
112 },
113 "name": "support.other.attribute.cpp",
114 "patterns": [
115 {
116 "include": "#attributes_context"
117 },
118 {
119 "begin": "\\(",
120 "end": "\\)|(?=(?<!\\\\)\n)",
121 "beginCaptures": {},
122 "endCaptures": {},
123 "patterns": [
124 {
125 "include": "#attributes_context"
126 },
127 {
128 "include": "#string_context"
129 }
130 ]
131 },
132 {
133 "match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
134 "captures": {
135 "1": {
136 "name": "keyword.other.using.directive.cpp"
137 },
138 "2": {
139 "name": "entity.name.namespace.cpp"
140 }
141 }
142 },
143 {
144 "match": ",",
145 "name": "punctuation.separator.attribute.cpp"
146 },
147 {
148 "match": ":",
149 "name": "punctuation.accessor.attribute.cpp"
150 },
151 {
152 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
153 "name": "entity.name.namespace.cpp"
154 },
155 {
156 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
157 "name": "entity.other.attribute.$0.cpp"
158 },
159 {
160 "include": "source.cpp#number_literal"
161 }
162 ]
163 },
164 "alignas_operator": {
165 "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
166 "end": "\\)|(?=(?<!\\\\)\n)",
167 "beginCaptures": {
168 "1": {
169 "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"
170 },
171 "2": {
172 "patterns": [
173 {
174 "include": "source.cpp#inline_comment"
175 }
176 ]
177 },
178 "3": {
179 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
180 },
181 "4": {
182 "name": "comment.block.cpp"
183 },
184 "5": {
185 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
186 },
187 "6": {
188 "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"
189 }
190 },
191 "endCaptures": {
192 "0": {
193 "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
194 }
195 },
196 "contentName": "meta.arguments.operator.alignas",
197 "patterns": [
198 {
199 "include": "#evaluation_context"
200 }
201 ]
202 },
203 "alignof_operator": {
204 "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
205 "end": "\\)|(?=(?<!\\\\)\n)",
206 "beginCaptures": {
207 "1": {
208 "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"
209 },
210 "2": {
211 "patterns": [
212 {
213 "include": "source.cpp#inline_comment"
214 }
215 ]
216 },
217 "3": {
218 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
219 },
220 "4": {
221 "name": "comment.block.cpp"
222 },
223 "5": {
224 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
225 },
226 "6": {
227 "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"
228 }
229 },
230 "endCaptures": {
231 "0": {
232 "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
233 }
234 },
235 "contentName": "meta.arguments.operator.alignof",
236 "patterns": [
237 {
238 "include": "#evaluation_context"
239 }
240 ]
241 },
242 "assembly": {
243 "begin": "(\\b(?:__asm__|asm)\\b)(?:(?:\\s)+)?((?:volatile)?)",
244 "end": "(?!\\G)|(?=(?<!\\\\)\n)",
245 "beginCaptures": {
246 "1": {
247 "name": "storage.type.asm.cpp"
248 },
249 "2": {
250 "name": "storage.modifier.cpp"
251 }
252 },
253 "endCaptures": {},
254 "name": "meta.asm.cpp",
255 "patterns": [
256 {
257 "match": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:\\n)|$)",
258 "captures": {
259 "1": {
260 "patterns": [
261 {
262 "include": "source.cpp#inline_comment"
263 }
264 ]
265 },
266 "2": {
267 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
268 },
269 "3": {
270 "name": "comment.block.cpp"
271 },
272 "4": {
273 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
274 }
275 }
276 },
277 {
278 "include": "#comments"
279 },
280 {
281 "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))\\(",
282 "end": "\\)|(?=(?<!\\\\)\n)",
283 "beginCaptures": {
284 "0": {
285 "name": "punctuation.section.parens.begin.bracket.round.assembly.cpp"
286 },
287 "1": {
288 "patterns": [
289 {
290 "include": "source.cpp#inline_comment"
291 }
292 ]
293 },
294 "2": {
295 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
296 },
297 "3": {
298 "name": "comment.block.cpp"
299 },
300 "4": {
301 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
302 }
303 },
304 "endCaptures": {
305 "0": {
306 "name": "punctuation.section.parens.end.bracket.round.assembly.cpp"
307 }
308 },
309 "patterns": [
310 {
311 "begin": "(R?)(\")",
312 "end": "\"|(?=(?<!\\\\)\n)",
313 "beginCaptures": {
314 "1": {
315 "name": "meta.encoding.cpp"
316 },
317 "2": {
318 "name": "punctuation.definition.string.begin.assembly.cpp"
319 }
320 },
321 "endCaptures": {
322 "0": {
323 "name": "punctuation.definition.string.end.assembly.cpp"
324 }
325 },
326 "name": "string.quoted.double.cpp",
327 "contentName": "meta.embedded.assembly",
328 "patterns": [
329 {
330 "include": "source.asm"
331 },
332 {
333 "include": "source.x86"
334 },
335 {
336 "include": "source.x86_64"
337 },
338 {
339 "include": "source.arm"
340 },
341 {
342 "include": "source.cpp#backslash_escapes"
343 },
344 {
345 "include": "#string_escaped_char"
346 }
347 ]
348 },
349 {
350 "begin": "\\(",
351 "end": "\\)|(?=(?<!\\\\)\n)",
352 "beginCaptures": {
353 "0": {
354 "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp"
355 }
356 },
357 "endCaptures": {
358 "0": {
359 "name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp"
360 }
361 },
362 "patterns": [
363 {
364 "include": "#evaluation_context"
365 }
366 ]
367 },
368 {
369 "match": "\\[((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))\\]",
370 "captures": {
371 "1": {
372 "patterns": [
373 {
374 "include": "source.cpp#inline_comment"
375 }
376 ]
377 },
378 "2": {
379 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
380 },
381 "3": {
382 "name": "comment.block.cpp"
383 },
384 "4": {
385 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
386 },
387 "5": {
388 "name": "variable.other.asm.label.cpp"
389 },
390 "6": {
391 "patterns": [
392 {
393 "include": "source.cpp#inline_comment"
394 }
395 ]
396 },
397 "7": {
398 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
399 },
400 "8": {
401 "name": "comment.block.cpp"
402 },
403 "9": {
404 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
405 }
406 }
407 },
408 {
409 "match": ":",
410 "name": "punctuation.separator.delimiter.colon.assembly.cpp"
411 },
412 {
413 "include": "#comments"
414 }
415 ]
416 }
417 ]
418 },
419 "attributes_context": {
420 "patterns": [
421 {
422 "include": "#cpp_attributes"
423 },
424 {
425 "include": "#gcc_attributes"
426 },
427 {
428 "include": "#ms_attributes"
429 },
430 {
431 "include": "#alignas_attribute"
432 }
433 ]
434 },
435 "block": {
436 "begin": "{",
437 "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?=(?<!\\\\)\n)",
438 "beginCaptures": {
439 "0": {
440 "name": "punctuation.section.block.begin.bracket.curly.cpp"
441 }
442 },
443 "endCaptures": {
444 "0": {
445 "name": "punctuation.section.block.end.bracket.curly.cpp"
446 }
447 },
448 "name": "meta.block.cpp",
449 "patterns": [
450 {
451 "include": "#function_body_context"
452 }
453 ]
454 },
455 "block_comment": {
456 "begin": "\\s*+(\\/\\*)",
457 "end": "\\*\\/|(?=(?<!\\\\)\n)",
458 "beginCaptures": {
459 "1": {
460 "name": "punctuation.definition.comment.begin.cpp"
461 }
462 },
463 "endCaptures": {
464 "0": {
465 "name": "punctuation.definition.comment.end.cpp"
466 }
467 },
468 "name": "comment.block.cpp"
469 },
470 "builtin_storage_type_initilizer": {
471 "begin": "(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)(?:\\s)*+(?<!\\w)(\\()",
472 "end": "\\)|(?=(?<!\\\\)\n)",
473 "beginCaptures": {
474 "1": {
475 "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
476 },
477 "2": {
478 "name": "storage.type.cpp storage.type.built-in.cpp"
479 },
480 "3": {
481 "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
482 },
483 "4": {
484 "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
485 },
486 "5": {
487 "name": "punctuation.section.arguments.begin.bracket.round.initializer.cpp"
488 }
489 },
490 "endCaptures": {
491 "0": {
492 "name": "punctuation.section.arguments.end.bracket.round.initializer.cpp"
493 }
494 },
495 "patterns": [
496 {
497 "include": "#evaluation_context"
498 }
499 ]
500 },
501 "case_statement": {
502 "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)case(?!\\w))",
503 "end": ":|(?=(?<!\\\\)\n)",
504 "beginCaptures": {
505 "1": {
506 "patterns": [
507 {
508 "include": "source.cpp#inline_comment"
509 }
510 ]
511 },
512 "2": {
513 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
514 },
515 "3": {
516 "name": "comment.block.cpp"
517 },
518 "4": {
519 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
520 },
521 "5": {
522 "name": "keyword.control.case.cpp"
523 }
524 },
525 "endCaptures": {
526 "0": {
527 "name": "punctuation.separator.colon.case.cpp"
528 }
529 },
530 "name": "meta.conditional.case.cpp",
531 "patterns": [
532 {
533 "include": "#evaluation_context"
534 }
535 ]
536 },
537 "class_block": {
538 "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
539 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
540 "beginCaptures": {
541 "0": {
542 "name": "meta.head.class.cpp"
543 },
544 "1": {
545 "name": "storage.type.$1.cpp"
546 },
547 "2": {
548 "patterns": [
549 {
550 "include": "source.cpp#inline_comment"
551 }
552 ]
553 },
554 "3": {
555 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
556 },
557 "4": {
558 "name": "comment.block.cpp"
559 },
560 "5": {
561 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
562 },
563 "6": {
564 "patterns": [
565 {
566 "include": "#attributes_context"
567 },
568 {
569 "include": "source.cpp#number_literal"
570 }
571 ]
572 },
573 "7": {
574 "patterns": [
575 {
576 "include": "source.cpp#inline_comment"
577 }
578 ]
579 },
580 "8": {
581 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
582 },
583 "9": {
584 "name": "comment.block.cpp"
585 },
586 "10": {
587 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
588 },
589 "11": {
590 "patterns": [
591 {
592 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))",
593 "captures": {
594 "1": {
595 "name": "storage.type.modifier.final.cpp"
596 },
597 "2": {
598 "patterns": [
599 {
600 "include": "source.cpp#inline_comment"
601 }
602 ]
603 },
604 "3": {
605 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
606 },
607 "4": {
608 "name": "comment.block.cpp"
609 },
610 "5": {
611 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
612 }
613 }
614 },
615 {
616 "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
617 "captures": {
618 "1": {
619 "name": "entity.name.type.class.cpp"
620 },
621 "2": {
622 "patterns": [
623 {
624 "include": "source.cpp#inline_comment"
625 }
626 ]
627 },
628 "3": {
629 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
630 },
631 "4": {
632 "name": "comment.block.cpp"
633 },
634 "5": {
635 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
636 },
637 "6": {
638 "name": "storage.type.modifier.final.cpp"
639 },
640 "7": {
641 "patterns": [
642 {
643 "include": "source.cpp#inline_comment"
644 }
645 ]
646 },
647 "8": {
648 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
649 },
650 "9": {
651 "name": "comment.block.cpp"
652 },
653 "10": {
654 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
655 }
656 }
657 },
658 {
659 "match": "DLLEXPORT",
660 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
661 },
662 {
663 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
664 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
665 }
666 ]
667 },
668 "12": {
669 "patterns": [
670 {
671 "include": "source.cpp#inline_comment"
672 }
673 ]
674 },
675 "13": {
676 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
677 },
678 "14": {
679 "name": "comment.block.cpp"
680 },
681 "15": {
682 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
683 },
684 "16": {
685 "patterns": [
686 {
687 "include": "source.cpp#inline_comment"
688 }
689 ]
690 },
691 "17": {
692 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
693 },
694 "18": {
695 "name": "comment.block.cpp"
696 },
697 "19": {
698 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
699 },
700 "20": {
701 "name": "punctuation.separator.colon.inheritance.cpp"
702 }
703 },
704 "endCaptures": {
705 "1": {
706 "name": "punctuation.terminator.statement.cpp"
707 },
708 "2": {
709 "name": "punctuation.terminator.statement.cpp"
710 }
711 },
712 "name": "meta.block.class.cpp",
713 "patterns": [
714 {
715 "begin": "\\G ?",
716 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
717 "beginCaptures": {},
718 "endCaptures": {
719 "0": {
720 "name": "punctuation.section.block.begin.bracket.curly.class.cpp"
721 }
722 },
723 "name": "meta.head.class.cpp",
724 "patterns": [
725 {
726 "include": "#ever_present_context"
727 },
728 {
729 "include": "#inheritance_context"
730 },
731 {
732 "include": "#template_call_range"
733 }
734 ]
735 },
736 {
737 "begin": "(?<=\\{|<%|\\?\\?<)",
738 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
739 "beginCaptures": {},
740 "endCaptures": {
741 "0": {
742 "name": "punctuation.section.block.end.bracket.curly.class.cpp"
743 }
744 },
745 "name": "meta.body.class.cpp",
746 "patterns": [
747 {
748 "include": "#function_pointer"
749 },
750 {
751 "include": "#static_assert"
752 },
753 {
754 "include": "#constructor_inline"
755 },
756 {
757 "include": "#destructor_inline"
758 },
759 {
760 "include": "$self"
761 }
762 ]
763 },
764 {
765 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
766 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
767 "beginCaptures": {},
768 "endCaptures": {},
769 "name": "meta.tail.class.cpp",
770 "patterns": [
771 {
772 "include": "$self"
773 }
774 ]
775 }
776 ]
777 },
778 "comments": {
779 "patterns": [
780 {
781 "begin": "^(?:(?:\\s)+)?+(\\/\\/[!\\/]+)",
782 "end": "(?<=\\n)(?<!\\\\\\n)|(?=(?<!\\\\)\n)",
783 "beginCaptures": {
784 "1": {
785 "name": "punctuation.definition.comment.documentation.cpp"
786 }
787 },
788 "endCaptures": {},
789 "name": "comment.line.double-slash.documentation.cpp",
790 "patterns": [
791 {
792 "include": "source.cpp#line_continuation_character"
793 },
794 {
795 "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
796 "name": "storage.type.class.doxygen.cpp"
797 },
798 {
799 "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
800 "captures": {
801 "1": {
802 "name": "storage.type.class.doxygen.cpp"
803 },
804 "2": {
805 "name": "markup.italic.doxygen.cpp"
806 }
807 }
808 },
809 {
810 "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
811 "captures": {
812 "1": {
813 "name": "storage.type.class.doxygen.cpp"
814 },
815 "2": {
816 "name": "markup.bold.doxygen.cpp"
817 }
818 }
819 },
820 {
821 "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
822 "captures": {
823 "1": {
824 "name": "storage.type.class.doxygen.cpp"
825 },
826 "2": {
827 "name": "markup.inline.raw.string.cpp"
828 }
829 }
830 },
831 {
832 "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
833 "name": "storage.type.class.doxygen.cpp"
834 },
835 {
836 "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
837 "name": "storage.type.class.doxygen.cpp"
838 },
839 {
840 "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
841 "captures": {
842 "1": {
843 "name": "storage.type.class.doxygen.cpp"
844 },
845 "2": {
846 "patterns": [
847 {
848 "match": "in|out",
849 "name": "keyword.other.parameter.direction.$0.cpp"
850 }
851 ]
852 },
853 "3": {
854 "name": "variable.parameter.cpp"
855 }
856 }
857 },
858 {
859 "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
860 "name": "storage.type.class.doxygen.cpp"
861 },
862 {
863 "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
864 "name": "storage.type.class.doxygen.cpp"
865 },
866 {
867 "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
868 "name": "storage.type.class.gtkdoc.cpp"
869 }
870 ]
871 },
872 {
873 "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",
874 "captures": {
875 "1": {
876 "name": "punctuation.definition.comment.begin.documentation.cpp"
877 },
878 "2": {
879 "patterns": [
880 {
881 "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
882 "name": "storage.type.class.doxygen.cpp"
883 },
884 {
885 "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
886 "captures": {
887 "1": {
888 "name": "storage.type.class.doxygen.cpp"
889 },
890 "2": {
891 "name": "markup.italic.doxygen.cpp"
892 }
893 }
894 },
895 {
896 "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
897 "captures": {
898 "1": {
899 "name": "storage.type.class.doxygen.cpp"
900 },
901 "2": {
902 "name": "markup.bold.doxygen.cpp"
903 }
904 }
905 },
906 {
907 "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
908 "captures": {
909 "1": {
910 "name": "storage.type.class.doxygen.cpp"
911 },
912 "2": {
913 "name": "markup.inline.raw.string.cpp"
914 }
915 }
916 },
917 {
918 "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
919 "name": "storage.type.class.doxygen.cpp"
920 },
921 {
922 "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
923 "name": "storage.type.class.doxygen.cpp"
924 },
925 {
926 "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
927 "captures": {
928 "1": {
929 "name": "storage.type.class.doxygen.cpp"
930 },
931 "2": {
932 "patterns": [
933 {
934 "match": "in|out",
935 "name": "keyword.other.parameter.direction.$0.cpp"
936 }
937 ]
938 },
939 "3": {
940 "name": "variable.parameter.cpp"
941 }
942 }
943 },
944 {
945 "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
946 "name": "storage.type.class.doxygen.cpp"
947 },
948 {
949 "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
950 "name": "storage.type.class.doxygen.cpp"
951 },
952 {
953 "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
954 "name": "storage.type.class.gtkdoc.cpp"
955 }
956 ]
957 },
958 "3": {
959 "name": "punctuation.definition.comment.end.documentation.cpp"
960 }
961 },
962 "name": "comment.block.documentation.cpp"
963 },
964 {
965 "begin": "(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))",
966 "end": "[!*]*\\*\\/|(?=(?<!\\\\)\n)",
967 "beginCaptures": {
968 "0": {
969 "name": "punctuation.definition.comment.begin.documentation.cpp"
970 }
971 },
972 "endCaptures": {
973 "0": {
974 "name": "punctuation.definition.comment.end.documentation.cpp"
975 }
976 },
977 "name": "comment.block.documentation.cpp",
978 "patterns": [
979 {
980 "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
981 "name": "storage.type.class.doxygen.cpp"
982 },
983 {
984 "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
985 "captures": {
986 "1": {
987 "name": "storage.type.class.doxygen.cpp"
988 },
989 "2": {
990 "name": "markup.italic.doxygen.cpp"
991 }
992 }
993 },
994 {
995 "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
996 "captures": {
997 "1": {
998 "name": "storage.type.class.doxygen.cpp"
999 },
1000 "2": {
1001 "name": "markup.bold.doxygen.cpp"
1002 }
1003 }
1004 },
1005 {
1006 "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
1007 "captures": {
1008 "1": {
1009 "name": "storage.type.class.doxygen.cpp"
1010 },
1011 "2": {
1012 "name": "markup.inline.raw.string.cpp"
1013 }
1014 }
1015 },
1016 {
1017 "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
1018 "name": "storage.type.class.doxygen.cpp"
1019 },
1020 {
1021 "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
1022 "name": "storage.type.class.doxygen.cpp"
1023 },
1024 {
1025 "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
1026 "captures": {
1027 "1": {
1028 "name": "storage.type.class.doxygen.cpp"
1029 },
1030 "2": {
1031 "patterns": [
1032 {
1033 "match": "in|out",
1034 "name": "keyword.other.parameter.direction.$0.cpp"
1035 }
1036 ]
1037 },
1038 "3": {
1039 "name": "variable.parameter.cpp"
1040 }
1041 }
1042 },
1043 {
1044 "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
1045 "name": "storage.type.class.doxygen.cpp"
1046 },
1047 {
1048 "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
1049 "name": "storage.type.class.doxygen.cpp"
1050 },
1051 {
1052 "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
1053 "name": "storage.type.class.gtkdoc.cpp"
1054 }
1055 ]
1056 },
1057 {
1058 "include": "source.cpp#emacs_file_banner"
1059 },
1060 {
1061 "include": "#block_comment"
1062 },
1063 {
1064 "include": "#line_comment"
1065 },
1066 {
1067 "include": "source.cpp#invalid_comment_end"
1068 }
1069 ]
1070 },
1071 "constructor_inline": {
1072 "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())",
1073 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
1074 "beginCaptures": {
1075 "0": {
1076 "name": "meta.head.function.definition.special.constructor.cpp"
1077 },
1078 "1": {
1079 "patterns": [
1080 {
1081 "include": "source.cpp#inline_comment"
1082 }
1083 ]
1084 },
1085 "2": {
1086 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1087 },
1088 "3": {
1089 "name": "comment.block.cpp"
1090 },
1091 "4": {
1092 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1093 },
1094 "5": {
1095 "patterns": [
1096 {
1097 "include": "source.cpp#functional_specifiers_pre_parameters"
1098 }
1099 ]
1100 },
1101 "6": {
1102 "patterns": [
1103 {
1104 "include": "source.cpp#inline_comment"
1105 }
1106 ]
1107 },
1108 "7": {
1109 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1110 },
1111 "8": {
1112 "name": "comment.block.cpp"
1113 },
1114 "9": {
1115 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1116 },
1117 "10": {
1118 "patterns": [
1119 {
1120 "include": "source.cpp#inline_comment"
1121 }
1122 ]
1123 },
1124 "11": {
1125 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1126 },
1127 "12": {
1128 "name": "comment.block.cpp"
1129 },
1130 "13": {
1131 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1132 },
1133 "14": {
1134 "name": "storage.type.modifier.calling-convention.cpp"
1135 },
1136 "15": {
1137 "patterns": [
1138 {
1139 "include": "source.cpp#inline_comment"
1140 }
1141 ]
1142 },
1143 "16": {
1144 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1145 },
1146 "17": {
1147 "name": "comment.block.cpp"
1148 },
1149 "18": {
1150 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1151 },
1152 "19": {
1153 "name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"
1154 }
1155 },
1156 "endCaptures": {},
1157 "name": "meta.function.definition.special.constructor.cpp",
1158 "patterns": [
1159 {
1160 "begin": "\\G ?",
1161 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
1162 "beginCaptures": {},
1163 "endCaptures": {
1164 "0": {
1165 "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
1166 }
1167 },
1168 "name": "meta.head.function.definition.special.constructor.cpp",
1169 "patterns": [
1170 {
1171 "include": "#ever_present_context"
1172 },
1173 {
1174 "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
1175 "captures": {
1176 "1": {
1177 "name": "keyword.operator.assignment.cpp"
1178 },
1179 "2": {
1180 "patterns": [
1181 {
1182 "include": "source.cpp#inline_comment"
1183 }
1184 ]
1185 },
1186 "3": {
1187 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1188 },
1189 "4": {
1190 "name": "comment.block.cpp"
1191 },
1192 "5": {
1193 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1194 },
1195 "6": {
1196 "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp"
1197 },
1198 "7": {
1199 "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"
1200 }
1201 }
1202 },
1203 {
1204 "include": "source.cpp#functional_specifiers_pre_parameters"
1205 },
1206 {
1207 "begin": ":",
1208 "end": "(?=\\{)|(?=(?<!\\\\)\n)",
1209 "beginCaptures": {
1210 "0": {
1211 "name": "punctuation.separator.initializers.cpp"
1212 }
1213 },
1214 "endCaptures": {},
1215 "patterns": [
1216 {
1217 "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",
1218 "end": "\\)|(?=(?<!\\\\)\n)",
1219 "beginCaptures": {
1220 "1": {
1221 "name": "entity.name.function.call.initializer.cpp"
1222 },
1223 "2": {
1224 "name": "meta.template.call.cpp",
1225 "patterns": [
1226 {
1227 "include": "#template_call_range"
1228 }
1229 ]
1230 },
1231 "3": {},
1232 "4": {
1233 "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1234 }
1235 },
1236 "endCaptures": {
1237 "0": {
1238 "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1239 }
1240 },
1241 "contentName": "meta.parameter.initialization",
1242 "patterns": [
1243 {
1244 "include": "#evaluation_context"
1245 }
1246 ]
1247 },
1248 {
1249 "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)",
1250 "end": "\\}|(?=(?<!\\\\)\n)",
1251 "beginCaptures": {
1252 "1": {
1253 "name": "entity.name.function.call.initializer.cpp"
1254 },
1255 "2": {
1256 "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1257 }
1258 },
1259 "endCaptures": {
1260 "0": {
1261 "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1262 }
1263 },
1264 "contentName": "meta.parameter.initialization",
1265 "patterns": [
1266 {
1267 "include": "#evaluation_context"
1268 }
1269 ]
1270 },
1271 {
1272 "match": ",",
1273 "name": "punctuation.separator.delimiter.comma.cpp"
1274 },
1275 {
1276 "include": "#comments"
1277 }
1278 ]
1279 },
1280 {
1281 "begin": "\\(",
1282 "end": "\\)|(?=(?<!\\\\)\n)",
1283 "beginCaptures": {
1284 "0": {
1285 "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
1286 }
1287 },
1288 "endCaptures": {
1289 "0": {
1290 "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
1291 }
1292 },
1293 "contentName": "meta.function.definition.parameters.special.constructor",
1294 "patterns": [
1295 {
1296 "include": "#function_parameter_context"
1297 },
1298 {
1299 "include": "#evaluation_context"
1300 }
1301 ]
1302 },
1303 {
1304 "include": "source.cpp#qualifiers_and_specifiers_post_parameters"
1305 },
1306 {
1307 "include": "$self"
1308 }
1309 ]
1310 },
1311 {
1312 "begin": "(?<=\\{|<%|\\?\\?<)",
1313 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
1314 "beginCaptures": {},
1315 "endCaptures": {
1316 "0": {
1317 "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
1318 }
1319 },
1320 "name": "meta.body.function.definition.special.constructor.cpp",
1321 "patterns": [
1322 {
1323 "include": "#function_body_context"
1324 }
1325 ]
1326 },
1327 {
1328 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
1329 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
1330 "beginCaptures": {},
1331 "endCaptures": {},
1332 "name": "meta.tail.function.definition.special.constructor.cpp",
1333 "patterns": [
1334 {
1335 "include": "$self"
1336 }
1337 ]
1338 }
1339 ]
1340 },
1341 "constructor_root": {
1342 "begin": "\\s*+((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))\\14((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=\\())",
1343 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
1344 "beginCaptures": {
1345 "0": {
1346 "name": "meta.head.function.definition.special.constructor.cpp"
1347 },
1348 "1": {
1349 "patterns": [
1350 {
1351 "include": "source.cpp#inline_comment"
1352 }
1353 ]
1354 },
1355 "2": {
1356 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1357 },
1358 "3": {
1359 "name": "comment.block.cpp"
1360 },
1361 "4": {
1362 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1363 },
1364 "5": {
1365 "name": "storage.type.modifier.calling-convention.cpp"
1366 },
1367 "6": {
1368 "patterns": [
1369 {
1370 "include": "source.cpp#inline_comment"
1371 }
1372 ]
1373 },
1374 "7": {
1375 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1376 },
1377 "8": {
1378 "name": "comment.block.cpp"
1379 },
1380 "9": {
1381 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1382 },
1383 "10": {
1384 "patterns": [
1385 {
1386 "match": "::",
1387 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
1388 },
1389 {
1390 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
1391 "name": "entity.name.scope-resolution.constructor.cpp"
1392 },
1393 {
1394 "include": "#template_call_range"
1395 }
1396 ]
1397 },
1398 "11": {
1399 "patterns": [
1400 {
1401 "include": "#template_call_range"
1402 }
1403 ]
1404 },
1405 "12": {},
1406 "13": {
1407 "patterns": [
1408 {
1409 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)",
1410 "name": "entity.name.type.constructor.cpp"
1411 },
1412 {
1413 "match": "(?<=:)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
1414 "name": "entity.name.function.definition.special.constructor.cpp"
1415 },
1416 {
1417 "match": "::",
1418 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
1419 }
1420 ]
1421 },
1422 "14": {},
1423 "15": {
1424 "patterns": [
1425 {
1426 "include": "source.cpp#inline_comment"
1427 }
1428 ]
1429 },
1430 "16": {
1431 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1432 },
1433 "17": {
1434 "name": "comment.block.cpp"
1435 },
1436 "18": {
1437 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1438 },
1439 "19": {
1440 "patterns": [
1441 {
1442 "include": "source.cpp#inline_comment"
1443 }
1444 ]
1445 },
1446 "20": {
1447 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1448 },
1449 "21": {
1450 "name": "comment.block.cpp"
1451 },
1452 "22": {
1453 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1454 },
1455 "23": {
1456 "patterns": [
1457 {
1458 "include": "source.cpp#inline_comment"
1459 }
1460 ]
1461 },
1462 "24": {
1463 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1464 },
1465 "25": {
1466 "name": "comment.block.cpp"
1467 },
1468 "26": {
1469 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1470 }
1471 },
1472 "endCaptures": {},
1473 "name": "meta.function.definition.special.constructor.cpp",
1474 "patterns": [
1475 {
1476 "begin": "\\G ?",
1477 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
1478 "beginCaptures": {},
1479 "endCaptures": {
1480 "0": {
1481 "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
1482 }
1483 },
1484 "name": "meta.head.function.definition.special.constructor.cpp",
1485 "patterns": [
1486 {
1487 "include": "#ever_present_context"
1488 },
1489 {
1490 "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
1491 "captures": {
1492 "1": {
1493 "name": "keyword.operator.assignment.cpp"
1494 },
1495 "2": {
1496 "patterns": [
1497 {
1498 "include": "source.cpp#inline_comment"
1499 }
1500 ]
1501 },
1502 "3": {
1503 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1504 },
1505 "4": {
1506 "name": "comment.block.cpp"
1507 },
1508 "5": {
1509 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1510 },
1511 "6": {
1512 "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp"
1513 },
1514 "7": {
1515 "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"
1516 }
1517 }
1518 },
1519 {
1520 "include": "source.cpp#functional_specifiers_pre_parameters"
1521 },
1522 {
1523 "begin": ":",
1524 "end": "(?=\\{)|(?=(?<!\\\\)\n)",
1525 "beginCaptures": {
1526 "0": {
1527 "name": "punctuation.separator.initializers.cpp"
1528 }
1529 },
1530 "endCaptures": {},
1531 "patterns": [
1532 {
1533 "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",
1534 "end": "\\)|(?=(?<!\\\\)\n)",
1535 "beginCaptures": {
1536 "1": {
1537 "name": "entity.name.function.call.initializer.cpp"
1538 },
1539 "2": {
1540 "name": "meta.template.call.cpp",
1541 "patterns": [
1542 {
1543 "include": "#template_call_range"
1544 }
1545 ]
1546 },
1547 "3": {},
1548 "4": {
1549 "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1550 }
1551 },
1552 "endCaptures": {
1553 "0": {
1554 "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1555 }
1556 },
1557 "contentName": "meta.parameter.initialization",
1558 "patterns": [
1559 {
1560 "include": "#evaluation_context"
1561 }
1562 ]
1563 },
1564 {
1565 "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)",
1566 "end": "\\}|(?=(?<!\\\\)\n)",
1567 "beginCaptures": {
1568 "1": {
1569 "name": "entity.name.function.call.initializer.cpp"
1570 },
1571 "2": {
1572 "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1573 }
1574 },
1575 "endCaptures": {
1576 "0": {
1577 "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1578 }
1579 },
1580 "contentName": "meta.parameter.initialization",
1581 "patterns": [
1582 {
1583 "include": "#evaluation_context"
1584 }
1585 ]
1586 },
1587 {
1588 "match": ",",
1589 "name": "punctuation.separator.delimiter.comma.cpp"
1590 },
1591 {
1592 "include": "#comments"
1593 }
1594 ]
1595 },
1596 {
1597 "begin": "\\(",
1598 "end": "\\)|(?=(?<!\\\\)\n)",
1599 "beginCaptures": {
1600 "0": {
1601 "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
1602 }
1603 },
1604 "endCaptures": {
1605 "0": {
1606 "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
1607 }
1608 },
1609 "contentName": "meta.function.definition.parameters.special.constructor",
1610 "patterns": [
1611 {
1612 "include": "#function_parameter_context"
1613 },
1614 {
1615 "include": "#evaluation_context"
1616 }
1617 ]
1618 },
1619 {
1620 "include": "source.cpp#qualifiers_and_specifiers_post_parameters"
1621 },
1622 {
1623 "include": "$self"
1624 }
1625 ]
1626 },
1627 {
1628 "begin": "(?<=\\{|<%|\\?\\?<)",
1629 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
1630 "beginCaptures": {},
1631 "endCaptures": {
1632 "0": {
1633 "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
1634 }
1635 },
1636 "name": "meta.body.function.definition.special.constructor.cpp",
1637 "patterns": [
1638 {
1639 "include": "#function_body_context"
1640 }
1641 ]
1642 },
1643 {
1644 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
1645 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
1646 "beginCaptures": {},
1647 "endCaptures": {},
1648 "name": "meta.tail.function.definition.special.constructor.cpp",
1649 "patterns": [
1650 {
1651 "include": "$self"
1652 }
1653 ]
1654 }
1655 ]
1656 },
1657 "cpp_attributes": {
1658 "begin": "\\[\\[",
1659 "end": "\\]\\]|(?=(?<!\\\\)\n)",
1660 "beginCaptures": {
1661 "0": {
1662 "name": "punctuation.section.attribute.begin.cpp"
1663 }
1664 },
1665 "endCaptures": {
1666 "0": {
1667 "name": "punctuation.section.attribute.end.cpp"
1668 }
1669 },
1670 "name": "support.other.attribute.cpp",
1671 "patterns": [
1672 {
1673 "include": "#attributes_context"
1674 },
1675 {
1676 "begin": "\\(",
1677 "end": "\\)|(?=(?<!\\\\)\n)",
1678 "beginCaptures": {},
1679 "endCaptures": {},
1680 "patterns": [
1681 {
1682 "include": "#attributes_context"
1683 },
1684 {
1685 "include": "#string_context"
1686 }
1687 ]
1688 },
1689 {
1690 "match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
1691 "captures": {
1692 "1": {
1693 "name": "keyword.other.using.directive.cpp"
1694 },
1695 "2": {
1696 "name": "entity.name.namespace.cpp"
1697 }
1698 }
1699 },
1700 {
1701 "match": ",",
1702 "name": "punctuation.separator.attribute.cpp"
1703 },
1704 {
1705 "match": ":",
1706 "name": "punctuation.accessor.attribute.cpp"
1707 },
1708 {
1709 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
1710 "name": "entity.name.namespace.cpp"
1711 },
1712 {
1713 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
1714 "name": "entity.other.attribute.$0.cpp"
1715 },
1716 {
1717 "include": "source.cpp#number_literal"
1718 }
1719 ]
1720 },
1721 "curly_initializer": {
1722 "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\{)",
1723 "end": "\\}|(?=(?<!\\\\)\n)",
1724 "beginCaptures": {
1725 "1": {
1726 "name": "meta.qualified_type.cpp",
1727 "patterns": [
1728 {
1729 "match": "::",
1730 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
1731 },
1732 {
1733 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
1734 "name": "storage.type.$0.cpp"
1735 },
1736 {
1737 "include": "#attributes_context"
1738 },
1739 {
1740 "include": "#storage_types"
1741 },
1742 {
1743 "include": "source.cpp#number_literal"
1744 },
1745 {
1746 "include": "#string_context"
1747 },
1748 {
1749 "include": "source.cpp#comma"
1750 },
1751 {
1752 "include": "source.cpp#scope_resolution_inner_generated"
1753 },
1754 {
1755 "begin": "<",
1756 "end": ">|(?=(?<!\\\\)\n)",
1757 "beginCaptures": {
1758 "0": {
1759 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
1760 }
1761 },
1762 "endCaptures": {
1763 "0": {
1764 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
1765 }
1766 },
1767 "name": "meta.template.call.cpp",
1768 "patterns": [
1769 {
1770 "include": "#template_call_context"
1771 }
1772 ]
1773 },
1774 {
1775 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
1776 "name": "entity.name.type.cpp"
1777 }
1778 ]
1779 },
1780 "2": {
1781 "patterns": [
1782 {
1783 "include": "#attributes_context"
1784 },
1785 {
1786 "include": "source.cpp#number_literal"
1787 }
1788 ]
1789 },
1790 "3": {
1791 "patterns": [
1792 {
1793 "include": "source.cpp#inline_comment"
1794 }
1795 ]
1796 },
1797 "4": {
1798 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1799 },
1800 "5": {
1801 "name": "comment.block.cpp"
1802 },
1803 "6": {
1804 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1805 },
1806 "7": {
1807 "patterns": [
1808 {
1809 "include": "source.cpp#inline_comment"
1810 }
1811 ]
1812 },
1813 "8": {
1814 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1815 },
1816 "9": {
1817 "name": "comment.block.cpp"
1818 },
1819 "10": {
1820 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1821 },
1822 "11": {
1823 "patterns": [
1824 {
1825 "match": "::",
1826 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
1827 },
1828 {
1829 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
1830 "name": "entity.name.scope-resolution.type.cpp"
1831 },
1832 {
1833 "include": "#template_call_range"
1834 }
1835 ]
1836 },
1837 "12": {
1838 "patterns": [
1839 {
1840 "include": "#template_call_range"
1841 }
1842 ]
1843 },
1844 "13": {},
1845 "14": {
1846 "patterns": [
1847 {
1848 "include": "source.cpp#inline_comment"
1849 }
1850 ]
1851 },
1852 "15": {
1853 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1854 },
1855 "16": {
1856 "name": "comment.block.cpp"
1857 },
1858 "17": {
1859 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1860 },
1861 "18": {},
1862 "19": {
1863 "patterns": [
1864 {
1865 "include": "source.cpp#inline_comment"
1866 }
1867 ]
1868 },
1869 "20": {
1870 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1871 },
1872 "21": {
1873 "name": "comment.block.cpp"
1874 },
1875 "22": {
1876 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1877 },
1878 "23": {
1879 "name": "punctuation.section.arguments.begin.bracket.curly.initializer.cpp"
1880 }
1881 },
1882 "endCaptures": {
1883 "0": {
1884 "name": "punctuation.section.arguments.end.bracket.curly.initializer.cpp"
1885 }
1886 },
1887 "name": "meta.initialization.cpp",
1888 "patterns": [
1889 {
1890 "include": "#evaluation_context"
1891 },
1892 {
1893 "include": "source.cpp#comma"
1894 }
1895 ]
1896 },
1897 "decltype": {
1898 "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
1899 "end": "\\)|(?=(?<!\\\\)\n)",
1900 "beginCaptures": {
1901 "1": {
1902 "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
1903 },
1904 "2": {
1905 "patterns": [
1906 {
1907 "include": "source.cpp#inline_comment"
1908 }
1909 ]
1910 },
1911 "3": {
1912 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1913 },
1914 "4": {
1915 "name": "comment.block.cpp"
1916 },
1917 "5": {
1918 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1919 },
1920 "6": {
1921 "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
1922 }
1923 },
1924 "endCaptures": {
1925 "0": {
1926 "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
1927 }
1928 },
1929 "contentName": "meta.arguments.decltype",
1930 "patterns": [
1931 {
1932 "include": "#evaluation_context"
1933 }
1934 ]
1935 },
1936 "decltype_specifier": {
1937 "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
1938 "end": "\\)|(?=(?<!\\\\)\n)",
1939 "beginCaptures": {
1940 "1": {
1941 "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
1942 },
1943 "2": {
1944 "patterns": [
1945 {
1946 "include": "source.cpp#inline_comment"
1947 }
1948 ]
1949 },
1950 "3": {
1951 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1952 },
1953 "4": {
1954 "name": "comment.block.cpp"
1955 },
1956 "5": {
1957 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1958 },
1959 "6": {
1960 "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
1961 }
1962 },
1963 "endCaptures": {
1964 "0": {
1965 "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
1966 }
1967 },
1968 "contentName": "meta.arguments.decltype",
1969 "patterns": [
1970 {
1971 "include": "#evaluation_context"
1972 }
1973 ]
1974 },
1975 "default_statement": {
1976 "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)default(?!\\w))",
1977 "end": ":|(?=(?<!\\\\)\n)",
1978 "beginCaptures": {
1979 "1": {
1980 "patterns": [
1981 {
1982 "include": "source.cpp#inline_comment"
1983 }
1984 ]
1985 },
1986 "2": {
1987 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1988 },
1989 "3": {
1990 "name": "comment.block.cpp"
1991 },
1992 "4": {
1993 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1994 },
1995 "5": {
1996 "name": "keyword.control.default.cpp"
1997 }
1998 },
1999 "endCaptures": {
2000 "0": {
2001 "name": "punctuation.separator.colon.case.default.cpp"
2002 }
2003 },
2004 "name": "meta.conditional.case.cpp",
2005 "patterns": [
2006 {
2007 "include": "#evaluation_context"
2008 }
2009 ]
2010 },
2011 "destructor_inline": {
2012 "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*)(~(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())",
2013 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
2014 "beginCaptures": {
2015 "0": {
2016 "name": "meta.head.function.definition.special.member.destructor.cpp"
2017 },
2018 "1": {
2019 "patterns": [
2020 {
2021 "include": "source.cpp#inline_comment"
2022 }
2023 ]
2024 },
2025 "2": {
2026 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2027 },
2028 "3": {
2029 "name": "comment.block.cpp"
2030 },
2031 "4": {
2032 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2033 },
2034 "5": {
2035 "patterns": [
2036 {
2037 "include": "source.cpp#inline_comment"
2038 }
2039 ]
2040 },
2041 "6": {
2042 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2043 },
2044 "7": {
2045 "name": "comment.block.cpp"
2046 },
2047 "8": {
2048 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2049 },
2050 "9": {
2051 "name": "storage.type.modifier.calling-convention.cpp"
2052 },
2053 "10": {
2054 "patterns": [
2055 {
2056 "include": "source.cpp#inline_comment"
2057 }
2058 ]
2059 },
2060 "11": {
2061 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2062 },
2063 "12": {
2064 "name": "comment.block.cpp"
2065 },
2066 "13": {
2067 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2068 },
2069 "14": {
2070 "patterns": [
2071 {
2072 "include": "source.cpp#functional_specifiers_pre_parameters"
2073 }
2074 ]
2075 },
2076 "15": {
2077 "patterns": [
2078 {
2079 "include": "source.cpp#inline_comment"
2080 }
2081 ]
2082 },
2083 "16": {
2084 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2085 },
2086 "17": {
2087 "name": "comment.block.cpp"
2088 },
2089 "18": {
2090 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2091 },
2092 "19": {
2093 "name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"
2094 }
2095 },
2096 "endCaptures": {},
2097 "name": "meta.function.definition.special.member.destructor.cpp",
2098 "patterns": [
2099 {
2100 "begin": "\\G ?",
2101 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
2102 "beginCaptures": {},
2103 "endCaptures": {
2104 "0": {
2105 "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
2106 }
2107 },
2108 "name": "meta.head.function.definition.special.member.destructor.cpp",
2109 "patterns": [
2110 {
2111 "include": "#ever_present_context"
2112 },
2113 {
2114 "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
2115 "captures": {
2116 "1": {
2117 "name": "keyword.operator.assignment.cpp"
2118 },
2119 "2": {
2120 "patterns": [
2121 {
2122 "include": "source.cpp#inline_comment"
2123 }
2124 ]
2125 },
2126 "3": {
2127 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2128 },
2129 "4": {
2130 "name": "comment.block.cpp"
2131 },
2132 "5": {
2133 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2134 },
2135 "6": {
2136 "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"
2137 },
2138 "7": {
2139 "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"
2140 }
2141 }
2142 },
2143 {
2144 "begin": "\\(",
2145 "end": "\\)|(?=(?<!\\\\)\n)",
2146 "beginCaptures": {
2147 "0": {
2148 "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
2149 }
2150 },
2151 "endCaptures": {
2152 "0": {
2153 "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
2154 }
2155 },
2156 "contentName": "meta.function.definition.parameters.special.member.destructor",
2157 "patterns": []
2158 },
2159 {
2160 "include": "source.cpp#qualifiers_and_specifiers_post_parameters"
2161 },
2162 {
2163 "include": "$self"
2164 }
2165 ]
2166 },
2167 {
2168 "begin": "(?<=\\{|<%|\\?\\?<)",
2169 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
2170 "beginCaptures": {},
2171 "endCaptures": {
2172 "0": {
2173 "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
2174 }
2175 },
2176 "name": "meta.body.function.definition.special.member.destructor.cpp",
2177 "patterns": [
2178 {
2179 "include": "#function_body_context"
2180 }
2181 ]
2182 },
2183 {
2184 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
2185 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
2186 "beginCaptures": {},
2187 "endCaptures": {},
2188 "name": "meta.tail.function.definition.special.member.destructor.cpp",
2189 "patterns": [
2190 {
2191 "include": "$self"
2192 }
2193 ]
2194 }
2195 ]
2196 },
2197 "destructor_root": {
2198 "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))~\\14((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=\\())",
2199 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
2200 "beginCaptures": {
2201 "0": {
2202 "name": "meta.head.function.definition.special.member.destructor.cpp"
2203 },
2204 "1": {
2205 "patterns": [
2206 {
2207 "include": "source.cpp#inline_comment"
2208 }
2209 ]
2210 },
2211 "2": {
2212 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2213 },
2214 "3": {
2215 "name": "comment.block.cpp"
2216 },
2217 "4": {
2218 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2219 },
2220 "5": {
2221 "name": "storage.type.modifier.calling-convention.cpp"
2222 },
2223 "6": {
2224 "patterns": [
2225 {
2226 "include": "source.cpp#inline_comment"
2227 }
2228 ]
2229 },
2230 "7": {
2231 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2232 },
2233 "8": {
2234 "name": "comment.block.cpp"
2235 },
2236 "9": {
2237 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2238 },
2239 "10": {
2240 "patterns": [
2241 {
2242 "match": "::",
2243 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
2244 },
2245 {
2246 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
2247 "name": "entity.name.scope-resolution.destructor.cpp"
2248 },
2249 {
2250 "include": "#template_call_range"
2251 }
2252 ]
2253 },
2254 "11": {
2255 "patterns": [
2256 {
2257 "include": "#template_call_range"
2258 }
2259 ]
2260 },
2261 "12": {},
2262 "13": {
2263 "patterns": [
2264 {
2265 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)",
2266 "name": "entity.name.type.destructor.cpp"
2267 },
2268 {
2269 "match": "(?<=:)~(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
2270 "name": "entity.name.function.definition.special.member.destructor.cpp"
2271 },
2272 {
2273 "match": "::",
2274 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
2275 }
2276 ]
2277 },
2278 "14": {},
2279 "15": {
2280 "patterns": [
2281 {
2282 "include": "source.cpp#inline_comment"
2283 }
2284 ]
2285 },
2286 "16": {
2287 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2288 },
2289 "17": {
2290 "name": "comment.block.cpp"
2291 },
2292 "18": {
2293 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2294 },
2295 "19": {
2296 "patterns": [
2297 {
2298 "include": "source.cpp#inline_comment"
2299 }
2300 ]
2301 },
2302 "20": {
2303 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2304 },
2305 "21": {
2306 "name": "comment.block.cpp"
2307 },
2308 "22": {
2309 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2310 },
2311 "23": {
2312 "patterns": [
2313 {
2314 "include": "source.cpp#inline_comment"
2315 }
2316 ]
2317 },
2318 "24": {
2319 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2320 },
2321 "25": {
2322 "name": "comment.block.cpp"
2323 },
2324 "26": {
2325 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2326 }
2327 },
2328 "endCaptures": {},
2329 "name": "meta.function.definition.special.member.destructor.cpp",
2330 "patterns": [
2331 {
2332 "begin": "\\G ?",
2333 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
2334 "beginCaptures": {},
2335 "endCaptures": {
2336 "0": {
2337 "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
2338 }
2339 },
2340 "name": "meta.head.function.definition.special.member.destructor.cpp",
2341 "patterns": [
2342 {
2343 "include": "#ever_present_context"
2344 },
2345 {
2346 "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
2347 "captures": {
2348 "1": {
2349 "name": "keyword.operator.assignment.cpp"
2350 },
2351 "2": {
2352 "patterns": [
2353 {
2354 "include": "source.cpp#inline_comment"
2355 }
2356 ]
2357 },
2358 "3": {
2359 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2360 },
2361 "4": {
2362 "name": "comment.block.cpp"
2363 },
2364 "5": {
2365 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2366 },
2367 "6": {
2368 "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"
2369 },
2370 "7": {
2371 "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"
2372 }
2373 }
2374 },
2375 {
2376 "begin": "\\(",
2377 "end": "\\)|(?=(?<!\\\\)\n)",
2378 "beginCaptures": {
2379 "0": {
2380 "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
2381 }
2382 },
2383 "endCaptures": {
2384 "0": {
2385 "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
2386 }
2387 },
2388 "contentName": "meta.function.definition.parameters.special.member.destructor",
2389 "patterns": []
2390 },
2391 {
2392 "include": "source.cpp#qualifiers_and_specifiers_post_parameters"
2393 },
2394 {
2395 "include": "$self"
2396 }
2397 ]
2398 },
2399 {
2400 "begin": "(?<=\\{|<%|\\?\\?<)",
2401 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
2402 "beginCaptures": {},
2403 "endCaptures": {
2404 "0": {
2405 "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
2406 }
2407 },
2408 "name": "meta.body.function.definition.special.member.destructor.cpp",
2409 "patterns": [
2410 {
2411 "include": "#function_body_context"
2412 }
2413 ]
2414 },
2415 {
2416 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
2417 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
2418 "beginCaptures": {},
2419 "endCaptures": {},
2420 "name": "meta.tail.function.definition.special.member.destructor.cpp",
2421 "patterns": [
2422 {
2423 "include": "$self"
2424 }
2425 ]
2426 }
2427 ]
2428 },
2429 "diagnostic": {
2430 "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:error|warning)))\\b(?:(?:\\s)+)?",
2431 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
2432 "beginCaptures": {
2433 "1": {
2434 "name": "keyword.control.directive.diagnostic.$7.cpp"
2435 },
2436 "2": {
2437 "patterns": [
2438 {
2439 "include": "source.cpp#inline_comment"
2440 }
2441 ]
2442 },
2443 "3": {
2444 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2445 },
2446 "4": {
2447 "name": "comment.block.cpp"
2448 },
2449 "5": {
2450 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2451 },
2452 "6": {
2453 "name": "punctuation.definition.directive.cpp"
2454 },
2455 "7": {}
2456 },
2457 "endCaptures": {},
2458 "name": "meta.preprocessor.diagnostic.$reference(directive).cpp",
2459 "patterns": [
2460 {
2461 "begin": "\"",
2462 "end": "(?:(\")|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)",
2463 "beginCaptures": {
2464 "0": {
2465 "name": "punctuation.definition.string.begin.cpp"
2466 }
2467 },
2468 "endCaptures": {
2469 "1": {
2470 "name": "punctuation.definition.string.end.cpp"
2471 }
2472 },
2473 "name": "string.quoted.double.cpp",
2474 "patterns": [
2475 {
2476 "include": "source.cpp#line_continuation_character"
2477 }
2478 ]
2479 },
2480 {
2481 "begin": "'",
2482 "end": "(?:(')|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)",
2483 "beginCaptures": {
2484 "0": {
2485 "name": "punctuation.definition.string.begin.cpp"
2486 }
2487 },
2488 "endCaptures": {
2489 "1": {
2490 "name": "punctuation.definition.string.end.cpp"
2491 }
2492 },
2493 "name": "string.quoted.single.cpp",
2494 "patterns": [
2495 {
2496 "include": "source.cpp#line_continuation_character"
2497 }
2498 ]
2499 },
2500 {
2501 "begin": "[^'\"]",
2502 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
2503 "beginCaptures": {},
2504 "endCaptures": {},
2505 "name": "string.unquoted.cpp",
2506 "patterns": [
2507 {
2508 "include": "source.cpp#line_continuation_character"
2509 },
2510 {
2511 "include": "#comments"
2512 }
2513 ]
2514 }
2515 ]
2516 },
2517 "enum_block": {
2518 "begin": "((?<!\\w)enum(?!\\w))(?:(?:\\s)+(class|struct))?(?:(?:(?:\\s)+|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:(?:\\s)+)?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)(?:(?:(?:\\s)+)?(:)(?:(?:\\s)+)?(?:((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?(::))?(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))?",
2519 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
2520 "beginCaptures": {
2521 "0": {
2522 "name": "meta.head.enum.cpp"
2523 },
2524 "1": {
2525 "name": "storage.type.enum.cpp"
2526 },
2527 "2": {
2528 "name": "storage.type.enum.enum-key.$2.cpp"
2529 },
2530 "3": {
2531 "patterns": [
2532 {
2533 "include": "#attributes_context"
2534 },
2535 {
2536 "include": "source.cpp#number_literal"
2537 }
2538 ]
2539 },
2540 "4": {
2541 "name": "entity.name.type.enum.cpp"
2542 },
2543 "5": {
2544 "name": "punctuation.separator.colon.type-specifier.cpp"
2545 },
2546 "6": {
2547 "patterns": [
2548 {
2549 "include": "source.cpp#scope_resolution_inner_generated"
2550 }
2551 ]
2552 },
2553 "7": {
2554 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
2555 },
2556 "8": {
2557 "patterns": [
2558 {
2559 "include": "#template_call_range"
2560 }
2561 ]
2562 },
2563 "9": {},
2564 "10": {
2565 "name": "entity.name.scope-resolution.cpp"
2566 },
2567 "11": {
2568 "name": "meta.template.call.cpp",
2569 "patterns": [
2570 {
2571 "include": "#template_call_range"
2572 }
2573 ]
2574 },
2575 "12": {},
2576 "13": {
2577 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
2578 },
2579 "14": {
2580 "name": "storage.type.integral.$14.cpp"
2581 }
2582 },
2583 "endCaptures": {
2584 "1": {
2585 "name": "punctuation.terminator.statement.cpp"
2586 },
2587 "2": {
2588 "name": "punctuation.terminator.statement.cpp"
2589 }
2590 },
2591 "name": "meta.block.enum.cpp",
2592 "patterns": [
2593 {
2594 "begin": "\\G ?",
2595 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
2596 "beginCaptures": {},
2597 "endCaptures": {
2598 "0": {
2599 "name": "punctuation.section.block.begin.bracket.curly.enum.cpp"
2600 }
2601 },
2602 "name": "meta.head.enum.cpp",
2603 "patterns": [
2604 {
2605 "include": "$self"
2606 }
2607 ]
2608 },
2609 {
2610 "begin": "(?<=\\{|<%|\\?\\?<)",
2611 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
2612 "beginCaptures": {},
2613 "endCaptures": {
2614 "0": {
2615 "name": "punctuation.section.block.end.bracket.curly.enum.cpp"
2616 }
2617 },
2618 "name": "meta.body.enum.cpp",
2619 "patterns": [
2620 {
2621 "include": "#ever_present_context"
2622 },
2623 {
2624 "include": "source.cpp#enumerator_list"
2625 },
2626 {
2627 "include": "#comments"
2628 },
2629 {
2630 "include": "source.cpp#comma"
2631 },
2632 {
2633 "include": "source.cpp#semicolon"
2634 }
2635 ]
2636 },
2637 {
2638 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
2639 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
2640 "beginCaptures": {},
2641 "endCaptures": {},
2642 "name": "meta.tail.enum.cpp",
2643 "patterns": [
2644 {
2645 "include": "$self"
2646 }
2647 ]
2648 }
2649 ]
2650 },
2651 "evaluation_context": {
2652 "patterns": [
2653 {
2654 "include": "#ever_present_context"
2655 },
2656 {
2657 "include": "#string_context"
2658 },
2659 {
2660 "include": "source.cpp#number_literal"
2661 },
2662 {
2663 "include": "#method_access"
2664 },
2665 {
2666 "include": "source.cpp#member_access"
2667 },
2668 {
2669 "include": "source.cpp#predefined_macros"
2670 },
2671 {
2672 "include": "#operators"
2673 },
2674 {
2675 "include": "source.cpp#memory_operators"
2676 },
2677 {
2678 "include": "source.cpp#wordlike_operators"
2679 },
2680 {
2681 "include": "source.cpp#type_casting_operators"
2682 },
2683 {
2684 "include": "source.cpp#control_flow_keywords"
2685 },
2686 {
2687 "include": "source.cpp#exception_keywords"
2688 },
2689 {
2690 "include": "source.cpp#the_this_keyword"
2691 },
2692 {
2693 "include": "source.cpp#language_constants"
2694 },
2695 {
2696 "include": "#builtin_storage_type_initilizer"
2697 },
2698 {
2699 "include": "source.cpp#qualifiers_and_specifiers_post_parameters"
2700 },
2701 {
2702 "include": "source.cpp#functional_specifiers_pre_parameters"
2703 },
2704 {
2705 "include": "#storage_types"
2706 },
2707 {
2708 "include": "#lambdas"
2709 },
2710 {
2711 "include": "#attributes_context"
2712 },
2713 {
2714 "include": "#parentheses"
2715 },
2716 {
2717 "include": "#function_call"
2718 },
2719 {
2720 "include": "source.cpp#scope_resolution_inner_generated"
2721 },
2722 {
2723 "include": "#square_brackets"
2724 },
2725 {
2726 "include": "source.cpp#semicolon"
2727 },
2728 {
2729 "include": "source.cpp#comma"
2730 }
2731 ]
2732 },
2733 "ever_present_context": {
2734 "patterns": [
2735 {
2736 "include": "source.cpp#pragma_mark"
2737 },
2738 {
2739 "include": "#pragma"
2740 },
2741 {
2742 "include": "source.cpp#include"
2743 },
2744 {
2745 "include": "#line"
2746 },
2747 {
2748 "include": "#diagnostic"
2749 },
2750 {
2751 "include": "source.cpp#undef"
2752 },
2753 {
2754 "include": "#preprocessor_conditional_range"
2755 },
2756 {
2757 "include": "source.cpp#single_line_macro"
2758 },
2759 {
2760 "include": "#macro"
2761 },
2762 {
2763 "include": "source.cpp#preprocessor_conditional_standalone"
2764 },
2765 {
2766 "include": "source.cpp#macro_argument"
2767 },
2768 {
2769 "include": "#comments"
2770 },
2771 {
2772 "include": "source.cpp#line_continuation_character"
2773 }
2774 ]
2775 },
2776 "extern_block": {
2777 "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(extern)(?=\\s*\\\")",
2778 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
2779 "beginCaptures": {
2780 "0": {
2781 "name": "meta.head.extern.cpp"
2782 },
2783 "1": {
2784 "patterns": [
2785 {
2786 "include": "source.cpp#inline_comment"
2787 }
2788 ]
2789 },
2790 "2": {
2791 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2792 },
2793 "3": {
2794 "name": "comment.block.cpp"
2795 },
2796 "4": {
2797 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2798 },
2799 "5": {
2800 "name": "storage.type.extern.cpp"
2801 }
2802 },
2803 "endCaptures": {
2804 "1": {
2805 "name": "punctuation.terminator.statement.cpp"
2806 },
2807 "2": {
2808 "name": "punctuation.terminator.statement.cpp"
2809 }
2810 },
2811 "name": "meta.block.extern.cpp",
2812 "patterns": [
2813 {
2814 "begin": "\\G ?",
2815 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
2816 "beginCaptures": {},
2817 "endCaptures": {
2818 "0": {
2819 "name": "punctuation.section.block.begin.bracket.curly.extern.cpp"
2820 }
2821 },
2822 "name": "meta.head.extern.cpp",
2823 "patterns": [
2824 {
2825 "include": "$self"
2826 }
2827 ]
2828 },
2829 {
2830 "begin": "(?<=\\{|<%|\\?\\?<)",
2831 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
2832 "beginCaptures": {},
2833 "endCaptures": {
2834 "0": {
2835 "name": "punctuation.section.block.end.bracket.curly.extern.cpp"
2836 }
2837 },
2838 "name": "meta.body.extern.cpp",
2839 "patterns": [
2840 {
2841 "include": "$self"
2842 }
2843 ]
2844 },
2845 {
2846 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
2847 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
2848 "beginCaptures": {},
2849 "endCaptures": {},
2850 "name": "meta.tail.extern.cpp",
2851 "patterns": [
2852 {
2853 "include": "$self"
2854 }
2855 ]
2856 },
2857 {
2858 "include": "$self"
2859 }
2860 ]
2861 },
2862 "function_body_context": {
2863 "patterns": [
2864 {
2865 "include": "#ever_present_context"
2866 },
2867 {
2868 "include": "#using_namespace"
2869 },
2870 {
2871 "include": "source.cpp#type_alias"
2872 },
2873 {
2874 "include": "source.cpp#using_name"
2875 },
2876 {
2877 "include": "source.cpp#namespace_alias"
2878 },
2879 {
2880 "include": "#typedef_class"
2881 },
2882 {
2883 "include": "#typedef_struct"
2884 },
2885 {
2886 "include": "#typedef_union"
2887 },
2888 {
2889 "include": "source.cpp#misc_keywords"
2890 },
2891 {
2892 "include": "source.cpp#standard_declares"
2893 },
2894 {
2895 "include": "#class_block"
2896 },
2897 {
2898 "include": "#struct_block"
2899 },
2900 {
2901 "include": "#union_block"
2902 },
2903 {
2904 "include": "#enum_block"
2905 },
2906 {
2907 "include": "source.cpp#access_control_keywords"
2908 },
2909 {
2910 "include": "#block"
2911 },
2912 {
2913 "include": "#static_assert"
2914 },
2915 {
2916 "include": "#assembly"
2917 },
2918 {
2919 "include": "#function_pointer"
2920 },
2921 {
2922 "include": "#switch_statement"
2923 },
2924 {
2925 "include": "source.cpp#goto_statement"
2926 },
2927 {
2928 "include": "#evaluation_context"
2929 },
2930 {
2931 "include": "source.cpp#label"
2932 }
2933 ]
2934 },
2935 "function_call": {
2936 "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?(\\()",
2937 "end": "\\)|(?=(?<!\\\\)\n)",
2938 "beginCaptures": {
2939 "1": {
2940 "patterns": [
2941 {
2942 "include": "source.cpp#scope_resolution_function_call_inner_generated"
2943 }
2944 ]
2945 },
2946 "2": {
2947 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
2948 },
2949 "3": {
2950 "patterns": [
2951 {
2952 "include": "#template_call_range"
2953 }
2954 ]
2955 },
2956 "4": {},
2957 "5": {
2958 "name": "entity.name.function.call.cpp"
2959 },
2960 "6": {
2961 "patterns": [
2962 {
2963 "include": "source.cpp#inline_comment"
2964 }
2965 ]
2966 },
2967 "7": {
2968 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2969 },
2970 "8": {
2971 "name": "comment.block.cpp"
2972 },
2973 "9": {
2974 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2975 },
2976 "10": {
2977 "name": "meta.template.call.cpp",
2978 "patterns": [
2979 {
2980 "include": "#template_call_range"
2981 }
2982 ]
2983 },
2984 "11": {},
2985 "12": {
2986 "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp"
2987 }
2988 },
2989 "endCaptures": {
2990 "0": {
2991 "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp"
2992 }
2993 },
2994 "patterns": [
2995 {
2996 "include": "#evaluation_context"
2997 }
2998 ]
2999 },
3000 "function_definition": {
3001 "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?<!\\w)template(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<56>?)+>)(?:\\s)*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<56>?)+>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<56>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=\\()",
3002 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
3003 "beginCaptures": {
3004 "0": {
3005 "name": "meta.head.function.definition.cpp"
3006 },
3007 "1": {
3008 "name": "storage.type.template.cpp"
3009 },
3010 "2": {
3011 "patterns": [
3012 {
3013 "include": "source.cpp#inline_comment"
3014 }
3015 ]
3016 },
3017 "3": {
3018 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3019 },
3020 "4": {
3021 "name": "comment.block.cpp"
3022 },
3023 "5": {
3024 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3025 },
3026 "6": {
3027 "patterns": [
3028 {
3029 "include": "#attributes_context"
3030 },
3031 {
3032 "include": "source.cpp#number_literal"
3033 }
3034 ]
3035 },
3036 "7": {
3037 "patterns": [
3038 {
3039 "match": "((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))",
3040 "captures": {
3041 "1": {
3042 "name": "storage.modifier.$1.cpp"
3043 },
3044 "2": {
3045 "patterns": [
3046 {
3047 "include": "source.cpp#inline_comment"
3048 }
3049 ]
3050 },
3051 "3": {
3052 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3053 },
3054 "4": {
3055 "name": "comment.block.cpp"
3056 },
3057 "5": {
3058 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3059 }
3060 }
3061 }
3062 ]
3063 },
3064 "8": {
3065 "name": "storage.modifier.$8.cpp"
3066 },
3067 "9": {
3068 "patterns": [
3069 {
3070 "include": "source.cpp#inline_comment"
3071 }
3072 ]
3073 },
3074 "10": {
3075 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3076 },
3077 "11": {
3078 "name": "comment.block.cpp"
3079 },
3080 "12": {
3081 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3082 },
3083 "13": {
3084 "name": "meta.qualified_type.cpp",
3085 "patterns": [
3086 {
3087 "match": "::",
3088 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
3089 },
3090 {
3091 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
3092 "name": "storage.type.$0.cpp"
3093 },
3094 {
3095 "include": "#attributes_context"
3096 },
3097 {
3098 "include": "#storage_types"
3099 },
3100 {
3101 "include": "source.cpp#number_literal"
3102 },
3103 {
3104 "include": "#string_context"
3105 },
3106 {
3107 "include": "source.cpp#comma"
3108 },
3109 {
3110 "include": "source.cpp#scope_resolution_inner_generated"
3111 },
3112 {
3113 "begin": "<",
3114 "end": ">|(?=(?<!\\\\)\n)",
3115 "beginCaptures": {
3116 "0": {
3117 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
3118 }
3119 },
3120 "endCaptures": {
3121 "0": {
3122 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
3123 }
3124 },
3125 "name": "meta.template.call.cpp",
3126 "patterns": [
3127 {
3128 "include": "#template_call_context"
3129 }
3130 ]
3131 },
3132 {
3133 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
3134 "name": "entity.name.type.cpp"
3135 }
3136 ]
3137 },
3138 "14": {
3139 "patterns": [
3140 {
3141 "include": "#attributes_context"
3142 },
3143 {
3144 "include": "source.cpp#number_literal"
3145 }
3146 ]
3147 },
3148 "15": {
3149 "patterns": [
3150 {
3151 "include": "source.cpp#inline_comment"
3152 }
3153 ]
3154 },
3155 "16": {
3156 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3157 },
3158 "17": {
3159 "name": "comment.block.cpp"
3160 },
3161 "18": {
3162 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3163 },
3164 "19": {
3165 "patterns": [
3166 {
3167 "include": "source.cpp#inline_comment"
3168 }
3169 ]
3170 },
3171 "20": {
3172 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3173 },
3174 "21": {
3175 "name": "comment.block.cpp"
3176 },
3177 "22": {
3178 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3179 },
3180 "23": {
3181 "patterns": [
3182 {
3183 "match": "::",
3184 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
3185 },
3186 {
3187 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
3188 "name": "entity.name.scope-resolution.type.cpp"
3189 },
3190 {
3191 "include": "#template_call_range"
3192 }
3193 ]
3194 },
3195 "24": {
3196 "patterns": [
3197 {
3198 "include": "#template_call_range"
3199 }
3200 ]
3201 },
3202 "25": {},
3203 "26": {
3204 "patterns": [
3205 {
3206 "include": "source.cpp#inline_comment"
3207 }
3208 ]
3209 },
3210 "27": {
3211 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3212 },
3213 "28": {
3214 "name": "comment.block.cpp"
3215 },
3216 "29": {
3217 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3218 },
3219 "30": {},
3220 "31": {
3221 "patterns": [
3222 {
3223 "match": "\\*",
3224 "name": "storage.modifier.pointer.cpp"
3225 },
3226 {
3227 "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))){2,}\\&",
3228 "captures": {
3229 "1": {
3230 "patterns": [
3231 {
3232 "include": "source.cpp#inline_comment"
3233 }
3234 ]
3235 },
3236 "2": {
3237 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3238 },
3239 "3": {
3240 "name": "comment.block.cpp"
3241 },
3242 "4": {
3243 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3244 }
3245 },
3246 "name": "invalid.illegal.reference-type.cpp"
3247 },
3248 {
3249 "match": "\\&",
3250 "name": "storage.modifier.reference.cpp"
3251 }
3252 ]
3253 },
3254 "32": {
3255 "patterns": [
3256 {
3257 "include": "source.cpp#inline_comment"
3258 }
3259 ]
3260 },
3261 "33": {
3262 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3263 },
3264 "34": {
3265 "name": "comment.block.cpp"
3266 },
3267 "35": {
3268 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3269 },
3270 "36": {
3271 "patterns": [
3272 {
3273 "include": "source.cpp#inline_comment"
3274 }
3275 ]
3276 },
3277 "37": {
3278 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3279 },
3280 "38": {
3281 "name": "comment.block.cpp"
3282 },
3283 "39": {
3284 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3285 },
3286 "40": {
3287 "patterns": [
3288 {
3289 "include": "source.cpp#inline_comment"
3290 }
3291 ]
3292 },
3293 "41": {
3294 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3295 },
3296 "42": {
3297 "name": "comment.block.cpp"
3298 },
3299 "43": {
3300 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3301 },
3302 "44": {
3303 "patterns": [
3304 {
3305 "include": "source.cpp#inline_comment"
3306 }
3307 ]
3308 },
3309 "45": {
3310 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3311 },
3312 "46": {
3313 "name": "comment.block.cpp"
3314 },
3315 "47": {
3316 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3317 },
3318 "48": {
3319 "name": "storage.type.modifier.calling-convention.cpp"
3320 },
3321 "49": {
3322 "patterns": [
3323 {
3324 "include": "source.cpp#inline_comment"
3325 }
3326 ]
3327 },
3328 "50": {
3329 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3330 },
3331 "51": {
3332 "name": "comment.block.cpp"
3333 },
3334 "52": {
3335 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3336 },
3337 "53": {
3338 "patterns": [
3339 {
3340 "include": "source.cpp#scope_resolution_function_definition_inner_generated"
3341 }
3342 ]
3343 },
3344 "54": {
3345 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
3346 },
3347 "55": {
3348 "patterns": [
3349 {
3350 "include": "#template_call_range"
3351 }
3352 ]
3353 },
3354 "56": {},
3355 "57": {
3356 "name": "entity.name.function.definition.cpp"
3357 },
3358 "58": {
3359 "patterns": [
3360 {
3361 "include": "source.cpp#inline_comment"
3362 }
3363 ]
3364 },
3365 "59": {
3366 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3367 },
3368 "60": {
3369 "name": "comment.block.cpp"
3370 },
3371 "61": {
3372 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3373 }
3374 },
3375 "endCaptures": {},
3376 "name": "meta.function.definition.cpp",
3377 "patterns": [
3378 {
3379 "begin": "\\G ?",
3380 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
3381 "beginCaptures": {},
3382 "endCaptures": {
3383 "0": {
3384 "name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp"
3385 }
3386 },
3387 "name": "meta.head.function.definition.cpp",
3388 "patterns": [
3389 {
3390 "include": "#ever_present_context"
3391 },
3392 {
3393 "begin": "\\(",
3394 "end": "\\)|(?=(?<!\\\\)\n)",
3395 "beginCaptures": {
3396 "0": {
3397 "name": "punctuation.section.parameters.begin.bracket.round.cpp"
3398 }
3399 },
3400 "endCaptures": {
3401 "0": {
3402 "name": "punctuation.section.parameters.end.bracket.round.cpp"
3403 }
3404 },
3405 "contentName": "meta.function.definition.parameters",
3406 "patterns": [
3407 {
3408 "include": "#ever_present_context"
3409 },
3410 {
3411 "include": "#parameter_or_maybe_value"
3412 },
3413 {
3414 "include": "source.cpp#comma"
3415 },
3416 {
3417 "include": "#evaluation_context"
3418 }
3419 ]
3420 },
3421 {
3422 "match": "(?<=^|\\))(?:(?:\\s)+)?(->)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)(?:\\s)*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)?(?![\\w<:.]))",
3423 "captures": {
3424 "1": {
3425 "name": "punctuation.definition.function.return-type.cpp"
3426 },
3427 "2": {
3428 "patterns": [
3429 {
3430 "include": "source.cpp#inline_comment"
3431 }
3432 ]
3433 },
3434 "3": {
3435 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3436 },
3437 "4": {
3438 "name": "comment.block.cpp"
3439 },
3440 "5": {
3441 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3442 },
3443 "6": {
3444 "name": "meta.qualified_type.cpp",
3445 "patterns": [
3446 {
3447 "match": "::",
3448 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
3449 },
3450 {
3451 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
3452 "name": "storage.type.$0.cpp"
3453 },
3454 {
3455 "include": "#attributes_context"
3456 },
3457 {
3458 "include": "#storage_types"
3459 },
3460 {
3461 "include": "source.cpp#number_literal"
3462 },
3463 {
3464 "include": "#string_context"
3465 },
3466 {
3467 "include": "source.cpp#comma"
3468 },
3469 {
3470 "include": "source.cpp#scope_resolution_inner_generated"
3471 },
3472 {
3473 "begin": "<",
3474 "end": ">|(?=(?<!\\\\)\n)",
3475 "beginCaptures": {
3476 "0": {
3477 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
3478 }
3479 },
3480 "endCaptures": {
3481 "0": {
3482 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
3483 }
3484 },
3485 "name": "meta.template.call.cpp",
3486 "patterns": [
3487 {
3488 "include": "#template_call_context"
3489 }
3490 ]
3491 },
3492 {
3493 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
3494 "name": "entity.name.type.cpp"
3495 }
3496 ]
3497 },
3498 "7": {
3499 "patterns": [
3500 {
3501 "include": "#attributes_context"
3502 },
3503 {
3504 "include": "source.cpp#number_literal"
3505 }
3506 ]
3507 },
3508 "8": {
3509 "patterns": [
3510 {
3511 "include": "source.cpp#inline_comment"
3512 }
3513 ]
3514 },
3515 "9": {
3516 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3517 },
3518 "10": {
3519 "name": "comment.block.cpp"
3520 },
3521 "11": {
3522 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3523 },
3524 "12": {
3525 "patterns": [
3526 {
3527 "include": "source.cpp#inline_comment"
3528 }
3529 ]
3530 },
3531 "13": {
3532 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3533 },
3534 "14": {
3535 "name": "comment.block.cpp"
3536 },
3537 "15": {
3538 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3539 },
3540 "16": {
3541 "patterns": [
3542 {
3543 "match": "::",
3544 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
3545 },
3546 {
3547 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
3548 "name": "entity.name.scope-resolution.type.cpp"
3549 },
3550 {
3551 "include": "#template_call_range"
3552 }
3553 ]
3554 },
3555 "17": {
3556 "patterns": [
3557 {
3558 "include": "#template_call_range"
3559 }
3560 ]
3561 },
3562 "18": {},
3563 "19": {
3564 "patterns": [
3565 {
3566 "include": "source.cpp#inline_comment"
3567 }
3568 ]
3569 },
3570 "20": {
3571 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3572 },
3573 "21": {
3574 "name": "comment.block.cpp"
3575 },
3576 "22": {
3577 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3578 },
3579 "23": {}
3580 }
3581 },
3582 {
3583 "include": "$self"
3584 }
3585 ]
3586 },
3587 {
3588 "begin": "(?<=\\{|<%|\\?\\?<)",
3589 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
3590 "beginCaptures": {},
3591 "endCaptures": {
3592 "0": {
3593 "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp"
3594 }
3595 },
3596 "name": "meta.body.function.definition.cpp",
3597 "patterns": [
3598 {
3599 "include": "#function_body_context"
3600 }
3601 ]
3602 },
3603 {
3604 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
3605 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
3606 "beginCaptures": {},
3607 "endCaptures": {},
3608 "name": "meta.tail.function.definition.cpp",
3609 "patterns": [
3610 {
3611 "include": "$self"
3612 }
3613 ]
3614 }
3615 ]
3616 },
3617 "function_parameter_context": {
3618 "patterns": [
3619 {
3620 "include": "#ever_present_context"
3621 },
3622 {
3623 "include": "#parameter"
3624 },
3625 {
3626 "include": "source.cpp#comma"
3627 }
3628 ]
3629 },
3630 "function_pointer": {
3631 "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()",
3632 "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)",
3633 "beginCaptures": {
3634 "1": {
3635 "name": "meta.qualified_type.cpp",
3636 "patterns": [
3637 {
3638 "match": "::",
3639 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
3640 },
3641 {
3642 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
3643 "name": "storage.type.$0.cpp"
3644 },
3645 {
3646 "include": "#attributes_context"
3647 },
3648 {
3649 "include": "#storage_types"
3650 },
3651 {
3652 "include": "source.cpp#number_literal"
3653 },
3654 {
3655 "include": "#string_context"
3656 },
3657 {
3658 "include": "source.cpp#comma"
3659 },
3660 {
3661 "include": "source.cpp#scope_resolution_inner_generated"
3662 },
3663 {
3664 "begin": "<",
3665 "end": ">|(?=(?<!\\\\)\n)",
3666 "beginCaptures": {
3667 "0": {
3668 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
3669 }
3670 },
3671 "endCaptures": {
3672 "0": {
3673 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
3674 }
3675 },
3676 "name": "meta.template.call.cpp",
3677 "patterns": [
3678 {
3679 "include": "#template_call_context"
3680 }
3681 ]
3682 },
3683 {
3684 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
3685 "name": "entity.name.type.cpp"
3686 }
3687 ]
3688 },
3689 "2": {
3690 "patterns": [
3691 {
3692 "include": "#attributes_context"
3693 },
3694 {
3695 "include": "source.cpp#number_literal"
3696 }
3697 ]
3698 },
3699 "3": {
3700 "patterns": [
3701 {
3702 "include": "source.cpp#inline_comment"
3703 }
3704 ]
3705 },
3706 "4": {
3707 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3708 },
3709 "5": {
3710 "name": "comment.block.cpp"
3711 },
3712 "6": {
3713 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3714 },
3715 "7": {
3716 "patterns": [
3717 {
3718 "include": "source.cpp#inline_comment"
3719 }
3720 ]
3721 },
3722 "8": {
3723 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3724 },
3725 "9": {
3726 "name": "comment.block.cpp"
3727 },
3728 "10": {
3729 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3730 },
3731 "11": {
3732 "patterns": [
3733 {
3734 "match": "::",
3735 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
3736 },
3737 {
3738 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
3739 "name": "entity.name.scope-resolution.type.cpp"
3740 },
3741 {
3742 "include": "#template_call_range"
3743 }
3744 ]
3745 },
3746 "12": {
3747 "patterns": [
3748 {
3749 "include": "#template_call_range"
3750 }
3751 ]
3752 },
3753 "13": {},
3754 "14": {
3755 "patterns": [
3756 {
3757 "include": "source.cpp#inline_comment"
3758 }
3759 ]
3760 },
3761 "15": {
3762 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3763 },
3764 "16": {
3765 "name": "comment.block.cpp"
3766 },
3767 "17": {
3768 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3769 },
3770 "18": {},
3771 "19": {
3772 "patterns": [
3773 {
3774 "match": "\\*",
3775 "name": "storage.modifier.pointer.cpp"
3776 },
3777 {
3778 "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))){2,}\\&",
3779 "captures": {
3780 "1": {
3781 "patterns": [
3782 {
3783 "include": "source.cpp#inline_comment"
3784 }
3785 ]
3786 },
3787 "2": {
3788 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3789 },
3790 "3": {
3791 "name": "comment.block.cpp"
3792 },
3793 "4": {
3794 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3795 }
3796 },
3797 "name": "invalid.illegal.reference-type.cpp"
3798 },
3799 {
3800 "match": "\\&",
3801 "name": "storage.modifier.reference.cpp"
3802 }
3803 ]
3804 },
3805 "20": {
3806 "patterns": [
3807 {
3808 "include": "source.cpp#inline_comment"
3809 }
3810 ]
3811 },
3812 "21": {
3813 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3814 },
3815 "22": {
3816 "name": "comment.block.cpp"
3817 },
3818 "23": {
3819 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3820 },
3821 "24": {
3822 "patterns": [
3823 {
3824 "include": "source.cpp#inline_comment"
3825 }
3826 ]
3827 },
3828 "25": {
3829 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3830 },
3831 "26": {
3832 "name": "comment.block.cpp"
3833 },
3834 "27": {
3835 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3836 },
3837 "28": {
3838 "patterns": [
3839 {
3840 "include": "source.cpp#inline_comment"
3841 }
3842 ]
3843 },
3844 "29": {
3845 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3846 },
3847 "30": {
3848 "name": "comment.block.cpp"
3849 },
3850 "31": {
3851 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3852 },
3853 "32": {
3854 "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
3855 },
3856 "33": {
3857 "name": "punctuation.definition.function.pointer.dereference.cpp"
3858 },
3859 "34": {
3860 "name": "variable.other.definition.pointer.function.cpp"
3861 },
3862 "35": {
3863 "name": "punctuation.definition.begin.bracket.square.cpp"
3864 },
3865 "36": {
3866 "patterns": [
3867 {
3868 "include": "#evaluation_context"
3869 }
3870 ]
3871 },
3872 "37": {
3873 "name": "punctuation.definition.end.bracket.square.cpp"
3874 },
3875 "38": {
3876 "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
3877 },
3878 "39": {
3879 "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
3880 }
3881 },
3882 "endCaptures": {
3883 "1": {
3884 "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
3885 },
3886 "2": {
3887 "patterns": [
3888 {
3889 "include": "source.cpp#inline_comment"
3890 }
3891 ]
3892 },
3893 "3": {
3894 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3895 },
3896 "4": {
3897 "name": "comment.block.cpp"
3898 },
3899 "5": {
3900 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3901 }
3902 },
3903 "patterns": [
3904 {
3905 "include": "#function_parameter_context"
3906 }
3907 ]
3908 },
3909 "function_pointer_parameter": {
3910 "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()",
3911 "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)",
3912 "beginCaptures": {
3913 "1": {
3914 "name": "meta.qualified_type.cpp",
3915 "patterns": [
3916 {
3917 "match": "::",
3918 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
3919 },
3920 {
3921 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
3922 "name": "storage.type.$0.cpp"
3923 },
3924 {
3925 "include": "#attributes_context"
3926 },
3927 {
3928 "include": "#storage_types"
3929 },
3930 {
3931 "include": "source.cpp#number_literal"
3932 },
3933 {
3934 "include": "#string_context"
3935 },
3936 {
3937 "include": "source.cpp#comma"
3938 },
3939 {
3940 "include": "source.cpp#scope_resolution_inner_generated"
3941 },
3942 {
3943 "begin": "<",
3944 "end": ">|(?=(?<!\\\\)\n)",
3945 "beginCaptures": {
3946 "0": {
3947 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
3948 }
3949 },
3950 "endCaptures": {
3951 "0": {
3952 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
3953 }
3954 },
3955 "name": "meta.template.call.cpp",
3956 "patterns": [
3957 {
3958 "include": "#template_call_context"
3959 }
3960 ]
3961 },
3962 {
3963 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
3964 "name": "entity.name.type.cpp"
3965 }
3966 ]
3967 },
3968 "2": {
3969 "patterns": [
3970 {
3971 "include": "#attributes_context"
3972 },
3973 {
3974 "include": "source.cpp#number_literal"
3975 }
3976 ]
3977 },
3978 "3": {
3979 "patterns": [
3980 {
3981 "include": "source.cpp#inline_comment"
3982 }
3983 ]
3984 },
3985 "4": {
3986 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3987 },
3988 "5": {
3989 "name": "comment.block.cpp"
3990 },
3991 "6": {
3992 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3993 },
3994 "7": {
3995 "patterns": [
3996 {
3997 "include": "source.cpp#inline_comment"
3998 }
3999 ]
4000 },
4001 "8": {
4002 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4003 },
4004 "9": {
4005 "name": "comment.block.cpp"
4006 },
4007 "10": {
4008 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4009 },
4010 "11": {
4011 "patterns": [
4012 {
4013 "match": "::",
4014 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
4015 },
4016 {
4017 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
4018 "name": "entity.name.scope-resolution.type.cpp"
4019 },
4020 {
4021 "include": "#template_call_range"
4022 }
4023 ]
4024 },
4025 "12": {
4026 "patterns": [
4027 {
4028 "include": "#template_call_range"
4029 }
4030 ]
4031 },
4032 "13": {},
4033 "14": {
4034 "patterns": [
4035 {
4036 "include": "source.cpp#inline_comment"
4037 }
4038 ]
4039 },
4040 "15": {
4041 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4042 },
4043 "16": {
4044 "name": "comment.block.cpp"
4045 },
4046 "17": {
4047 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4048 },
4049 "18": {},
4050 "19": {
4051 "patterns": [
4052 {
4053 "match": "\\*",
4054 "name": "storage.modifier.pointer.cpp"
4055 },
4056 {
4057 "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))){2,}\\&",
4058 "captures": {
4059 "1": {
4060 "patterns": [
4061 {
4062 "include": "source.cpp#inline_comment"
4063 }
4064 ]
4065 },
4066 "2": {
4067 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4068 },
4069 "3": {
4070 "name": "comment.block.cpp"
4071 },
4072 "4": {
4073 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4074 }
4075 },
4076 "name": "invalid.illegal.reference-type.cpp"
4077 },
4078 {
4079 "match": "\\&",
4080 "name": "storage.modifier.reference.cpp"
4081 }
4082 ]
4083 },
4084 "20": {
4085 "patterns": [
4086 {
4087 "include": "source.cpp#inline_comment"
4088 }
4089 ]
4090 },
4091 "21": {
4092 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4093 },
4094 "22": {
4095 "name": "comment.block.cpp"
4096 },
4097 "23": {
4098 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4099 },
4100 "24": {
4101 "patterns": [
4102 {
4103 "include": "source.cpp#inline_comment"
4104 }
4105 ]
4106 },
4107 "25": {
4108 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4109 },
4110 "26": {
4111 "name": "comment.block.cpp"
4112 },
4113 "27": {
4114 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4115 },
4116 "28": {
4117 "patterns": [
4118 {
4119 "include": "source.cpp#inline_comment"
4120 }
4121 ]
4122 },
4123 "29": {
4124 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4125 },
4126 "30": {
4127 "name": "comment.block.cpp"
4128 },
4129 "31": {
4130 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4131 },
4132 "32": {
4133 "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
4134 },
4135 "33": {
4136 "name": "punctuation.definition.function.pointer.dereference.cpp"
4137 },
4138 "34": {
4139 "name": "variable.parameter.pointer.function.cpp"
4140 },
4141 "35": {
4142 "name": "punctuation.definition.begin.bracket.square.cpp"
4143 },
4144 "36": {
4145 "patterns": [
4146 {
4147 "include": "#evaluation_context"
4148 }
4149 ]
4150 },
4151 "37": {
4152 "name": "punctuation.definition.end.bracket.square.cpp"
4153 },
4154 "38": {
4155 "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
4156 },
4157 "39": {
4158 "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
4159 }
4160 },
4161 "endCaptures": {
4162 "1": {
4163 "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
4164 },
4165 "2": {
4166 "patterns": [
4167 {
4168 "include": "source.cpp#inline_comment"
4169 }
4170 ]
4171 },
4172 "3": {
4173 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4174 },
4175 "4": {
4176 "name": "comment.block.cpp"
4177 },
4178 "5": {
4179 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4180 }
4181 },
4182 "patterns": [
4183 {
4184 "include": "#function_parameter_context"
4185 }
4186 ]
4187 },
4188 "gcc_attributes": {
4189 "begin": "__attribute(?:__)?\\s*\\(\\s*\\(",
4190 "end": "\\)\\s*\\)|(?=(?<!\\\\)\n)",
4191 "beginCaptures": {
4192 "0": {
4193 "name": "punctuation.section.attribute.begin.cpp"
4194 }
4195 },
4196 "endCaptures": {
4197 "0": {
4198 "name": "punctuation.section.attribute.end.cpp"
4199 }
4200 },
4201 "name": "support.other.attribute.cpp",
4202 "patterns": [
4203 {
4204 "include": "#attributes_context"
4205 },
4206 {
4207 "begin": "\\(",
4208 "end": "\\)|(?=(?<!\\\\)\n)",
4209 "beginCaptures": {},
4210 "endCaptures": {},
4211 "patterns": [
4212 {
4213 "include": "#attributes_context"
4214 },
4215 {
4216 "include": "#string_context"
4217 }
4218 ]
4219 },
4220 {
4221 "match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
4222 "captures": {
4223 "1": {
4224 "name": "keyword.other.using.directive.cpp"
4225 },
4226 "2": {
4227 "name": "entity.name.namespace.cpp"
4228 }
4229 }
4230 },
4231 {
4232 "match": ",",
4233 "name": "punctuation.separator.attribute.cpp"
4234 },
4235 {
4236 "match": ":",
4237 "name": "punctuation.accessor.attribute.cpp"
4238 },
4239 {
4240 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
4241 "name": "entity.name.namespace.cpp"
4242 },
4243 {
4244 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
4245 "name": "entity.other.attribute.$0.cpp"
4246 },
4247 {
4248 "include": "source.cpp#number_literal"
4249 }
4250 ]
4251 },
4252 "inheritance_context": {
4253 "patterns": [
4254 {
4255 "include": "#ever_present_context"
4256 },
4257 {
4258 "match": ",",
4259 "name": "punctuation.separator.delimiter.comma.inheritance.cpp"
4260 },
4261 {
4262 "match": "(?<!\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\w)",
4263 "name": "storage.type.modifier.access.$0.cpp"
4264 },
4265 {
4266 "match": "(?<!\\w)virtual(?!\\w)",
4267 "name": "storage.type.modifier.virtual.cpp"
4268 },
4269 {
4270 "match": "(?<=protected|virtual|private|public|,|:)(?:(?:\\s)+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))",
4271 "captures": {
4272 "1": {
4273 "name": "meta.qualified_type.cpp",
4274 "patterns": [
4275 {
4276 "match": "::",
4277 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
4278 },
4279 {
4280 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
4281 "name": "storage.type.$0.cpp"
4282 },
4283 {
4284 "include": "#attributes_context"
4285 },
4286 {
4287 "include": "#storage_types"
4288 },
4289 {
4290 "include": "source.cpp#number_literal"
4291 },
4292 {
4293 "include": "#string_context"
4294 },
4295 {
4296 "include": "source.cpp#comma"
4297 },
4298 {
4299 "include": "source.cpp#scope_resolution_inner_generated"
4300 },
4301 {
4302 "begin": "<",
4303 "end": ">|(?=(?<!\\\\)\n)",
4304 "beginCaptures": {
4305 "0": {
4306 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
4307 }
4308 },
4309 "endCaptures": {
4310 "0": {
4311 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
4312 }
4313 },
4314 "name": "meta.template.call.cpp",
4315 "patterns": [
4316 {
4317 "include": "#template_call_context"
4318 }
4319 ]
4320 },
4321 {
4322 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
4323 "name": "entity.name.type.cpp"
4324 }
4325 ]
4326 },
4327 "2": {
4328 "patterns": [
4329 {
4330 "include": "#attributes_context"
4331 },
4332 {
4333 "include": "source.cpp#number_literal"
4334 }
4335 ]
4336 },
4337 "3": {
4338 "patterns": [
4339 {
4340 "include": "source.cpp#inline_comment"
4341 }
4342 ]
4343 },
4344 "4": {
4345 "patterns": [
4346 {
4347 "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
4348 "captures": {
4349 "1": {
4350 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4351 },
4352 "2": {
4353 "name": "comment.block.cpp"
4354 },
4355 "3": {
4356 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4357 }
4358 }
4359 }
4360 ]
4361 },
4362 "5": {
4363 "patterns": [
4364 {
4365 "include": "source.cpp#inline_comment"
4366 }
4367 ]
4368 },
4369 "6": {
4370 "patterns": [
4371 {
4372 "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
4373 "captures": {
4374 "1": {
4375 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4376 },
4377 "2": {
4378 "name": "comment.block.cpp"
4379 },
4380 "3": {
4381 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4382 }
4383 }
4384 }
4385 ]
4386 },
4387 "7": {
4388 "patterns": [
4389 {
4390 "match": "::",
4391 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
4392 },
4393 {
4394 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
4395 "name": "entity.name.scope-resolution.type.cpp"
4396 },
4397 {
4398 "include": "#template_call_range"
4399 }
4400 ]
4401 },
4402 "8": {
4403 "patterns": [
4404 {
4405 "include": "#template_call_range"
4406 }
4407 ]
4408 },
4409 "9": {},
4410 "10": {
4411 "patterns": [
4412 {
4413 "include": "source.cpp#inline_comment"
4414 }
4415 ]
4416 },
4417 "11": {
4418 "patterns": [
4419 {
4420 "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
4421 "captures": {
4422 "1": {
4423 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4424 },
4425 "2": {
4426 "name": "comment.block.cpp"
4427 },
4428 "3": {
4429 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4430 }
4431 }
4432 }
4433 ]
4434 },
4435 "12": {}
4436 }
4437 }
4438 ]
4439 },
4440 "lambdas": {
4441 "begin": "(?:(?<=[^\\s]|^)(?<![\\w\\]\\)\\[\\*&\">])|(?<=\\Wreturn|^return))(?:(?:\\s)+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((?<!\\[)\\[(?!\\[)(?:[^\\[\\]]*+\\g<3>?)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))[\\[\\];]))",
4442 "end": "(?<=[;}])|(?=(?<!\\\\)\n)",
4443 "beginCaptures": {
4444 "1": {
4445 "name": "punctuation.definition.capture.begin.lambda.cpp"
4446 },
4447 "2": {
4448 "name": "meta.lambda.capture.cpp",
4449 "patterns": [
4450 {
4451 "include": "source.cpp#the_this_keyword"
4452 },
4453 {
4454 "match": "((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",
4455 "captures": {
4456 "1": {
4457 "name": "variable.parameter.capture.cpp"
4458 },
4459 "2": {
4460 "patterns": [
4461 {
4462 "include": "source.cpp#inline_comment"
4463 }
4464 ]
4465 },
4466 "3": {
4467 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4468 },
4469 "4": {
4470 "name": "comment.block.cpp"
4471 },
4472 "5": {
4473 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4474 },
4475 "6": {
4476 "name": "punctuation.separator.delimiter.comma.cpp"
4477 },
4478 "7": {
4479 "name": "keyword.operator.assignment.cpp"
4480 }
4481 }
4482 },
4483 {
4484 "include": "#evaluation_context"
4485 }
4486 ]
4487 },
4488 "3": {},
4489 "4": {
4490 "name": "punctuation.definition.capture.end.lambda.cpp"
4491 },
4492 "5": {
4493 "patterns": [
4494 {
4495 "include": "source.cpp#inline_comment"
4496 }
4497 ]
4498 },
4499 "6": {
4500 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4501 },
4502 "7": {
4503 "name": "comment.block.cpp"
4504 },
4505 "8": {
4506 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4507 }
4508 },
4509 "endCaptures": {},
4510 "patterns": [
4511 {
4512 "begin": "\\(",
4513 "end": "\\)|(?=(?<!\\\\)\n)",
4514 "beginCaptures": {
4515 "0": {
4516 "name": "punctuation.definition.parameters.begin.lambda.cpp"
4517 }
4518 },
4519 "endCaptures": {
4520 "0": {
4521 "name": "punctuation.definition.parameters.end.lambda.cpp"
4522 }
4523 },
4524 "name": "meta.function.definition.parameters.lambda.cpp",
4525 "patterns": [
4526 {
4527 "include": "#function_parameter_context"
4528 }
4529 ]
4530 },
4531 {
4532 "match": "(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\w)",
4533 "name": "storage.modifier.lambda.$0.cpp"
4534 },
4535 {
4536 "begin": "->",
4537 "end": "(?=\\{)|(?=(?<!\\\\)\n)",
4538 "beginCaptures": {
4539 "0": {
4540 "name": "punctuation.definition.lambda.return-type.cpp"
4541 }
4542 },
4543 "endCaptures": {},
4544 "patterns": [
4545 {
4546 "include": "#comments"
4547 },
4548 {
4549 "match": "\\S+",
4550 "name": "storage.type.return-type.lambda.cpp"
4551 }
4552 ]
4553 },
4554 {
4555 "begin": "\\{",
4556 "end": "\\}|(?=(?<!\\\\)\n)",
4557 "beginCaptures": {
4558 "0": {
4559 "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp"
4560 }
4561 },
4562 "endCaptures": {
4563 "0": {
4564 "name": "punctuation.section.block.end.bracket.curly.lambda.cpp"
4565 }
4566 },
4567 "name": "meta.function.definition.body.lambda.cpp",
4568 "patterns": [
4569 {
4570 "include": "$self"
4571 }
4572 ]
4573 }
4574 ]
4575 },
4576 "line": {
4577 "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?line\\b",
4578 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
4579 "beginCaptures": {
4580 "0": {
4581 "name": "keyword.control.directive.line.cpp"
4582 },
4583 "1": {
4584 "patterns": [
4585 {
4586 "include": "source.cpp#inline_comment"
4587 }
4588 ]
4589 },
4590 "2": {
4591 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4592 },
4593 "3": {
4594 "name": "comment.block.cpp"
4595 },
4596 "4": {
4597 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4598 },
4599 "5": {
4600 "name": "punctuation.definition.directive.cpp"
4601 }
4602 },
4603 "endCaptures": {},
4604 "name": "meta.preprocessor.line.cpp",
4605 "patterns": [
4606 {
4607 "include": "#string_context"
4608 },
4609 {
4610 "include": "#preprocessor_number_literal"
4611 },
4612 {
4613 "include": "source.cpp#line_continuation_character"
4614 }
4615 ]
4616 },
4617 "line_comment": {
4618 "begin": "\\s*+(\\/\\/)",
4619 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
4620 "beginCaptures": {
4621 "1": {
4622 "name": "punctuation.definition.comment.cpp"
4623 }
4624 },
4625 "endCaptures": {},
4626 "name": "comment.line.double-slash.cpp",
4627 "patterns": [
4628 {
4629 "include": "source.cpp#line_continuation_character"
4630 }
4631 ]
4632 },
4633 "macro": {
4634 "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?define\\b)(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
4635 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
4636 "beginCaptures": {
4637 "1": {
4638 "name": "keyword.control.directive.define.cpp"
4639 },
4640 "2": {
4641 "patterns": [
4642 {
4643 "include": "source.cpp#inline_comment"
4644 }
4645 ]
4646 },
4647 "3": {
4648 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4649 },
4650 "4": {
4651 "name": "comment.block.cpp"
4652 },
4653 "5": {
4654 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4655 },
4656 "6": {
4657 "name": "punctuation.definition.directive.cpp"
4658 },
4659 "7": {
4660 "name": "entity.name.function.preprocessor.cpp"
4661 }
4662 },
4663 "endCaptures": {},
4664 "name": "meta.preprocessor.macro.cpp",
4665 "patterns": [
4666 {
4667 "match": "\\G(?:(?:\\s)+)?(\\()([^\\(]*)(\\))",
4668 "captures": {
4669 "1": {
4670 "name": "punctuation.definition.parameters.begin.preprocessor.cpp"
4671 },
4672 "2": {
4673 "name": "meta.function.preprocessor.parameters.cpp",
4674 "patterns": [
4675 {
4676 "match": "(?<=[(,])(?:(?:\\s)+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?",
4677 "captures": {
4678 "1": {
4679 "name": "variable.parameter.preprocessor.cpp"
4680 }
4681 }
4682 },
4683 {
4684 "match": ",",
4685 "name": "punctuation.separator.parameters.cpp"
4686 },
4687 {
4688 "match": "\\.\\.\\.",
4689 "name": "punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp"
4690 }
4691 ]
4692 },
4693 "3": {
4694 "name": "punctuation.definition.parameters.end.preprocessor.cpp"
4695 }
4696 }
4697 },
4698 {
4699 "include": "#macro_context"
4700 },
4701 {
4702 "include": "source.cpp#macro_argument"
4703 }
4704 ]
4705 },
4706 "macro_context": {
4707 "patterns": [
4708 {
4709 "include": "source.cpp.embedded.macro"
4710 }
4711 ]
4712 },
4713 "method_access": {
4714 "begin": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\()",
4715 "end": "\\)|(?=(?<!\\\\)\n)",
4716 "beginCaptures": {
4717 "1": {
4718 "patterns": [
4719 {
4720 "include": "source.cpp#inline_comment"
4721 }
4722 ]
4723 },
4724 "2": {
4725 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4726 },
4727 "3": {
4728 "name": "comment.block.cpp"
4729 },
4730 "4": {
4731 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4732 },
4733 "5": {
4734 "name": "variable.language.this.cpp"
4735 },
4736 "6": {
4737 "name": "variable.other.object.access.cpp"
4738 },
4739 "7": {
4740 "name": "punctuation.separator.dot-access.cpp"
4741 },
4742 "8": {
4743 "name": "punctuation.separator.pointer-access.cpp"
4744 },
4745 "9": {
4746 "patterns": [
4747 {
4748 "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
4749 "captures": {
4750 "1": {
4751 "patterns": [
4752 {
4753 "include": "source.cpp#inline_comment"
4754 }
4755 ]
4756 },
4757 "2": {
4758 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4759 },
4760 "3": {
4761 "name": "comment.block.cpp"
4762 },
4763 "4": {
4764 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4765 },
4766 "5": {
4767 "name": "variable.language.this.cpp"
4768 },
4769 "6": {
4770 "name": "variable.other.object.property.cpp"
4771 },
4772 "7": {
4773 "name": "punctuation.separator.dot-access.cpp"
4774 },
4775 "8": {
4776 "name": "punctuation.separator.pointer-access.cpp"
4777 }
4778 }
4779 },
4780 {
4781 "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:(?:\\s)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
4782 "captures": {
4783 "1": {
4784 "patterns": [
4785 {
4786 "include": "source.cpp#inline_comment"
4787 }
4788 ]
4789 },
4790 "2": {
4791 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4792 },
4793 "3": {
4794 "name": "comment.block.cpp"
4795 },
4796 "4": {
4797 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4798 },
4799 "5": {
4800 "name": "variable.language.this.cpp"
4801 },
4802 "6": {
4803 "name": "variable.other.object.access.cpp"
4804 },
4805 "7": {
4806 "name": "punctuation.separator.dot-access.cpp"
4807 },
4808 "8": {
4809 "name": "punctuation.separator.pointer-access.cpp"
4810 }
4811 }
4812 },
4813 {
4814 "include": "source.cpp#member_access"
4815 },
4816 {
4817 "include": "#method_access"
4818 }
4819 ]
4820 },
4821 "10": {
4822 "name": "entity.name.function.member.cpp"
4823 },
4824 "11": {
4825 "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp"
4826 }
4827 },
4828 "endCaptures": {
4829 "0": {
4830 "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp"
4831 }
4832 },
4833 "patterns": [
4834 {
4835 "include": "#evaluation_context"
4836 }
4837 ]
4838 },
4839 "ms_attributes": {
4840 "begin": "__declspec\\(",
4841 "end": "\\)|(?=(?<!\\\\)\n)",
4842 "beginCaptures": {
4843 "0": {
4844 "name": "punctuation.section.attribute.begin.cpp"
4845 }
4846 },
4847 "endCaptures": {
4848 "0": {
4849 "name": "punctuation.section.attribute.end.cpp"
4850 }
4851 },
4852 "name": "support.other.attribute.cpp",
4853 "patterns": [
4854 {
4855 "include": "#attributes_context"
4856 },
4857 {
4858 "begin": "\\(",
4859 "end": "\\)|(?=(?<!\\\\)\n)",
4860 "beginCaptures": {},
4861 "endCaptures": {},
4862 "patterns": [
4863 {
4864 "include": "#attributes_context"
4865 },
4866 {
4867 "include": "#string_context"
4868 }
4869 ]
4870 },
4871 {
4872 "match": "(using)(?:\\s)+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
4873 "captures": {
4874 "1": {
4875 "name": "keyword.other.using.directive.cpp"
4876 },
4877 "2": {
4878 "name": "entity.name.namespace.cpp"
4879 }
4880 }
4881 },
4882 {
4883 "match": ",",
4884 "name": "punctuation.separator.attribute.cpp"
4885 },
4886 {
4887 "match": ":",
4888 "name": "punctuation.accessor.attribute.cpp"
4889 },
4890 {
4891 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)",
4892 "name": "entity.name.namespace.cpp"
4893 },
4894 {
4895 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
4896 "name": "entity.other.attribute.$0.cpp"
4897 },
4898 {
4899 "include": "source.cpp#number_literal"
4900 }
4901 ]
4902 },
4903 "namespace_block": {
4904 "begin": "((?<!\\w)namespace(?!\\w))",
4905 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
4906 "beginCaptures": {
4907 "0": {
4908 "name": "meta.head.namespace.cpp"
4909 },
4910 "1": {
4911 "name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"
4912 }
4913 },
4914 "endCaptures": {},
4915 "name": "meta.block.namespace.cpp",
4916 "patterns": [
4917 {
4918 "begin": "\\G ?",
4919 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
4920 "beginCaptures": {},
4921 "endCaptures": {
4922 "0": {
4923 "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp"
4924 }
4925 },
4926 "name": "meta.head.namespace.cpp",
4927 "patterns": [
4928 {
4929 "include": "#ever_present_context"
4930 },
4931 {
4932 "include": "#attributes_context"
4933 },
4934 {
4935 "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<4>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(?:\\s)+)?(?:(::)(?:(?:\\s)+)?(inline))?",
4936 "captures": {
4937 "1": {
4938 "patterns": [
4939 {
4940 "include": "source.cpp#scope_resolution_namespace_block_inner_generated"
4941 }
4942 ]
4943 },
4944 "2": {
4945 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
4946 },
4947 "3": {
4948 "patterns": [
4949 {
4950 "include": "#template_call_range"
4951 }
4952 ]
4953 },
4954 "4": {},
4955 "5": {
4956 "name": "entity.name.namespace.cpp"
4957 },
4958 "6": {
4959 "name": "punctuation.separator.scope-resolution.namespace.block.cpp"
4960 },
4961 "7": {
4962 "name": "storage.modifier.inline.cpp"
4963 }
4964 }
4965 }
4966 ]
4967 },
4968 {
4969 "begin": "(?<=\\{|<%|\\?\\?<)",
4970 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
4971 "beginCaptures": {},
4972 "endCaptures": {
4973 "0": {
4974 "name": "punctuation.section.block.end.bracket.curly.namespace.cpp"
4975 }
4976 },
4977 "name": "meta.body.namespace.cpp",
4978 "patterns": [
4979 {
4980 "include": "$self"
4981 }
4982 ]
4983 },
4984 {
4985 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
4986 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
4987 "beginCaptures": {},
4988 "endCaptures": {},
4989 "name": "meta.tail.namespace.cpp",
4990 "patterns": [
4991 {
4992 "include": "$self"
4993 }
4994 ]
4995 }
4996 ]
4997 },
4998 "noexcept_operator": {
4999 "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
5000 "end": "\\)|(?=(?<!\\\\)\n)",
5001 "beginCaptures": {
5002 "1": {
5003 "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"
5004 },
5005 "2": {
5006 "patterns": [
5007 {
5008 "include": "source.cpp#inline_comment"
5009 }
5010 ]
5011 },
5012 "3": {
5013 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5014 },
5015 "4": {
5016 "name": "comment.block.cpp"
5017 },
5018 "5": {
5019 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5020 },
5021 "6": {
5022 "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"
5023 }
5024 },
5025 "endCaptures": {
5026 "0": {
5027 "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
5028 }
5029 },
5030 "contentName": "meta.arguments.operator.noexcept",
5031 "patterns": [
5032 {
5033 "include": "#evaluation_context"
5034 }
5035 ]
5036 },
5037 "operator_overload": {
5038 "begin": "(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|(?:\\+)|(?:\\-)|!|~|(?:\\*)|&|(?:\\*)|(?:\\/)|%|(?:\\+)|(?:\\-)|<|>|&|(?:\\^)|(?:\\|)|=))|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=\\<|\\()",
5039 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
5040 "beginCaptures": {
5041 "0": {
5042 "name": "meta.head.function.definition.special.operator-overload.cpp"
5043 },
5044 "1": {
5045 "name": "meta.qualified_type.cpp",
5046 "patterns": [
5047 {
5048 "match": "::",
5049 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
5050 },
5051 {
5052 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
5053 "name": "storage.type.$0.cpp"
5054 },
5055 {
5056 "include": "#attributes_context"
5057 },
5058 {
5059 "include": "#storage_types"
5060 },
5061 {
5062 "include": "source.cpp#number_literal"
5063 },
5064 {
5065 "include": "#string_context"
5066 },
5067 {
5068 "include": "source.cpp#comma"
5069 },
5070 {
5071 "include": "source.cpp#scope_resolution_inner_generated"
5072 },
5073 {
5074 "begin": "<",
5075 "end": ">|(?=(?<!\\\\)\n)",
5076 "beginCaptures": {
5077 "0": {
5078 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
5079 }
5080 },
5081 "endCaptures": {
5082 "0": {
5083 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
5084 }
5085 },
5086 "name": "meta.template.call.cpp",
5087 "patterns": [
5088 {
5089 "include": "#template_call_context"
5090 }
5091 ]
5092 },
5093 {
5094 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
5095 "name": "entity.name.type.cpp"
5096 }
5097 ]
5098 },
5099 "2": {
5100 "patterns": [
5101 {
5102 "include": "#attributes_context"
5103 },
5104 {
5105 "include": "source.cpp#number_literal"
5106 }
5107 ]
5108 },
5109 "3": {
5110 "patterns": [
5111 {
5112 "include": "source.cpp#inline_comment"
5113 }
5114 ]
5115 },
5116 "4": {
5117 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5118 },
5119 "5": {
5120 "name": "comment.block.cpp"
5121 },
5122 "6": {
5123 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5124 },
5125 "7": {
5126 "patterns": [
5127 {
5128 "include": "source.cpp#inline_comment"
5129 }
5130 ]
5131 },
5132 "8": {
5133 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5134 },
5135 "9": {
5136 "name": "comment.block.cpp"
5137 },
5138 "10": {
5139 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5140 },
5141 "11": {
5142 "patterns": [
5143 {
5144 "match": "::",
5145 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
5146 },
5147 {
5148 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
5149 "name": "entity.name.scope-resolution.type.cpp"
5150 },
5151 {
5152 "include": "#template_call_range"
5153 }
5154 ]
5155 },
5156 "12": {
5157 "patterns": [
5158 {
5159 "include": "#template_call_range"
5160 }
5161 ]
5162 },
5163 "13": {},
5164 "14": {
5165 "patterns": [
5166 {
5167 "include": "source.cpp#inline_comment"
5168 }
5169 ]
5170 },
5171 "15": {
5172 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5173 },
5174 "16": {
5175 "name": "comment.block.cpp"
5176 },
5177 "17": {
5178 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5179 },
5180 "18": {},
5181 "19": {
5182 "patterns": [
5183 {
5184 "match": "\\*",
5185 "name": "storage.modifier.pointer.cpp"
5186 },
5187 {
5188 "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))){2,}\\&",
5189 "captures": {
5190 "1": {
5191 "patterns": [
5192 {
5193 "include": "source.cpp#inline_comment"
5194 }
5195 ]
5196 },
5197 "2": {
5198 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5199 },
5200 "3": {
5201 "name": "comment.block.cpp"
5202 },
5203 "4": {
5204 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5205 }
5206 },
5207 "name": "invalid.illegal.reference-type.cpp"
5208 },
5209 {
5210 "match": "\\&",
5211 "name": "storage.modifier.reference.cpp"
5212 }
5213 ]
5214 },
5215 "20": {
5216 "patterns": [
5217 {
5218 "include": "source.cpp#inline_comment"
5219 }
5220 ]
5221 },
5222 "21": {
5223 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5224 },
5225 "22": {
5226 "name": "comment.block.cpp"
5227 },
5228 "23": {
5229 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5230 },
5231 "24": {
5232 "patterns": [
5233 {
5234 "include": "source.cpp#inline_comment"
5235 }
5236 ]
5237 },
5238 "25": {
5239 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5240 },
5241 "26": {
5242 "name": "comment.block.cpp"
5243 },
5244 "27": {
5245 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5246 },
5247 "28": {
5248 "patterns": [
5249 {
5250 "include": "source.cpp#inline_comment"
5251 }
5252 ]
5253 },
5254 "29": {
5255 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5256 },
5257 "30": {
5258 "name": "comment.block.cpp"
5259 },
5260 "31": {
5261 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5262 },
5263 "32": {
5264 "patterns": [
5265 {
5266 "include": "source.cpp#inline_comment"
5267 }
5268 ]
5269 },
5270 "33": {
5271 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5272 },
5273 "34": {
5274 "name": "comment.block.cpp"
5275 },
5276 "35": {
5277 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5278 },
5279 "36": {
5280 "name": "storage.type.modifier.calling-convention.cpp"
5281 },
5282 "37": {
5283 "patterns": [
5284 {
5285 "include": "source.cpp#inline_comment"
5286 }
5287 ]
5288 },
5289 "38": {
5290 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5291 },
5292 "39": {
5293 "name": "comment.block.cpp"
5294 },
5295 "40": {
5296 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5297 },
5298 "41": {
5299 "patterns": [
5300 {
5301 "include": "source.cpp#inline_comment"
5302 }
5303 ]
5304 },
5305 "42": {
5306 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5307 },
5308 "43": {
5309 "name": "comment.block.cpp"
5310 },
5311 "44": {
5312 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5313 },
5314 "45": {
5315 "patterns": [
5316 {
5317 "match": "::",
5318 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp"
5319 },
5320 {
5321 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
5322 "name": "entity.name.scope-resolution.operator.cpp"
5323 },
5324 {
5325 "include": "#template_call_range"
5326 }
5327 ]
5328 },
5329 "46": {
5330 "patterns": [
5331 {
5332 "include": "#template_call_range"
5333 }
5334 ]
5335 },
5336 "47": {},
5337 "48": {
5338 "name": "keyword.other.operator.overload.cpp"
5339 },
5340 "49": {
5341 "patterns": [
5342 {
5343 "include": "source.cpp#inline_comment"
5344 }
5345 ]
5346 },
5347 "50": {
5348 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5349 },
5350 "51": {
5351 "name": "comment.block.cpp"
5352 },
5353 "52": {
5354 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5355 },
5356 "53": {
5357 "patterns": [
5358 {
5359 "match": "::",
5360 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp"
5361 },
5362 {
5363 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
5364 "name": "entity.name.scope-resolution.operator-overload.cpp"
5365 },
5366 {
5367 "include": "#template_call_range"
5368 }
5369 ]
5370 },
5371 "54": {
5372 "patterns": [
5373 {
5374 "include": "#template_call_range"
5375 }
5376 ]
5377 },
5378 "55": {},
5379 "56": {
5380 "name": "entity.name.operator.cpp"
5381 },
5382 "57": {
5383 "name": "entity.name.operator.type.cpp"
5384 },
5385 "58": {
5386 "patterns": [
5387 {
5388 "match": "\\*",
5389 "name": "entity.name.operator.type.pointer.cpp"
5390 },
5391 {
5392 "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))){2,}\\&",
5393 "captures": {
5394 "1": {
5395 "patterns": [
5396 {
5397 "include": "source.cpp#inline_comment"
5398 }
5399 ]
5400 },
5401 "2": {
5402 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5403 },
5404 "3": {
5405 "name": "comment.block.cpp"
5406 },
5407 "4": {
5408 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5409 }
5410 },
5411 "name": "invalid.illegal.reference-type.cpp"
5412 },
5413 {
5414 "match": "\\&",
5415 "name": "entity.name.operator.type.reference.cpp"
5416 }
5417 ]
5418 },
5419 "59": {
5420 "patterns": [
5421 {
5422 "include": "source.cpp#inline_comment"
5423 }
5424 ]
5425 },
5426 "60": {
5427 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5428 },
5429 "61": {
5430 "name": "comment.block.cpp"
5431 },
5432 "62": {
5433 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5434 },
5435 "63": {
5436 "patterns": [
5437 {
5438 "include": "source.cpp#inline_comment"
5439 }
5440 ]
5441 },
5442 "64": {
5443 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5444 },
5445 "65": {
5446 "name": "comment.block.cpp"
5447 },
5448 "66": {
5449 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5450 },
5451 "67": {
5452 "patterns": [
5453 {
5454 "include": "source.cpp#inline_comment"
5455 }
5456 ]
5457 },
5458 "68": {
5459 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5460 },
5461 "69": {
5462 "name": "comment.block.cpp"
5463 },
5464 "70": {
5465 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5466 },
5467 "71": {
5468 "name": "entity.name.operator.type.array.cpp"
5469 },
5470 "72": {
5471 "name": "entity.name.operator.custom-literal.cpp"
5472 },
5473 "73": {
5474 "patterns": [
5475 {
5476 "include": "source.cpp#inline_comment"
5477 }
5478 ]
5479 },
5480 "74": {
5481 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5482 },
5483 "75": {
5484 "name": "comment.block.cpp"
5485 },
5486 "76": {
5487 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5488 },
5489 "77": {
5490 "name": "entity.name.operator.custom-literal.cpp"
5491 },
5492 "78": {
5493 "patterns": [
5494 {
5495 "include": "source.cpp#inline_comment"
5496 }
5497 ]
5498 },
5499 "79": {
5500 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5501 },
5502 "80": {
5503 "name": "comment.block.cpp"
5504 },
5505 "81": {
5506 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5507 }
5508 },
5509 "endCaptures": {},
5510 "name": "meta.function.definition.special.operator-overload.cpp",
5511 "patterns": [
5512 {
5513 "begin": "\\G ?",
5514 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
5515 "beginCaptures": {},
5516 "endCaptures": {
5517 "0": {
5518 "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp"
5519 }
5520 },
5521 "name": "meta.head.function.definition.special.operator-overload.cpp",
5522 "patterns": [
5523 {
5524 "include": "#ever_present_context"
5525 },
5526 {
5527 "include": "#template_call_range"
5528 },
5529 {
5530 "begin": "\\(",
5531 "end": "\\)|(?=(?<!\\\\)\n)",
5532 "beginCaptures": {
5533 "0": {
5534 "name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"
5535 }
5536 },
5537 "endCaptures": {
5538 "0": {
5539 "name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp"
5540 }
5541 },
5542 "contentName": "meta.function.definition.parameters.special.operator-overload",
5543 "patterns": [
5544 {
5545 "include": "#function_parameter_context"
5546 },
5547 {
5548 "include": "#evaluation_context"
5549 }
5550 ]
5551 },
5552 {
5553 "include": "source.cpp#qualifiers_and_specifiers_post_parameters"
5554 },
5555 {
5556 "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
5557 "captures": {
5558 "1": {
5559 "name": "keyword.operator.assignment.cpp"
5560 },
5561 "2": {
5562 "patterns": [
5563 {
5564 "include": "source.cpp#inline_comment"
5565 }
5566 ]
5567 },
5568 "3": {
5569 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5570 },
5571 "4": {
5572 "name": "comment.block.cpp"
5573 },
5574 "5": {
5575 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5576 },
5577 "6": {
5578 "name": "keyword.other.default.function.cpp"
5579 },
5580 "7": {
5581 "name": "keyword.other.delete.function.cpp"
5582 }
5583 }
5584 },
5585 {
5586 "include": "$self"
5587 }
5588 ]
5589 },
5590 {
5591 "begin": "(?<=\\{|<%|\\?\\?<)",
5592 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
5593 "beginCaptures": {},
5594 "endCaptures": {
5595 "0": {
5596 "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"
5597 }
5598 },
5599 "name": "meta.body.function.definition.special.operator-overload.cpp",
5600 "patterns": [
5601 {
5602 "include": "#function_body_context"
5603 }
5604 ]
5605 },
5606 {
5607 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
5608 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
5609 "beginCaptures": {},
5610 "endCaptures": {},
5611 "name": "meta.tail.function.definition.special.operator-overload.cpp",
5612 "patterns": [
5613 {
5614 "include": "$self"
5615 }
5616 ]
5617 }
5618 ]
5619 },
5620 "operators": {
5621 "patterns": [
5622 {
5623 "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
5624 "end": "\\)|(?=(?<!\\\\)\n)",
5625 "beginCaptures": {
5626 "1": {
5627 "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"
5628 },
5629 "2": {
5630 "patterns": [
5631 {
5632 "include": "source.cpp#inline_comment"
5633 }
5634 ]
5635 },
5636 "3": {
5637 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5638 },
5639 "4": {
5640 "name": "comment.block.cpp"
5641 },
5642 "5": {
5643 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5644 },
5645 "6": {
5646 "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"
5647 }
5648 },
5649 "endCaptures": {
5650 "0": {
5651 "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
5652 }
5653 },
5654 "contentName": "meta.arguments.operator.sizeof",
5655 "patterns": [
5656 {
5657 "include": "#evaluation_context"
5658 }
5659 ]
5660 },
5661 {
5662 "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
5663 "end": "\\)|(?=(?<!\\\\)\n)",
5664 "beginCaptures": {
5665 "1": {
5666 "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"
5667 },
5668 "2": {
5669 "patterns": [
5670 {
5671 "include": "source.cpp#inline_comment"
5672 }
5673 ]
5674 },
5675 "3": {
5676 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5677 },
5678 "4": {
5679 "name": "comment.block.cpp"
5680 },
5681 "5": {
5682 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5683 },
5684 "6": {
5685 "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"
5686 }
5687 },
5688 "endCaptures": {
5689 "0": {
5690 "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
5691 }
5692 },
5693 "contentName": "meta.arguments.operator.alignof",
5694 "patterns": [
5695 {
5696 "include": "#evaluation_context"
5697 }
5698 ]
5699 },
5700 {
5701 "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
5702 "end": "\\)|(?=(?<!\\\\)\n)",
5703 "beginCaptures": {
5704 "1": {
5705 "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"
5706 },
5707 "2": {
5708 "patterns": [
5709 {
5710 "include": "source.cpp#inline_comment"
5711 }
5712 ]
5713 },
5714 "3": {
5715 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5716 },
5717 "4": {
5718 "name": "comment.block.cpp"
5719 },
5720 "5": {
5721 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5722 },
5723 "6": {
5724 "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"
5725 }
5726 },
5727 "endCaptures": {
5728 "0": {
5729 "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
5730 }
5731 },
5732 "contentName": "meta.arguments.operator.alignas",
5733 "patterns": [
5734 {
5735 "include": "#evaluation_context"
5736 }
5737 ]
5738 },
5739 {
5740 "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
5741 "end": "\\)|(?=(?<!\\\\)\n)",
5742 "beginCaptures": {
5743 "1": {
5744 "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"
5745 },
5746 "2": {
5747 "patterns": [
5748 {
5749 "include": "source.cpp#inline_comment"
5750 }
5751 ]
5752 },
5753 "3": {
5754 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5755 },
5756 "4": {
5757 "name": "comment.block.cpp"
5758 },
5759 "5": {
5760 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5761 },
5762 "6": {
5763 "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"
5764 }
5765 },
5766 "endCaptures": {
5767 "0": {
5768 "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
5769 }
5770 },
5771 "contentName": "meta.arguments.operator.typeid",
5772 "patterns": [
5773 {
5774 "include": "#evaluation_context"
5775 }
5776 ]
5777 },
5778 {
5779 "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
5780 "end": "\\)|(?=(?<!\\\\)\n)",
5781 "beginCaptures": {
5782 "1": {
5783 "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"
5784 },
5785 "2": {
5786 "patterns": [
5787 {
5788 "include": "source.cpp#inline_comment"
5789 }
5790 ]
5791 },
5792 "3": {
5793 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5794 },
5795 "4": {
5796 "name": "comment.block.cpp"
5797 },
5798 "5": {
5799 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5800 },
5801 "6": {
5802 "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"
5803 }
5804 },
5805 "endCaptures": {
5806 "0": {
5807 "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
5808 }
5809 },
5810 "contentName": "meta.arguments.operator.noexcept",
5811 "patterns": [
5812 {
5813 "include": "#evaluation_context"
5814 }
5815 ]
5816 },
5817 {
5818 "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
5819 "end": "\\)|(?=(?<!\\\\)\n)",
5820 "beginCaptures": {
5821 "1": {
5822 "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"
5823 },
5824 "2": {
5825 "patterns": [
5826 {
5827 "include": "source.cpp#inline_comment"
5828 }
5829 ]
5830 },
5831 "3": {
5832 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5833 },
5834 "4": {
5835 "name": "comment.block.cpp"
5836 },
5837 "5": {
5838 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5839 },
5840 "6": {
5841 "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"
5842 }
5843 },
5844 "endCaptures": {
5845 "0": {
5846 "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"
5847 }
5848 },
5849 "contentName": "meta.arguments.operator.sizeof.variadic",
5850 "patterns": [
5851 {
5852 "include": "#evaluation_context"
5853 }
5854 ]
5855 },
5856 {
5857 "match": "--",
5858 "name": "keyword.operator.decrement.cpp"
5859 },
5860 {
5861 "match": "\\+\\+",
5862 "name": "keyword.operator.increment.cpp"
5863 },
5864 {
5865 "match": "%=|\\+=|-=|\\*=|(?<!\\()\\/=",
5866 "name": "keyword.operator.assignment.compound.cpp"
5867 },
5868 {
5869 "match": "&=|\\^=|<<=|>>=|\\|=",
5870 "name": "keyword.operator.assignment.compound.bitwise.cpp"
5871 },
5872 {
5873 "match": "<<|>>",
5874 "name": "keyword.operator.bitwise.shift.cpp"
5875 },
5876 {
5877 "match": "!=|<=|>=|==|<|>",
5878 "name": "keyword.operator.comparison.cpp"
5879 },
5880 {
5881 "match": "&&|!|\\|\\|",
5882 "name": "keyword.operator.logical.cpp"
5883 },
5884 {
5885 "match": "&|\\||\\^|~",
5886 "name": "keyword.operator.bitwise.cpp"
5887 },
5888 {
5889 "include": "source.cpp#assignment_operator"
5890 },
5891 {
5892 "match": "%|\\*|\\/|-|\\+",
5893 "name": "keyword.operator.arithmetic.cpp"
5894 },
5895 {
5896 "include": "#ternary_operator"
5897 }
5898 ]
5899 },
5900 "parameter": {
5901 "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=\\w)",
5902 "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
5903 "beginCaptures": {
5904 "1": {
5905 "patterns": [
5906 {
5907 "include": "source.cpp#inline_comment"
5908 }
5909 ]
5910 },
5911 "2": {
5912 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5913 },
5914 "3": {
5915 "name": "comment.block.cpp"
5916 },
5917 "4": {
5918 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5919 }
5920 },
5921 "endCaptures": {
5922 "1": {
5923 "name": "punctuation.separator.delimiter.comma.cpp"
5924 }
5925 },
5926 "name": "meta.parameter.cpp",
5927 "patterns": [
5928 {
5929 "include": "#ever_present_context"
5930 },
5931 {
5932 "include": "#string_context"
5933 },
5934 {
5935 "include": "#function_pointer_parameter"
5936 },
5937 {
5938 "include": "#decltype"
5939 },
5940 {
5941 "include": "source.cpp#vararg_ellipses"
5942 },
5943 {
5944 "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",
5945 "captures": {
5946 "1": {
5947 "patterns": [
5948 {
5949 "include": "#storage_types"
5950 }
5951 ]
5952 },
5953 "2": {
5954 "name": "storage.modifier.specifier.parameter.cpp"
5955 },
5956 "3": {
5957 "patterns": [
5958 {
5959 "include": "source.cpp#inline_comment"
5960 }
5961 ]
5962 },
5963 "4": {
5964 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5965 },
5966 "5": {
5967 "name": "comment.block.cpp"
5968 },
5969 "6": {
5970 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5971 },
5972 "7": {
5973 "patterns": [
5974 {
5975 "include": "source.cpp#inline_comment"
5976 }
5977 ]
5978 },
5979 "8": {
5980 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5981 },
5982 "9": {
5983 "name": "comment.block.cpp"
5984 },
5985 "10": {
5986 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5987 },
5988 "11": {
5989 "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
5990 },
5991 "12": {
5992 "name": "storage.type.cpp storage.type.built-in.cpp"
5993 },
5994 "13": {
5995 "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
5996 },
5997 "14": {
5998 "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
5999 },
6000 "15": {
6001 "name": "entity.name.type.parameter.cpp"
6002 },
6003 "16": {
6004 "patterns": [
6005 {
6006 "include": "source.cpp#inline_comment"
6007 }
6008 ]
6009 },
6010 "17": {
6011 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6012 },
6013 "18": {
6014 "name": "comment.block.cpp"
6015 },
6016 "19": {
6017 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6018 }
6019 }
6020 },
6021 {
6022 "include": "#storage_types"
6023 },
6024 {
6025 "include": "source.cpp#scope_resolution_parameter_inner_generated"
6026 },
6027 {
6028 "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
6029 "name": "storage.type.$0.cpp"
6030 },
6031 {
6032 "begin": "(?<==)",
6033 "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
6034 "beginCaptures": {},
6035 "endCaptures": {
6036 "1": {
6037 "name": "punctuation.separator.delimiter.comma.cpp"
6038 }
6039 },
6040 "patterns": [
6041 {
6042 "include": "#evaluation_context"
6043 }
6044 ]
6045 },
6046 {
6047 "match": "\\=",
6048 "name": "keyword.operator.assignment.cpp"
6049 },
6050 {
6051 "match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=\\)|,|\\[|=|\\n)",
6052 "captures": {
6053 "1": {
6054 "patterns": [
6055 {
6056 "include": "source.cpp#inline_comment"
6057 }
6058 ]
6059 },
6060 "2": {
6061 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6062 },
6063 "3": {
6064 "name": "comment.block.cpp"
6065 },
6066 "4": {
6067 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6068 },
6069 "5": {
6070 "name": "variable.parameter.cpp"
6071 },
6072 "6": {
6073 "patterns": [
6074 {
6075 "include": "source.cpp#inline_comment"
6076 }
6077 ]
6078 },
6079 "7": {
6080 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6081 },
6082 "8": {
6083 "name": "comment.block.cpp"
6084 },
6085 "9": {
6086 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6087 }
6088 }
6089 },
6090 {
6091 "include": "#attributes_context"
6092 },
6093 {
6094 "begin": "\\[",
6095 "end": "\\]|(?=(?<!\\\\)\n)",
6096 "beginCaptures": {
6097 "0": {
6098 "name": "punctuation.definition.begin.bracket.square.array.type.cpp"
6099 }
6100 },
6101 "endCaptures": {
6102 "0": {
6103 "name": "punctuation.definition.end.bracket.square.array.type.cpp"
6104 }
6105 },
6106 "name": "meta.bracket.square.array.cpp",
6107 "patterns": [
6108 {
6109 "include": "#evaluation_context"
6110 }
6111 ]
6112 },
6113 {
6114 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)",
6115 "name": "entity.name.type.parameter.cpp"
6116 },
6117 {
6118 "include": "#template_call_range"
6119 },
6120 {
6121 "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
6122 "captures": {
6123 "0": {
6124 "patterns": [
6125 {
6126 "match": "\\*",
6127 "name": "storage.modifier.pointer.cpp"
6128 },
6129 {
6130 "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))){2,}\\&",
6131 "captures": {
6132 "1": {
6133 "patterns": [
6134 {
6135 "include": "source.cpp#inline_comment"
6136 }
6137 ]
6138 },
6139 "2": {
6140 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6141 },
6142 "3": {
6143 "name": "comment.block.cpp"
6144 },
6145 "4": {
6146 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6147 }
6148 },
6149 "name": "invalid.illegal.reference-type.cpp"
6150 },
6151 {
6152 "match": "\\&",
6153 "name": "storage.modifier.reference.cpp"
6154 }
6155 ]
6156 },
6157 "1": {
6158 "patterns": [
6159 {
6160 "include": "source.cpp#inline_comment"
6161 }
6162 ]
6163 },
6164 "2": {
6165 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6166 },
6167 "3": {
6168 "name": "comment.block.cpp"
6169 },
6170 "4": {
6171 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6172 },
6173 "5": {
6174 "patterns": [
6175 {
6176 "include": "source.cpp#inline_comment"
6177 }
6178 ]
6179 },
6180 "6": {
6181 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6182 },
6183 "7": {
6184 "name": "comment.block.cpp"
6185 },
6186 "8": {
6187 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6188 }
6189 }
6190 }
6191 ]
6192 },
6193 "parameter_or_maybe_value": {
6194 "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=\\w)",
6195 "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
6196 "beginCaptures": {
6197 "1": {
6198 "patterns": [
6199 {
6200 "include": "source.cpp#inline_comment"
6201 }
6202 ]
6203 },
6204 "2": {
6205 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6206 },
6207 "3": {
6208 "name": "comment.block.cpp"
6209 },
6210 "4": {
6211 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6212 }
6213 },
6214 "endCaptures": {
6215 "1": {
6216 "name": "punctuation.separator.delimiter.comma.cpp"
6217 }
6218 },
6219 "name": "meta.parameter.cpp",
6220 "patterns": [
6221 {
6222 "include": "#ever_present_context"
6223 },
6224 {
6225 "include": "#function_pointer_parameter"
6226 },
6227 {
6228 "include": "source.cpp#memory_operators"
6229 },
6230 {
6231 "include": "#builtin_storage_type_initilizer"
6232 },
6233 {
6234 "include": "#curly_initializer"
6235 },
6236 {
6237 "include": "#decltype"
6238 },
6239 {
6240 "include": "source.cpp#vararg_ellipses"
6241 },
6242 {
6243 "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",
6244 "captures": {
6245 "1": {
6246 "patterns": [
6247 {
6248 "include": "#storage_types"
6249 }
6250 ]
6251 },
6252 "2": {
6253 "name": "storage.modifier.specifier.parameter.cpp"
6254 },
6255 "3": {
6256 "patterns": [
6257 {
6258 "include": "source.cpp#inline_comment"
6259 }
6260 ]
6261 },
6262 "4": {
6263 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6264 },
6265 "5": {
6266 "name": "comment.block.cpp"
6267 },
6268 "6": {
6269 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6270 },
6271 "7": {
6272 "patterns": [
6273 {
6274 "include": "source.cpp#inline_comment"
6275 }
6276 ]
6277 },
6278 "8": {
6279 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6280 },
6281 "9": {
6282 "name": "comment.block.cpp"
6283 },
6284 "10": {
6285 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6286 },
6287 "11": {
6288 "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
6289 },
6290 "12": {
6291 "name": "storage.type.cpp storage.type.built-in.cpp"
6292 },
6293 "13": {
6294 "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
6295 },
6296 "14": {
6297 "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
6298 },
6299 "15": {
6300 "name": "entity.name.type.parameter.cpp"
6301 },
6302 "16": {
6303 "patterns": [
6304 {
6305 "include": "source.cpp#inline_comment"
6306 }
6307 ]
6308 },
6309 "17": {
6310 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6311 },
6312 "18": {
6313 "name": "comment.block.cpp"
6314 },
6315 "19": {
6316 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6317 }
6318 }
6319 },
6320 {
6321 "include": "#storage_types"
6322 },
6323 {
6324 "include": "#function_call"
6325 },
6326 {
6327 "include": "source.cpp#scope_resolution_parameter_inner_generated"
6328 },
6329 {
6330 "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
6331 "name": "storage.type.$0.cpp"
6332 },
6333 {
6334 "begin": "(?<==)",
6335 "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
6336 "beginCaptures": {},
6337 "endCaptures": {
6338 "1": {
6339 "name": "punctuation.separator.delimiter.comma.cpp"
6340 }
6341 },
6342 "patterns": [
6343 {
6344 "include": "#evaluation_context"
6345 }
6346 ]
6347 },
6348 {
6349 "match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))",
6350 "captures": {
6351 "1": {
6352 "patterns": [
6353 {
6354 "include": "source.cpp#inline_comment"
6355 }
6356 ]
6357 },
6358 "2": {
6359 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6360 },
6361 "3": {
6362 "name": "comment.block.cpp"
6363 },
6364 "4": {
6365 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6366 },
6367 "5": {
6368 "name": "variable.parameter.cpp"
6369 },
6370 "6": {
6371 "patterns": [
6372 {
6373 "include": "source.cpp#inline_comment"
6374 }
6375 ]
6376 },
6377 "7": {
6378 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6379 },
6380 "8": {
6381 "name": "comment.block.cpp"
6382 },
6383 "9": {
6384 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6385 }
6386 }
6387 },
6388 {
6389 "include": "#attributes_context"
6390 },
6391 {
6392 "begin": "\\[",
6393 "end": "\\]|(?=(?<!\\\\)\n)",
6394 "beginCaptures": {
6395 "0": {
6396 "name": "punctuation.definition.begin.bracket.square.array.type.cpp"
6397 }
6398 },
6399 "endCaptures": {
6400 "0": {
6401 "name": "punctuation.definition.end.bracket.square.array.type.cpp"
6402 }
6403 },
6404 "name": "meta.bracket.square.array.cpp",
6405 "patterns": [
6406 {
6407 "include": "#evaluation_context"
6408 }
6409 ]
6410 },
6411 {
6412 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)",
6413 "name": "entity.name.type.parameter.cpp"
6414 },
6415 {
6416 "include": "#template_call_range"
6417 },
6418 {
6419 "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
6420 "captures": {
6421 "0": {
6422 "patterns": [
6423 {
6424 "match": "\\*",
6425 "name": "storage.modifier.pointer.cpp"
6426 },
6427 {
6428 "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))){2,}\\&",
6429 "captures": {
6430 "1": {
6431 "patterns": [
6432 {
6433 "include": "source.cpp#inline_comment"
6434 }
6435 ]
6436 },
6437 "2": {
6438 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6439 },
6440 "3": {
6441 "name": "comment.block.cpp"
6442 },
6443 "4": {
6444 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6445 }
6446 },
6447 "name": "invalid.illegal.reference-type.cpp"
6448 },
6449 {
6450 "match": "\\&",
6451 "name": "storage.modifier.reference.cpp"
6452 }
6453 ]
6454 },
6455 "1": {
6456 "patterns": [
6457 {
6458 "include": "source.cpp#inline_comment"
6459 }
6460 ]
6461 },
6462 "2": {
6463 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6464 },
6465 "3": {
6466 "name": "comment.block.cpp"
6467 },
6468 "4": {
6469 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6470 },
6471 "5": {
6472 "patterns": [
6473 {
6474 "include": "source.cpp#inline_comment"
6475 }
6476 ]
6477 },
6478 "6": {
6479 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6480 },
6481 "7": {
6482 "name": "comment.block.cpp"
6483 },
6484 "8": {
6485 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6486 }
6487 }
6488 },
6489 {
6490 "include": "#evaluation_context"
6491 }
6492 ]
6493 },
6494 "parentheses": {
6495 "begin": "\\(",
6496 "end": "\\)|(?=(?<!\\\\)\n)",
6497 "beginCaptures": {
6498 "0": {
6499 "name": "punctuation.section.parens.begin.bracket.round.cpp"
6500 }
6501 },
6502 "endCaptures": {
6503 "0": {
6504 "name": "punctuation.section.parens.end.bracket.round.cpp"
6505 }
6506 },
6507 "name": "meta.parens.cpp",
6508 "patterns": [
6509 {
6510 "include": "source.cpp#over_qualified_types"
6511 },
6512 {
6513 "match": "(?<!:):(?!:)",
6514 "name": "punctuation.separator.colon.range-based.cpp"
6515 },
6516 {
6517 "include": "#evaluation_context"
6518 }
6519 ]
6520 },
6521 "pragma": {
6522 "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b",
6523 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
6524 "beginCaptures": {
6525 "0": {
6526 "name": "keyword.control.directive.pragma.cpp"
6527 },
6528 "1": {
6529 "patterns": [
6530 {
6531 "include": "source.cpp#inline_comment"
6532 }
6533 ]
6534 },
6535 "2": {
6536 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6537 },
6538 "3": {
6539 "name": "comment.block.cpp"
6540 },
6541 "4": {
6542 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6543 },
6544 "5": {
6545 "name": "punctuation.definition.directive.cpp"
6546 }
6547 },
6548 "endCaptures": {},
6549 "name": "meta.preprocessor.pragma.cpp",
6550 "patterns": [
6551 {
6552 "include": "#comments"
6553 },
6554 {
6555 "include": "#string_context"
6556 },
6557 {
6558 "match": "[a-zA-Z_$][\\w\\-$]*",
6559 "name": "entity.other.attribute-name.pragma.preprocessor.cpp"
6560 },
6561 {
6562 "include": "#preprocessor_number_literal"
6563 },
6564 {
6565 "include": "source.cpp#line_continuation_character"
6566 }
6567 ]
6568 },
6569 "preprocessor_conditional_context": {
6570 "patterns": [
6571 {
6572 "include": "#preprocessor_conditional_defined"
6573 },
6574 {
6575 "include": "#comments"
6576 },
6577 {
6578 "include": "source.cpp#language_constants"
6579 },
6580 {
6581 "include": "#string_context"
6582 },
6583 {
6584 "include": "source.cpp#d9bc4796b0b_preprocessor_number_literal"
6585 },
6586 {
6587 "include": "#operators"
6588 },
6589 {
6590 "include": "source.cpp#predefined_macros"
6591 },
6592 {
6593 "include": "source.cpp#macro_name"
6594 },
6595 {
6596 "include": "source.cpp#line_continuation_character"
6597 }
6598 ]
6599 },
6600 "preprocessor_conditional_defined": {
6601 "begin": "((?<!\\w)defined(?!\\w))(\\()",
6602 "end": "(?:\\)|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)",
6603 "beginCaptures": {
6604 "1": {
6605 "name": "keyword.control.directive.conditional.defined.cpp"
6606 },
6607 "2": {
6608 "name": "punctuation.section.parens.control.defined.cpp"
6609 }
6610 },
6611 "endCaptures": {
6612 "0": {
6613 "name": "punctuation.section.parens.control.defined.cpp"
6614 }
6615 },
6616 "patterns": [
6617 {
6618 "include": "source.cpp#macro_name"
6619 }
6620 ]
6621 },
6622 "preprocessor_conditional_parentheses": {
6623 "begin": "\\(",
6624 "end": "\\)|(?=(?<!\\\\)\n)",
6625 "beginCaptures": {
6626 "0": {
6627 "name": "punctuation.section.parens.begin.bracket.round.cpp"
6628 }
6629 },
6630 "endCaptures": {
6631 "0": {
6632 "name": "punctuation.section.parens.end.bracket.round.cpp"
6633 }
6634 },
6635 "name": "meta.parens.preprocessor.conditional.cpp"
6636 },
6637 "preprocessor_conditional_range": {
6638 "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))",
6639 "end": "^(?!\\s*+#\\s*(?:else|endif))|(?=(?<!\\\\)\n)",
6640 "beginCaptures": {
6641 "0": {
6642 "name": "keyword.control.directive.conditional.$6.cpp"
6643 },
6644 "1": {
6645 "patterns": [
6646 {
6647 "include": "source.cpp#inline_comment"
6648 }
6649 ]
6650 },
6651 "2": {
6652 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6653 },
6654 "3": {
6655 "name": "comment.block.cpp"
6656 },
6657 "4": {
6658 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6659 },
6660 "5": {
6661 "name": "punctuation.definition.directive.cpp"
6662 },
6663 "6": {}
6664 },
6665 "endCaptures": {},
6666 "patterns": [
6667 {
6668 "begin": "\\G(?<=ifndef|ifdef|if)",
6669 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
6670 "beginCaptures": {},
6671 "endCaptures": {},
6672 "name": "meta.preprocessor.conditional.cpp",
6673 "patterns": [
6674 {
6675 "include": "#preprocessor_conditional_context"
6676 }
6677 ]
6678 },
6679 {
6680 "include": "$self"
6681 }
6682 ]
6683 },
6684 "preprocessor_context": {
6685 "patterns": [
6686 {
6687 "include": "source.cpp#pragma_mark"
6688 },
6689 {
6690 "include": "#pragma"
6691 },
6692 {
6693 "include": "source.cpp#include"
6694 },
6695 {
6696 "include": "#line"
6697 },
6698 {
6699 "include": "#diagnostic"
6700 },
6701 {
6702 "include": "source.cpp#undef"
6703 },
6704 {
6705 "include": "#preprocessor_conditional_range"
6706 },
6707 {
6708 "include": "source.cpp#single_line_macro"
6709 },
6710 {
6711 "include": "#macro"
6712 },
6713 {
6714 "include": "source.cpp#preprocessor_conditional_standalone"
6715 },
6716 {
6717 "include": "source.cpp#macro_argument"
6718 }
6719 ]
6720 },
6721 "sizeof_operator": {
6722 "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
6723 "end": "\\)|(?=(?<!\\\\)\n)",
6724 "beginCaptures": {
6725 "1": {
6726 "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"
6727 },
6728 "2": {
6729 "patterns": [
6730 {
6731 "include": "source.cpp#inline_comment"
6732 }
6733 ]
6734 },
6735 "3": {
6736 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6737 },
6738 "4": {
6739 "name": "comment.block.cpp"
6740 },
6741 "5": {
6742 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6743 },
6744 "6": {
6745 "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"
6746 }
6747 },
6748 "endCaptures": {
6749 "0": {
6750 "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
6751 }
6752 },
6753 "contentName": "meta.arguments.operator.sizeof",
6754 "patterns": [
6755 {
6756 "include": "#evaluation_context"
6757 }
6758 ]
6759 },
6760 "sizeof_variadic_operator": {
6761 "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
6762 "end": "\\)|(?=(?<!\\\\)\n)",
6763 "beginCaptures": {
6764 "1": {
6765 "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"
6766 },
6767 "2": {
6768 "patterns": [
6769 {
6770 "include": "source.cpp#inline_comment"
6771 }
6772 ]
6773 },
6774 "3": {
6775 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6776 },
6777 "4": {
6778 "name": "comment.block.cpp"
6779 },
6780 "5": {
6781 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6782 },
6783 "6": {
6784 "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"
6785 }
6786 },
6787 "endCaptures": {
6788 "0": {
6789 "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"
6790 }
6791 },
6792 "contentName": "meta.arguments.operator.sizeof.variadic",
6793 "patterns": [
6794 {
6795 "include": "#evaluation_context"
6796 }
6797 ]
6798 },
6799 "square_brackets": {
6800 "name": "meta.bracket.square.access",
6801 "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
6802 "beginCaptures": {
6803 "1": {
6804 "name": "variable.other.object"
6805 },
6806 "2": {
6807 "name": "punctuation.definition.begin.bracket.square"
6808 }
6809 },
6810 "end": "\\]|(?=(?<!\\\\)\n)",
6811 "endCaptures": {
6812 "0": {
6813 "name": "punctuation.definition.end.bracket.square"
6814 }
6815 },
6816 "patterns": [
6817 {
6818 "include": "#evaluation_context"
6819 }
6820 ]
6821 },
6822 "static_assert": {
6823 "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
6824 "end": "\\)|(?=(?<!\\\\)\n)",
6825 "beginCaptures": {
6826 "1": {
6827 "patterns": [
6828 {
6829 "include": "source.cpp#inline_comment"
6830 }
6831 ]
6832 },
6833 "2": {
6834 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6835 },
6836 "3": {
6837 "name": "comment.block.cpp"
6838 },
6839 "4": {
6840 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6841 },
6842 "5": {
6843 "name": "keyword.other.static_assert.cpp"
6844 },
6845 "6": {
6846 "patterns": [
6847 {
6848 "include": "source.cpp#inline_comment"
6849 }
6850 ]
6851 },
6852 "7": {
6853 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6854 },
6855 "8": {
6856 "name": "comment.block.cpp"
6857 },
6858 "9": {
6859 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6860 },
6861 "10": {
6862 "name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp"
6863 }
6864 },
6865 "endCaptures": {
6866 "0": {
6867 "name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp"
6868 }
6869 },
6870 "patterns": [
6871 {
6872 "begin": "(,)(?:(?:\\s)+)?(?=(?:L|u8|u|U(?:(?:\\s)+)?\\\")?)",
6873 "end": "(?=\\))|(?=(?<!\\\\)\n)",
6874 "beginCaptures": {
6875 "1": {
6876 "name": "punctuation.separator.delimiter.comma.cpp"
6877 }
6878 },
6879 "endCaptures": {},
6880 "name": "meta.static_assert.message.cpp",
6881 "patterns": [
6882 {
6883 "include": "#string_context"
6884 }
6885 ]
6886 },
6887 {
6888 "include": "#evaluation_context"
6889 }
6890 ]
6891 },
6892 "storage_types": {
6893 "patterns": [
6894 {
6895 "include": "source.cpp#storage_specifiers"
6896 },
6897 {
6898 "include": "source.cpp#inline_builtin_storage_type"
6899 },
6900 {
6901 "include": "#decltype"
6902 },
6903 {
6904 "include": "source.cpp#typename"
6905 }
6906 ]
6907 },
6908 "string_context": {
6909 "patterns": [
6910 {
6911 "begin": "((?:u|u8|U|L)?)\"",
6912 "end": "\"|(?=(?<!\\\\)\n)",
6913 "beginCaptures": {
6914 "0": {
6915 "name": "punctuation.definition.string.begin.cpp"
6916 },
6917 "1": {
6918 "name": "meta.encoding.cpp"
6919 }
6920 },
6921 "endCaptures": {
6922 "0": {
6923 "name": "punctuation.definition.string.end.cpp"
6924 }
6925 },
6926 "name": "string.quoted.double.cpp",
6927 "patterns": [
6928 {
6929 "match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})",
6930 "name": "constant.character.escape.cpp"
6931 },
6932 {
6933 "match": "\\\\['\"?\\\\abfnrtv]",
6934 "name": "constant.character.escape.cpp"
6935 },
6936 {
6937 "match": "\\\\[0-7]{1,3}",
6938 "name": "constant.character.escape.cpp"
6939 },
6940 {
6941 "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",
6942 "captures": {
6943 "1": {
6944 "name": "constant.character.escape.cpp"
6945 },
6946 "2": {
6947 "name": "invalid.illegal.unknown-escape.cpp"
6948 }
6949 }
6950 },
6951 {
6952 "include": "source.cpp#string_escapes_context_c"
6953 }
6954 ]
6955 },
6956 {
6957 "begin": "(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'",
6958 "end": "'|(?=(?<!\\\\)\n)",
6959 "beginCaptures": {
6960 "0": {
6961 "name": "punctuation.definition.string.begin.cpp"
6962 },
6963 "1": {
6964 "name": "meta.encoding.cpp"
6965 }
6966 },
6967 "endCaptures": {
6968 "0": {
6969 "name": "punctuation.definition.string.end.cpp"
6970 }
6971 },
6972 "name": "string.quoted.single.cpp",
6973 "patterns": [
6974 {
6975 "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",
6976 "captures": {
6977 "1": {
6978 "name": "constant.character.escape.cpp"
6979 },
6980 "2": {
6981 "name": "invalid.illegal.unknown-escape.cpp"
6982 }
6983 }
6984 },
6985 {
6986 "include": "source.cpp#string_escapes_context_c"
6987 },
6988 {
6989 "include": "source.cpp#line_continuation_character"
6990 }
6991 ]
6992 },
6993 {
6994 "begin": "((?:[uUL]8?)?R)\\\"(?:(?:_r|re)|regex)\\(",
6995 "end": "\\)(?:(?:_r|re)|regex)\\\"|(?=(?<!\\\\)\n)",
6996 "beginCaptures": {
6997 "0": {
6998 "name": "punctuation.definition.string.begin.cpp"
6999 },
7000 "1": {
7001 "name": "meta.encoding.cpp"
7002 }
7003 },
7004 "endCaptures": {
7005 "0": {
7006 "name": "punctuation.definition.string.end.cpp"
7007 }
7008 },
7009 "name": "string.quoted.double.raw.regex.cpp",
7010 "patterns": [
7011 {
7012 "include": "source.regexp.python"
7013 }
7014 ]
7015 },
7016 {
7017 "begin": "((?:[uUL]8?)?R)\\\"(?:glsl|GLSL)\\(",
7018 "end": "\\)(?:glsl|GLSL)\\\"|(?=(?<!\\\\)\n)",
7019 "beginCaptures": {
7020 "0": {
7021 "name": "punctuation.definition.string.begin.cpp"
7022 },
7023 "1": {
7024 "name": "meta.encoding.cpp"
7025 }
7026 },
7027 "endCaptures": {
7028 "0": {
7029 "name": "punctuation.definition.string.end.cpp"
7030 }
7031 },
7032 "name": "meta.string.quoted.double.raw.glsl.cpp",
7033 "patterns": [
7034 {
7035 "include": "source.glsl"
7036 }
7037 ]
7038 },
7039 {
7040 "begin": "((?:[uUL]8?)?R)\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\(",
7041 "end": "\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\"|(?=(?<!\\\\)\n)",
7042 "beginCaptures": {
7043 "0": {
7044 "name": "punctuation.definition.string.begin.cpp"
7045 },
7046 "1": {
7047 "name": "meta.encoding.cpp"
7048 }
7049 },
7050 "endCaptures": {
7051 "0": {
7052 "name": "punctuation.definition.string.end.cpp"
7053 }
7054 },
7055 "name": "meta.string.quoted.double.raw.sql.cpp",
7056 "patterns": [
7057 {
7058 "include": "source.sql"
7059 }
7060 ]
7061 },
7062 {
7063 "begin": "((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",
7064 "beginCaptures": {
7065 "0": {
7066 "name": "punctuation.definition.string.begin"
7067 },
7068 "1": {
7069 "name": "meta.encoding"
7070 },
7071 "3": {
7072 "name": "invalid.illegal.delimiter-too-long"
7073 }
7074 },
7075 "end": "\\)\\2(\\3)\"|(?=(?<!\\\\)\n)",
7076 "endCaptures": {
7077 "0": {
7078 "name": "punctuation.definition.string.end"
7079 },
7080 "1": {
7081 "name": "invalid.illegal.delimiter-too-long"
7082 }
7083 },
7084 "name": "string.quoted.double.raw"
7085 }
7086 ]
7087 },
7088 "struct_block": {
7089 "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
7090 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
7091 "beginCaptures": {
7092 "0": {
7093 "name": "meta.head.struct.cpp"
7094 },
7095 "1": {
7096 "name": "storage.type.$1.cpp"
7097 },
7098 "2": {
7099 "patterns": [
7100 {
7101 "include": "source.cpp#inline_comment"
7102 }
7103 ]
7104 },
7105 "3": {
7106 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7107 },
7108 "4": {
7109 "name": "comment.block.cpp"
7110 },
7111 "5": {
7112 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7113 },
7114 "6": {
7115 "patterns": [
7116 {
7117 "include": "#attributes_context"
7118 },
7119 {
7120 "include": "source.cpp#number_literal"
7121 }
7122 ]
7123 },
7124 "7": {
7125 "patterns": [
7126 {
7127 "include": "source.cpp#inline_comment"
7128 }
7129 ]
7130 },
7131 "8": {
7132 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7133 },
7134 "9": {
7135 "name": "comment.block.cpp"
7136 },
7137 "10": {
7138 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7139 },
7140 "11": {
7141 "patterns": [
7142 {
7143 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))",
7144 "captures": {
7145 "1": {
7146 "name": "storage.type.modifier.final.cpp"
7147 },
7148 "2": {
7149 "patterns": [
7150 {
7151 "include": "source.cpp#inline_comment"
7152 }
7153 ]
7154 },
7155 "3": {
7156 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7157 },
7158 "4": {
7159 "name": "comment.block.cpp"
7160 },
7161 "5": {
7162 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7163 }
7164 }
7165 },
7166 {
7167 "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
7168 "captures": {
7169 "1": {
7170 "name": "entity.name.type.struct.cpp"
7171 },
7172 "2": {
7173 "patterns": [
7174 {
7175 "include": "source.cpp#inline_comment"
7176 }
7177 ]
7178 },
7179 "3": {
7180 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7181 },
7182 "4": {
7183 "name": "comment.block.cpp"
7184 },
7185 "5": {
7186 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7187 },
7188 "6": {
7189 "name": "storage.type.modifier.final.cpp"
7190 },
7191 "7": {
7192 "patterns": [
7193 {
7194 "include": "source.cpp#inline_comment"
7195 }
7196 ]
7197 },
7198 "8": {
7199 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7200 },
7201 "9": {
7202 "name": "comment.block.cpp"
7203 },
7204 "10": {
7205 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7206 }
7207 }
7208 },
7209 {
7210 "match": "DLLEXPORT",
7211 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
7212 },
7213 {
7214 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
7215 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
7216 }
7217 ]
7218 },
7219 "12": {
7220 "patterns": [
7221 {
7222 "include": "source.cpp#inline_comment"
7223 }
7224 ]
7225 },
7226 "13": {
7227 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7228 },
7229 "14": {
7230 "name": "comment.block.cpp"
7231 },
7232 "15": {
7233 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7234 },
7235 "16": {
7236 "patterns": [
7237 {
7238 "include": "source.cpp#inline_comment"
7239 }
7240 ]
7241 },
7242 "17": {
7243 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7244 },
7245 "18": {
7246 "name": "comment.block.cpp"
7247 },
7248 "19": {
7249 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7250 },
7251 "20": {
7252 "name": "punctuation.separator.colon.inheritance.cpp"
7253 }
7254 },
7255 "endCaptures": {
7256 "1": {
7257 "name": "punctuation.terminator.statement.cpp"
7258 },
7259 "2": {
7260 "name": "punctuation.terminator.statement.cpp"
7261 }
7262 },
7263 "name": "meta.block.struct.cpp",
7264 "patterns": [
7265 {
7266 "begin": "\\G ?",
7267 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
7268 "beginCaptures": {},
7269 "endCaptures": {
7270 "0": {
7271 "name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
7272 }
7273 },
7274 "name": "meta.head.struct.cpp",
7275 "patterns": [
7276 {
7277 "include": "#ever_present_context"
7278 },
7279 {
7280 "include": "#inheritance_context"
7281 },
7282 {
7283 "include": "#template_call_range"
7284 }
7285 ]
7286 },
7287 {
7288 "begin": "(?<=\\{|<%|\\?\\?<)",
7289 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
7290 "beginCaptures": {},
7291 "endCaptures": {
7292 "0": {
7293 "name": "punctuation.section.block.end.bracket.curly.struct.cpp"
7294 }
7295 },
7296 "name": "meta.body.struct.cpp",
7297 "patterns": [
7298 {
7299 "include": "#function_pointer"
7300 },
7301 {
7302 "include": "#static_assert"
7303 },
7304 {
7305 "include": "#constructor_inline"
7306 },
7307 {
7308 "include": "#destructor_inline"
7309 },
7310 {
7311 "include": "$self"
7312 }
7313 ]
7314 },
7315 {
7316 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
7317 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
7318 "beginCaptures": {},
7319 "endCaptures": {},
7320 "name": "meta.tail.struct.cpp",
7321 "patterns": [
7322 {
7323 "include": "$self"
7324 }
7325 ]
7326 }
7327 ]
7328 },
7329 "switch_conditional_parentheses": {
7330 "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
7331 "end": "\\)|(?=(?<!\\\\)\n)",
7332 "beginCaptures": {
7333 "1": {
7334 "patterns": [
7335 {
7336 "include": "source.cpp#inline_comment"
7337 }
7338 ]
7339 },
7340 "2": {
7341 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7342 },
7343 "3": {
7344 "name": "comment.block.cpp"
7345 },
7346 "4": {
7347 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7348 },
7349 "5": {
7350 "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp"
7351 }
7352 },
7353 "endCaptures": {
7354 "0": {
7355 "name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp"
7356 }
7357 },
7358 "name": "meta.conditional.switch.cpp",
7359 "patterns": [
7360 {
7361 "include": "#evaluation_context"
7362 }
7363 ]
7364 },
7365 "switch_statement": {
7366 "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)switch(?!\\w))",
7367 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
7368 "beginCaptures": {
7369 "0": {
7370 "name": "meta.head.switch.cpp"
7371 },
7372 "1": {
7373 "patterns": [
7374 {
7375 "include": "source.cpp#inline_comment"
7376 }
7377 ]
7378 },
7379 "2": {
7380 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7381 },
7382 "3": {
7383 "name": "comment.block.cpp"
7384 },
7385 "4": {
7386 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7387 },
7388 "5": {
7389 "name": "keyword.control.switch.cpp"
7390 }
7391 },
7392 "endCaptures": {},
7393 "name": "meta.block.switch.cpp",
7394 "patterns": [
7395 {
7396 "begin": "\\G ?",
7397 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
7398 "beginCaptures": {},
7399 "endCaptures": {
7400 "0": {
7401 "name": "punctuation.section.block.begin.bracket.curly.switch.cpp"
7402 }
7403 },
7404 "name": "meta.head.switch.cpp",
7405 "patterns": [
7406 {
7407 "include": "#switch_conditional_parentheses"
7408 },
7409 {
7410 "include": "$self"
7411 }
7412 ]
7413 },
7414 {
7415 "begin": "(?<=\\{|<%|\\?\\?<)",
7416 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
7417 "beginCaptures": {},
7418 "endCaptures": {
7419 "0": {
7420 "name": "punctuation.section.block.end.bracket.curly.switch.cpp"
7421 }
7422 },
7423 "name": "meta.body.switch.cpp",
7424 "patterns": [
7425 {
7426 "include": "#default_statement"
7427 },
7428 {
7429 "include": "#case_statement"
7430 },
7431 {
7432 "include": "$self"
7433 }
7434 ]
7435 },
7436 {
7437 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
7438 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
7439 "beginCaptures": {},
7440 "endCaptures": {},
7441 "name": "meta.tail.switch.cpp",
7442 "patterns": [
7443 {
7444 "include": "$self"
7445 }
7446 ]
7447 }
7448 ]
7449 },
7450 "template_call_context": {
7451 "patterns": [
7452 {
7453 "include": "#ever_present_context"
7454 },
7455 {
7456 "include": "#template_call_range"
7457 },
7458 {
7459 "include": "#storage_types"
7460 },
7461 {
7462 "include": "source.cpp#language_constants"
7463 },
7464 {
7465 "include": "source.cpp#scope_resolution_template_call_inner_generated"
7466 },
7467 {
7468 "include": "#operators"
7469 },
7470 {
7471 "include": "source.cpp#number_literal"
7472 },
7473 {
7474 "include": "#string_context"
7475 },
7476 {
7477 "include": "source.cpp#comma_in_template_argument"
7478 },
7479 {
7480 "include": "source.cpp#qualified_type"
7481 }
7482 ]
7483 },
7484 "template_call_range": {
7485 "begin": "<",
7486 "end": ">|(?=(?<!\\\\)\n)",
7487 "beginCaptures": {
7488 "0": {
7489 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
7490 }
7491 },
7492 "endCaptures": {
7493 "0": {
7494 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
7495 }
7496 },
7497 "name": "meta.template.call.cpp",
7498 "patterns": [
7499 {
7500 "include": "#template_call_context"
7501 }
7502 ]
7503 },
7504 "template_definition": {
7505 "begin": "(?<!\\w)(template)(?:(?:\\s)+)?(<)",
7506 "end": ">|(?=(?<!\\\\)\n)",
7507 "beginCaptures": {
7508 "1": {
7509 "name": "storage.type.template.cpp"
7510 },
7511 "2": {
7512 "name": "punctuation.section.angle-brackets.begin.template.definition.cpp"
7513 }
7514 },
7515 "endCaptures": {
7516 "0": {
7517 "name": "punctuation.section.angle-brackets.end.template.definition.cpp"
7518 }
7519 },
7520 "name": "meta.template.definition.cpp",
7521 "patterns": [
7522 {
7523 "begin": "(?<=\\w)(?:(?:\\s)+)?<",
7524 "end": ">|(?=(?<!\\\\)\n)",
7525 "beginCaptures": {
7526 "0": {
7527 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
7528 }
7529 },
7530 "endCaptures": {
7531 "0": {
7532 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
7533 }
7534 },
7535 "patterns": [
7536 {
7537 "include": "#template_call_context"
7538 }
7539 ]
7540 },
7541 {
7542 "include": "#template_definition_context"
7543 }
7544 ]
7545 },
7546 "template_definition_context": {
7547 "patterns": [
7548 {
7549 "include": "source.cpp#scope_resolution_template_definition_inner_generated"
7550 },
7551 {
7552 "include": "source.cpp#template_definition_argument"
7553 },
7554 {
7555 "include": "source.cpp#template_argument_defaulted"
7556 },
7557 {
7558 "include": "source.cpp#template_call_innards"
7559 },
7560 {
7561 "include": "#evaluation_context"
7562 }
7563 ]
7564 },
7565 "ternary_operator": {
7566 "begin": "\\?",
7567 "end": ":|(?=(?<!\\\\)\n)",
7568 "beginCaptures": {
7569 "0": {
7570 "name": "keyword.operator.ternary.cpp"
7571 }
7572 },
7573 "endCaptures": {
7574 "0": {
7575 "name": "keyword.operator.ternary.cpp"
7576 }
7577 },
7578 "patterns": [
7579 {
7580 "include": "#ever_present_context"
7581 },
7582 {
7583 "include": "#string_context"
7584 },
7585 {
7586 "include": "source.cpp#number_literal"
7587 },
7588 {
7589 "include": "#method_access"
7590 },
7591 {
7592 "include": "source.cpp#member_access"
7593 },
7594 {
7595 "include": "source.cpp#predefined_macros"
7596 },
7597 {
7598 "include": "#operators"
7599 },
7600 {
7601 "include": "source.cpp#memory_operators"
7602 },
7603 {
7604 "include": "source.cpp#wordlike_operators"
7605 },
7606 {
7607 "include": "source.cpp#type_casting_operators"
7608 },
7609 {
7610 "include": "source.cpp#control_flow_keywords"
7611 },
7612 {
7613 "include": "source.cpp#exception_keywords"
7614 },
7615 {
7616 "include": "source.cpp#the_this_keyword"
7617 },
7618 {
7619 "include": "source.cpp#language_constants"
7620 },
7621 {
7622 "include": "#builtin_storage_type_initilizer"
7623 },
7624 {
7625 "include": "source.cpp#qualifiers_and_specifiers_post_parameters"
7626 },
7627 {
7628 "include": "source.cpp#functional_specifiers_pre_parameters"
7629 },
7630 {
7631 "include": "#storage_types"
7632 },
7633 {
7634 "include": "#lambdas"
7635 },
7636 {
7637 "include": "#attributes_context"
7638 },
7639 {
7640 "include": "#parentheses"
7641 },
7642 {
7643 "include": "#function_call"
7644 },
7645 {
7646 "include": "source.cpp#scope_resolution_inner_generated"
7647 },
7648 {
7649 "include": "#square_brackets"
7650 },
7651 {
7652 "include": "source.cpp#semicolon"
7653 },
7654 {
7655 "include": "source.cpp#comma"
7656 }
7657 ],
7658 "applyEndPatternLast": 1
7659 },
7660 "typedef_class": {
7661 "begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)class(?!\\w))",
7662 "end": "(?<=;)|(?=(?<!\\\\)\n)",
7663 "beginCaptures": {
7664 "1": {
7665 "name": "keyword.other.typedef.cpp"
7666 }
7667 },
7668 "endCaptures": {},
7669 "patterns": [
7670 {
7671 "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
7672 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
7673 "beginCaptures": {
7674 "0": {
7675 "name": "meta.head.class.cpp"
7676 },
7677 "1": {
7678 "name": "storage.type.$1.cpp"
7679 },
7680 "2": {
7681 "patterns": [
7682 {
7683 "include": "source.cpp#inline_comment"
7684 }
7685 ]
7686 },
7687 "3": {
7688 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7689 },
7690 "4": {
7691 "name": "comment.block.cpp"
7692 },
7693 "5": {
7694 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7695 },
7696 "6": {
7697 "patterns": [
7698 {
7699 "include": "#attributes_context"
7700 },
7701 {
7702 "include": "source.cpp#number_literal"
7703 }
7704 ]
7705 },
7706 "7": {
7707 "patterns": [
7708 {
7709 "include": "source.cpp#inline_comment"
7710 }
7711 ]
7712 },
7713 "8": {
7714 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7715 },
7716 "9": {
7717 "name": "comment.block.cpp"
7718 },
7719 "10": {
7720 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7721 },
7722 "11": {
7723 "patterns": [
7724 {
7725 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))",
7726 "captures": {
7727 "1": {
7728 "name": "storage.type.modifier.final.cpp"
7729 },
7730 "2": {
7731 "patterns": [
7732 {
7733 "include": "source.cpp#inline_comment"
7734 }
7735 ]
7736 },
7737 "3": {
7738 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7739 },
7740 "4": {
7741 "name": "comment.block.cpp"
7742 },
7743 "5": {
7744 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7745 }
7746 }
7747 },
7748 {
7749 "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
7750 "captures": {
7751 "1": {
7752 "name": "entity.name.type.class.cpp"
7753 },
7754 "2": {
7755 "patterns": [
7756 {
7757 "include": "source.cpp#inline_comment"
7758 }
7759 ]
7760 },
7761 "3": {
7762 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7763 },
7764 "4": {
7765 "name": "comment.block.cpp"
7766 },
7767 "5": {
7768 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7769 },
7770 "6": {
7771 "name": "storage.type.modifier.final.cpp"
7772 },
7773 "7": {
7774 "patterns": [
7775 {
7776 "include": "source.cpp#inline_comment"
7777 }
7778 ]
7779 },
7780 "8": {
7781 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7782 },
7783 "9": {
7784 "name": "comment.block.cpp"
7785 },
7786 "10": {
7787 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7788 }
7789 }
7790 },
7791 {
7792 "match": "DLLEXPORT",
7793 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
7794 },
7795 {
7796 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
7797 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
7798 }
7799 ]
7800 },
7801 "12": {
7802 "patterns": [
7803 {
7804 "include": "source.cpp#inline_comment"
7805 }
7806 ]
7807 },
7808 "13": {
7809 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7810 },
7811 "14": {
7812 "name": "comment.block.cpp"
7813 },
7814 "15": {
7815 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7816 },
7817 "16": {
7818 "patterns": [
7819 {
7820 "include": "source.cpp#inline_comment"
7821 }
7822 ]
7823 },
7824 "17": {
7825 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7826 },
7827 "18": {
7828 "name": "comment.block.cpp"
7829 },
7830 "19": {
7831 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7832 },
7833 "20": {
7834 "name": "punctuation.separator.colon.inheritance.cpp"
7835 }
7836 },
7837 "endCaptures": {
7838 "1": {
7839 "name": "punctuation.terminator.statement.cpp"
7840 },
7841 "2": {
7842 "name": "punctuation.terminator.statement.cpp"
7843 }
7844 },
7845 "name": "meta.block.class.cpp",
7846 "patterns": [
7847 {
7848 "begin": "\\G ?",
7849 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
7850 "beginCaptures": {},
7851 "endCaptures": {
7852 "0": {
7853 "name": "punctuation.section.block.begin.bracket.curly.class.cpp"
7854 }
7855 },
7856 "name": "meta.head.class.cpp",
7857 "patterns": [
7858 {
7859 "include": "#ever_present_context"
7860 },
7861 {
7862 "include": "#inheritance_context"
7863 },
7864 {
7865 "include": "#template_call_range"
7866 }
7867 ]
7868 },
7869 {
7870 "begin": "(?<=\\{|<%|\\?\\?<)",
7871 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
7872 "beginCaptures": {},
7873 "endCaptures": {
7874 "0": {
7875 "name": "punctuation.section.block.end.bracket.curly.class.cpp"
7876 }
7877 },
7878 "name": "meta.body.class.cpp",
7879 "patterns": [
7880 {
7881 "include": "#function_pointer"
7882 },
7883 {
7884 "include": "#static_assert"
7885 },
7886 {
7887 "include": "#constructor_inline"
7888 },
7889 {
7890 "include": "#destructor_inline"
7891 },
7892 {
7893 "include": "$self"
7894 }
7895 ]
7896 },
7897 {
7898 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
7899 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
7900 "beginCaptures": {},
7901 "endCaptures": {},
7902 "name": "meta.tail.class.cpp",
7903 "patterns": [
7904 {
7905 "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
7906 "captures": {
7907 "1": {
7908 "patterns": [
7909 {
7910 "match": "\\*",
7911 "name": "storage.modifier.pointer.cpp"
7912 },
7913 {
7914 "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))){2,}\\&",
7915 "captures": {
7916 "1": {
7917 "patterns": [
7918 {
7919 "include": "source.cpp#inline_comment"
7920 }
7921 ]
7922 },
7923 "2": {
7924 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7925 },
7926 "3": {
7927 "name": "comment.block.cpp"
7928 },
7929 "4": {
7930 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7931 }
7932 },
7933 "name": "invalid.illegal.reference-type.cpp"
7934 },
7935 {
7936 "match": "\\&",
7937 "name": "storage.modifier.reference.cpp"
7938 }
7939 ]
7940 },
7941 "2": {
7942 "patterns": [
7943 {
7944 "include": "source.cpp#inline_comment"
7945 }
7946 ]
7947 },
7948 "3": {
7949 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7950 },
7951 "4": {
7952 "name": "comment.block.cpp"
7953 },
7954 "5": {
7955 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7956 },
7957 "6": {
7958 "patterns": [
7959 {
7960 "include": "source.cpp#inline_comment"
7961 }
7962 ]
7963 },
7964 "7": {
7965 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7966 },
7967 "8": {
7968 "name": "comment.block.cpp"
7969 },
7970 "9": {
7971 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7972 },
7973 "10": {
7974 "patterns": [
7975 {
7976 "include": "source.cpp#inline_comment"
7977 }
7978 ]
7979 },
7980 "11": {
7981 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7982 },
7983 "12": {
7984 "name": "comment.block.cpp"
7985 },
7986 "13": {
7987 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7988 },
7989 "14": {
7990 "name": "entity.name.type.alias.cpp"
7991 }
7992 }
7993 },
7994 {
7995 "match": ","
7996 }
7997 ]
7998 }
7999 ]
8000 }
8001 ]
8002 },
8003 "typedef_function_pointer": {
8004 "begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=.*\\(\\*\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s*\\))",
8005 "end": "(?<=;)|(?=(?<!\\\\)\n)",
8006 "beginCaptures": {
8007 "1": {
8008 "name": "keyword.other.typedef.cpp"
8009 }
8010 },
8011 "endCaptures": {},
8012 "patterns": [
8013 {
8014 "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()",
8015 "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)",
8016 "beginCaptures": {
8017 "1": {
8018 "name": "meta.qualified_type.cpp",
8019 "patterns": [
8020 {
8021 "match": "::",
8022 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
8023 },
8024 {
8025 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
8026 "name": "storage.type.$0.cpp"
8027 },
8028 {
8029 "include": "#attributes_context"
8030 },
8031 {
8032 "include": "#storage_types"
8033 },
8034 {
8035 "include": "source.cpp#number_literal"
8036 },
8037 {
8038 "include": "#string_context"
8039 },
8040 {
8041 "include": "source.cpp#comma"
8042 },
8043 {
8044 "include": "source.cpp#scope_resolution_inner_generated"
8045 },
8046 {
8047 "begin": "<",
8048 "end": ">|(?=(?<!\\\\)\n)",
8049 "beginCaptures": {
8050 "0": {
8051 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
8052 }
8053 },
8054 "endCaptures": {
8055 "0": {
8056 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
8057 }
8058 },
8059 "name": "meta.template.call.cpp",
8060 "patterns": [
8061 {
8062 "include": "#template_call_context"
8063 }
8064 ]
8065 },
8066 {
8067 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
8068 "name": "entity.name.type.cpp"
8069 }
8070 ]
8071 },
8072 "2": {
8073 "patterns": [
8074 {
8075 "include": "#attributes_context"
8076 },
8077 {
8078 "include": "source.cpp#number_literal"
8079 }
8080 ]
8081 },
8082 "3": {
8083 "patterns": [
8084 {
8085 "include": "source.cpp#inline_comment"
8086 }
8087 ]
8088 },
8089 "4": {
8090 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8091 },
8092 "5": {
8093 "name": "comment.block.cpp"
8094 },
8095 "6": {
8096 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8097 },
8098 "7": {
8099 "patterns": [
8100 {
8101 "include": "source.cpp#inline_comment"
8102 }
8103 ]
8104 },
8105 "8": {
8106 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8107 },
8108 "9": {
8109 "name": "comment.block.cpp"
8110 },
8111 "10": {
8112 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8113 },
8114 "11": {
8115 "patterns": [
8116 {
8117 "match": "::",
8118 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
8119 },
8120 {
8121 "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)",
8122 "name": "entity.name.scope-resolution.type.cpp"
8123 },
8124 {
8125 "include": "#template_call_range"
8126 }
8127 ]
8128 },
8129 "12": {
8130 "patterns": [
8131 {
8132 "include": "#template_call_range"
8133 }
8134 ]
8135 },
8136 "13": {},
8137 "14": {
8138 "patterns": [
8139 {
8140 "include": "source.cpp#inline_comment"
8141 }
8142 ]
8143 },
8144 "15": {
8145 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8146 },
8147 "16": {
8148 "name": "comment.block.cpp"
8149 },
8150 "17": {
8151 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8152 },
8153 "18": {},
8154 "19": {
8155 "patterns": [
8156 {
8157 "match": "\\*",
8158 "name": "storage.modifier.pointer.cpp"
8159 },
8160 {
8161 "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))){2,}\\&",
8162 "captures": {
8163 "1": {
8164 "patterns": [
8165 {
8166 "include": "source.cpp#inline_comment"
8167 }
8168 ]
8169 },
8170 "2": {
8171 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8172 },
8173 "3": {
8174 "name": "comment.block.cpp"
8175 },
8176 "4": {
8177 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8178 }
8179 },
8180 "name": "invalid.illegal.reference-type.cpp"
8181 },
8182 {
8183 "match": "\\&",
8184 "name": "storage.modifier.reference.cpp"
8185 }
8186 ]
8187 },
8188 "20": {
8189 "patterns": [
8190 {
8191 "include": "source.cpp#inline_comment"
8192 }
8193 ]
8194 },
8195 "21": {
8196 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8197 },
8198 "22": {
8199 "name": "comment.block.cpp"
8200 },
8201 "23": {
8202 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8203 },
8204 "24": {
8205 "patterns": [
8206 {
8207 "include": "source.cpp#inline_comment"
8208 }
8209 ]
8210 },
8211 "25": {
8212 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8213 },
8214 "26": {
8215 "name": "comment.block.cpp"
8216 },
8217 "27": {
8218 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8219 },
8220 "28": {
8221 "patterns": [
8222 {
8223 "include": "source.cpp#inline_comment"
8224 }
8225 ]
8226 },
8227 "29": {
8228 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8229 },
8230 "30": {
8231 "name": "comment.block.cpp"
8232 },
8233 "31": {
8234 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8235 },
8236 "32": {
8237 "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
8238 },
8239 "33": {
8240 "name": "punctuation.definition.function.pointer.dereference.cpp"
8241 },
8242 "34": {
8243 "name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp"
8244 },
8245 "35": {
8246 "name": "punctuation.definition.begin.bracket.square.cpp"
8247 },
8248 "36": {
8249 "patterns": [
8250 {
8251 "include": "#evaluation_context"
8252 }
8253 ]
8254 },
8255 "37": {
8256 "name": "punctuation.definition.end.bracket.square.cpp"
8257 },
8258 "38": {
8259 "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
8260 },
8261 "39": {
8262 "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
8263 }
8264 },
8265 "endCaptures": {
8266 "1": {
8267 "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
8268 },
8269 "2": {
8270 "patterns": [
8271 {
8272 "include": "source.cpp#inline_comment"
8273 }
8274 ]
8275 },
8276 "3": {
8277 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8278 },
8279 "4": {
8280 "name": "comment.block.cpp"
8281 },
8282 "5": {
8283 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8284 }
8285 },
8286 "patterns": [
8287 {
8288 "include": "#function_parameter_context"
8289 }
8290 ]
8291 }
8292 ]
8293 },
8294 "typedef_struct": {
8295 "begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)struct(?!\\w))",
8296 "end": "(?<=;)|(?=(?<!\\\\)\n)",
8297 "beginCaptures": {
8298 "1": {
8299 "name": "keyword.other.typedef.cpp"
8300 }
8301 },
8302 "endCaptures": {},
8303 "patterns": [
8304 {
8305 "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
8306 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
8307 "beginCaptures": {
8308 "0": {
8309 "name": "meta.head.struct.cpp"
8310 },
8311 "1": {
8312 "name": "storage.type.$1.cpp"
8313 },
8314 "2": {
8315 "patterns": [
8316 {
8317 "include": "source.cpp#inline_comment"
8318 }
8319 ]
8320 },
8321 "3": {
8322 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8323 },
8324 "4": {
8325 "name": "comment.block.cpp"
8326 },
8327 "5": {
8328 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8329 },
8330 "6": {
8331 "patterns": [
8332 {
8333 "include": "#attributes_context"
8334 },
8335 {
8336 "include": "source.cpp#number_literal"
8337 }
8338 ]
8339 },
8340 "7": {
8341 "patterns": [
8342 {
8343 "include": "source.cpp#inline_comment"
8344 }
8345 ]
8346 },
8347 "8": {
8348 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8349 },
8350 "9": {
8351 "name": "comment.block.cpp"
8352 },
8353 "10": {
8354 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8355 },
8356 "11": {
8357 "patterns": [
8358 {
8359 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))",
8360 "captures": {
8361 "1": {
8362 "name": "storage.type.modifier.final.cpp"
8363 },
8364 "2": {
8365 "patterns": [
8366 {
8367 "include": "source.cpp#inline_comment"
8368 }
8369 ]
8370 },
8371 "3": {
8372 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8373 },
8374 "4": {
8375 "name": "comment.block.cpp"
8376 },
8377 "5": {
8378 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8379 }
8380 }
8381 },
8382 {
8383 "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
8384 "captures": {
8385 "1": {
8386 "name": "entity.name.type.struct.cpp"
8387 },
8388 "2": {
8389 "patterns": [
8390 {
8391 "include": "source.cpp#inline_comment"
8392 }
8393 ]
8394 },
8395 "3": {
8396 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8397 },
8398 "4": {
8399 "name": "comment.block.cpp"
8400 },
8401 "5": {
8402 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8403 },
8404 "6": {
8405 "name": "storage.type.modifier.final.cpp"
8406 },
8407 "7": {
8408 "patterns": [
8409 {
8410 "include": "source.cpp#inline_comment"
8411 }
8412 ]
8413 },
8414 "8": {
8415 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8416 },
8417 "9": {
8418 "name": "comment.block.cpp"
8419 },
8420 "10": {
8421 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8422 }
8423 }
8424 },
8425 {
8426 "match": "DLLEXPORT",
8427 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
8428 },
8429 {
8430 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
8431 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
8432 }
8433 ]
8434 },
8435 "12": {
8436 "patterns": [
8437 {
8438 "include": "source.cpp#inline_comment"
8439 }
8440 ]
8441 },
8442 "13": {
8443 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8444 },
8445 "14": {
8446 "name": "comment.block.cpp"
8447 },
8448 "15": {
8449 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8450 },
8451 "16": {
8452 "patterns": [
8453 {
8454 "include": "source.cpp#inline_comment"
8455 }
8456 ]
8457 },
8458 "17": {
8459 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8460 },
8461 "18": {
8462 "name": "comment.block.cpp"
8463 },
8464 "19": {
8465 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8466 },
8467 "20": {
8468 "name": "punctuation.separator.colon.inheritance.cpp"
8469 }
8470 },
8471 "endCaptures": {
8472 "1": {
8473 "name": "punctuation.terminator.statement.cpp"
8474 },
8475 "2": {
8476 "name": "punctuation.terminator.statement.cpp"
8477 }
8478 },
8479 "name": "meta.block.struct.cpp",
8480 "patterns": [
8481 {
8482 "begin": "\\G ?",
8483 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
8484 "beginCaptures": {},
8485 "endCaptures": {
8486 "0": {
8487 "name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
8488 }
8489 },
8490 "name": "meta.head.struct.cpp",
8491 "patterns": [
8492 {
8493 "include": "#ever_present_context"
8494 },
8495 {
8496 "include": "#inheritance_context"
8497 },
8498 {
8499 "include": "#template_call_range"
8500 }
8501 ]
8502 },
8503 {
8504 "begin": "(?<=\\{|<%|\\?\\?<)",
8505 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
8506 "beginCaptures": {},
8507 "endCaptures": {
8508 "0": {
8509 "name": "punctuation.section.block.end.bracket.curly.struct.cpp"
8510 }
8511 },
8512 "name": "meta.body.struct.cpp",
8513 "patterns": [
8514 {
8515 "include": "#function_pointer"
8516 },
8517 {
8518 "include": "#static_assert"
8519 },
8520 {
8521 "include": "#constructor_inline"
8522 },
8523 {
8524 "include": "#destructor_inline"
8525 },
8526 {
8527 "include": "$self"
8528 }
8529 ]
8530 },
8531 {
8532 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
8533 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
8534 "beginCaptures": {},
8535 "endCaptures": {},
8536 "name": "meta.tail.struct.cpp",
8537 "patterns": [
8538 {
8539 "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
8540 "captures": {
8541 "1": {
8542 "patterns": [
8543 {
8544 "match": "\\*",
8545 "name": "storage.modifier.pointer.cpp"
8546 },
8547 {
8548 "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))){2,}\\&",
8549 "captures": {
8550 "1": {
8551 "patterns": [
8552 {
8553 "include": "source.cpp#inline_comment"
8554 }
8555 ]
8556 },
8557 "2": {
8558 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8559 },
8560 "3": {
8561 "name": "comment.block.cpp"
8562 },
8563 "4": {
8564 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8565 }
8566 },
8567 "name": "invalid.illegal.reference-type.cpp"
8568 },
8569 {
8570 "match": "\\&",
8571 "name": "storage.modifier.reference.cpp"
8572 }
8573 ]
8574 },
8575 "2": {
8576 "patterns": [
8577 {
8578 "include": "source.cpp#inline_comment"
8579 }
8580 ]
8581 },
8582 "3": {
8583 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8584 },
8585 "4": {
8586 "name": "comment.block.cpp"
8587 },
8588 "5": {
8589 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8590 },
8591 "6": {
8592 "patterns": [
8593 {
8594 "include": "source.cpp#inline_comment"
8595 }
8596 ]
8597 },
8598 "7": {
8599 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8600 },
8601 "8": {
8602 "name": "comment.block.cpp"
8603 },
8604 "9": {
8605 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8606 },
8607 "10": {
8608 "patterns": [
8609 {
8610 "include": "source.cpp#inline_comment"
8611 }
8612 ]
8613 },
8614 "11": {
8615 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8616 },
8617 "12": {
8618 "name": "comment.block.cpp"
8619 },
8620 "13": {
8621 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8622 },
8623 "14": {
8624 "name": "entity.name.type.alias.cpp"
8625 }
8626 }
8627 },
8628 {
8629 "match": ","
8630 }
8631 ]
8632 }
8633 ]
8634 }
8635 ]
8636 },
8637 "typedef_union": {
8638 "begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)union(?!\\w))",
8639 "end": "(?<=;)|(?=(?<!\\\\)\n)",
8640 "beginCaptures": {
8641 "1": {
8642 "name": "keyword.other.typedef.cpp"
8643 }
8644 },
8645 "endCaptures": {},
8646 "patterns": [
8647 {
8648 "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
8649 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
8650 "beginCaptures": {
8651 "0": {
8652 "name": "meta.head.union.cpp"
8653 },
8654 "1": {
8655 "name": "storage.type.$1.cpp"
8656 },
8657 "2": {
8658 "patterns": [
8659 {
8660 "include": "source.cpp#inline_comment"
8661 }
8662 ]
8663 },
8664 "3": {
8665 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8666 },
8667 "4": {
8668 "name": "comment.block.cpp"
8669 },
8670 "5": {
8671 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8672 },
8673 "6": {
8674 "patterns": [
8675 {
8676 "include": "#attributes_context"
8677 },
8678 {
8679 "include": "source.cpp#number_literal"
8680 }
8681 ]
8682 },
8683 "7": {
8684 "patterns": [
8685 {
8686 "include": "source.cpp#inline_comment"
8687 }
8688 ]
8689 },
8690 "8": {
8691 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8692 },
8693 "9": {
8694 "name": "comment.block.cpp"
8695 },
8696 "10": {
8697 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8698 },
8699 "11": {
8700 "patterns": [
8701 {
8702 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))",
8703 "captures": {
8704 "1": {
8705 "name": "storage.type.modifier.final.cpp"
8706 },
8707 "2": {
8708 "patterns": [
8709 {
8710 "include": "source.cpp#inline_comment"
8711 }
8712 ]
8713 },
8714 "3": {
8715 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8716 },
8717 "4": {
8718 "name": "comment.block.cpp"
8719 },
8720 "5": {
8721 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8722 }
8723 }
8724 },
8725 {
8726 "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
8727 "captures": {
8728 "1": {
8729 "name": "entity.name.type.union.cpp"
8730 },
8731 "2": {
8732 "patterns": [
8733 {
8734 "include": "source.cpp#inline_comment"
8735 }
8736 ]
8737 },
8738 "3": {
8739 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8740 },
8741 "4": {
8742 "name": "comment.block.cpp"
8743 },
8744 "5": {
8745 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8746 },
8747 "6": {
8748 "name": "storage.type.modifier.final.cpp"
8749 },
8750 "7": {
8751 "patterns": [
8752 {
8753 "include": "source.cpp#inline_comment"
8754 }
8755 ]
8756 },
8757 "8": {
8758 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8759 },
8760 "9": {
8761 "name": "comment.block.cpp"
8762 },
8763 "10": {
8764 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8765 }
8766 }
8767 },
8768 {
8769 "match": "DLLEXPORT",
8770 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
8771 },
8772 {
8773 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
8774 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
8775 }
8776 ]
8777 },
8778 "12": {
8779 "patterns": [
8780 {
8781 "include": "source.cpp#inline_comment"
8782 }
8783 ]
8784 },
8785 "13": {
8786 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8787 },
8788 "14": {
8789 "name": "comment.block.cpp"
8790 },
8791 "15": {
8792 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8793 },
8794 "16": {
8795 "patterns": [
8796 {
8797 "include": "source.cpp#inline_comment"
8798 }
8799 ]
8800 },
8801 "17": {
8802 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8803 },
8804 "18": {
8805 "name": "comment.block.cpp"
8806 },
8807 "19": {
8808 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8809 },
8810 "20": {
8811 "name": "punctuation.separator.colon.inheritance.cpp"
8812 }
8813 },
8814 "endCaptures": {
8815 "1": {
8816 "name": "punctuation.terminator.statement.cpp"
8817 },
8818 "2": {
8819 "name": "punctuation.terminator.statement.cpp"
8820 }
8821 },
8822 "name": "meta.block.union.cpp",
8823 "patterns": [
8824 {
8825 "begin": "\\G ?",
8826 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
8827 "beginCaptures": {},
8828 "endCaptures": {
8829 "0": {
8830 "name": "punctuation.section.block.begin.bracket.curly.union.cpp"
8831 }
8832 },
8833 "name": "meta.head.union.cpp",
8834 "patterns": [
8835 {
8836 "include": "#ever_present_context"
8837 },
8838 {
8839 "include": "#inheritance_context"
8840 },
8841 {
8842 "include": "#template_call_range"
8843 }
8844 ]
8845 },
8846 {
8847 "begin": "(?<=\\{|<%|\\?\\?<)",
8848 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
8849 "beginCaptures": {},
8850 "endCaptures": {
8851 "0": {
8852 "name": "punctuation.section.block.end.bracket.curly.union.cpp"
8853 }
8854 },
8855 "name": "meta.body.union.cpp",
8856 "patterns": [
8857 {
8858 "include": "#function_pointer"
8859 },
8860 {
8861 "include": "#static_assert"
8862 },
8863 {
8864 "include": "#constructor_inline"
8865 },
8866 {
8867 "include": "#destructor_inline"
8868 },
8869 {
8870 "include": "$self"
8871 }
8872 ]
8873 },
8874 {
8875 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
8876 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
8877 "beginCaptures": {},
8878 "endCaptures": {},
8879 "name": "meta.tail.union.cpp",
8880 "patterns": [
8881 {
8882 "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))",
8883 "captures": {
8884 "1": {
8885 "patterns": [
8886 {
8887 "match": "\\*",
8888 "name": "storage.modifier.pointer.cpp"
8889 },
8890 {
8891 "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))){2,}\\&",
8892 "captures": {
8893 "1": {
8894 "patterns": [
8895 {
8896 "include": "source.cpp#inline_comment"
8897 }
8898 ]
8899 },
8900 "2": {
8901 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8902 },
8903 "3": {
8904 "name": "comment.block.cpp"
8905 },
8906 "4": {
8907 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8908 }
8909 },
8910 "name": "invalid.illegal.reference-type.cpp"
8911 },
8912 {
8913 "match": "\\&",
8914 "name": "storage.modifier.reference.cpp"
8915 }
8916 ]
8917 },
8918 "2": {
8919 "patterns": [
8920 {
8921 "include": "source.cpp#inline_comment"
8922 }
8923 ]
8924 },
8925 "3": {
8926 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8927 },
8928 "4": {
8929 "name": "comment.block.cpp"
8930 },
8931 "5": {
8932 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8933 },
8934 "6": {
8935 "patterns": [
8936 {
8937 "include": "source.cpp#inline_comment"
8938 }
8939 ]
8940 },
8941 "7": {
8942 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8943 },
8944 "8": {
8945 "name": "comment.block.cpp"
8946 },
8947 "9": {
8948 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8949 },
8950 "10": {
8951 "patterns": [
8952 {
8953 "include": "source.cpp#inline_comment"
8954 }
8955 ]
8956 },
8957 "11": {
8958 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8959 },
8960 "12": {
8961 "name": "comment.block.cpp"
8962 },
8963 "13": {
8964 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8965 },
8966 "14": {
8967 "name": "entity.name.type.alias.cpp"
8968 }
8969 }
8970 },
8971 {
8972 "match": ","
8973 }
8974 ]
8975 }
8976 ]
8977 }
8978 ]
8979 },
8980 "typeid_operator": {
8981 "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(\\()",
8982 "end": "\\)|(?=(?<!\\\\)\n)",
8983 "beginCaptures": {
8984 "1": {
8985 "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"
8986 },
8987 "2": {
8988 "patterns": [
8989 {
8990 "include": "source.cpp#inline_comment"
8991 }
8992 ]
8993 },
8994 "3": {
8995 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8996 },
8997 "4": {
8998 "name": "comment.block.cpp"
8999 },
9000 "5": {
9001 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9002 },
9003 "6": {
9004 "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"
9005 }
9006 },
9007 "endCaptures": {
9008 "0": {
9009 "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
9010 }
9011 },
9012 "contentName": "meta.arguments.operator.typeid",
9013 "patterns": [
9014 {
9015 "include": "#evaluation_context"
9016 }
9017 ]
9018 },
9019 "union_block": {
9020 "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
9021 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
9022 "beginCaptures": {
9023 "0": {
9024 "name": "meta.head.union.cpp"
9025 },
9026 "1": {
9027 "name": "storage.type.$1.cpp"
9028 },
9029 "2": {
9030 "patterns": [
9031 {
9032 "include": "source.cpp#inline_comment"
9033 }
9034 ]
9035 },
9036 "3": {
9037 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9038 },
9039 "4": {
9040 "name": "comment.block.cpp"
9041 },
9042 "5": {
9043 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9044 },
9045 "6": {
9046 "patterns": [
9047 {
9048 "include": "#attributes_context"
9049 },
9050 {
9051 "include": "source.cpp#number_literal"
9052 }
9053 ]
9054 },
9055 "7": {
9056 "patterns": [
9057 {
9058 "include": "source.cpp#inline_comment"
9059 }
9060 ]
9061 },
9062 "8": {
9063 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9064 },
9065 "9": {
9066 "name": "comment.block.cpp"
9067 },
9068 "10": {
9069 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9070 },
9071 "11": {
9072 "patterns": [
9073 {
9074 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))",
9075 "captures": {
9076 "1": {
9077 "name": "storage.type.modifier.final.cpp"
9078 },
9079 "2": {
9080 "patterns": [
9081 {
9082 "include": "source.cpp#inline_comment"
9083 }
9084 ]
9085 },
9086 "3": {
9087 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9088 },
9089 "4": {
9090 "name": "comment.block.cpp"
9091 },
9092 "5": {
9093 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9094 }
9095 }
9096 },
9097 {
9098 "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
9099 "captures": {
9100 "1": {
9101 "name": "entity.name.type.union.cpp"
9102 },
9103 "2": {
9104 "patterns": [
9105 {
9106 "include": "source.cpp#inline_comment"
9107 }
9108 ]
9109 },
9110 "3": {
9111 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9112 },
9113 "4": {
9114 "name": "comment.block.cpp"
9115 },
9116 "5": {
9117 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9118 },
9119 "6": {
9120 "name": "storage.type.modifier.final.cpp"
9121 },
9122 "7": {
9123 "patterns": [
9124 {
9125 "include": "source.cpp#inline_comment"
9126 }
9127 ]
9128 },
9129 "8": {
9130 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9131 },
9132 "9": {
9133 "name": "comment.block.cpp"
9134 },
9135 "10": {
9136 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9137 }
9138 }
9139 },
9140 {
9141 "match": "DLLEXPORT",
9142 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
9143 },
9144 {
9145 "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
9146 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
9147 }
9148 ]
9149 },
9150 "12": {
9151 "patterns": [
9152 {
9153 "include": "source.cpp#inline_comment"
9154 }
9155 ]
9156 },
9157 "13": {
9158 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9159 },
9160 "14": {
9161 "name": "comment.block.cpp"
9162 },
9163 "15": {
9164 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9165 },
9166 "16": {
9167 "patterns": [
9168 {
9169 "include": "source.cpp#inline_comment"
9170 }
9171 ]
9172 },
9173 "17": {
9174 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9175 },
9176 "18": {
9177 "name": "comment.block.cpp"
9178 },
9179 "19": {
9180 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9181 },
9182 "20": {
9183 "name": "punctuation.separator.colon.inheritance.cpp"
9184 }
9185 },
9186 "endCaptures": {
9187 "1": {
9188 "name": "punctuation.terminator.statement.cpp"
9189 },
9190 "2": {
9191 "name": "punctuation.terminator.statement.cpp"
9192 }
9193 },
9194 "name": "meta.block.union.cpp",
9195 "patterns": [
9196 {
9197 "begin": "\\G ?",
9198 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
9199 "beginCaptures": {},
9200 "endCaptures": {
9201 "0": {
9202 "name": "punctuation.section.block.begin.bracket.curly.union.cpp"
9203 }
9204 },
9205 "name": "meta.head.union.cpp",
9206 "patterns": [
9207 {
9208 "include": "#ever_present_context"
9209 },
9210 {
9211 "include": "#inheritance_context"
9212 },
9213 {
9214 "include": "#template_call_range"
9215 }
9216 ]
9217 },
9218 {
9219 "begin": "(?<=\\{|<%|\\?\\?<)",
9220 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
9221 "beginCaptures": {},
9222 "endCaptures": {
9223 "0": {
9224 "name": "punctuation.section.block.end.bracket.curly.union.cpp"
9225 }
9226 },
9227 "name": "meta.body.union.cpp",
9228 "patterns": [
9229 {
9230 "include": "#function_pointer"
9231 },
9232 {
9233 "include": "#static_assert"
9234 },
9235 {
9236 "include": "#constructor_inline"
9237 },
9238 {
9239 "include": "#destructor_inline"
9240 },
9241 {
9242 "include": "$self"
9243 }
9244 ]
9245 },
9246 {
9247 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
9248 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
9249 "beginCaptures": {},
9250 "endCaptures": {},
9251 "name": "meta.tail.union.cpp",
9252 "patterns": [
9253 {
9254 "include": "$self"
9255 }
9256 ]
9257 }
9258 ]
9259 },
9260 "using_namespace": {
9261 "begin": "(?<!\\w)(using)(?:\\s)+(namespace)(?:\\s)+((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<6>?)+>)(?:\\s)*+)?::)*\\s*+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?=;|\\n)",
9262 "end": ";|(?=(?<!\\\\)\n)",
9263 "beginCaptures": {
9264 "1": {
9265 "name": "keyword.other.using.directive.cpp"
9266 },
9267 "2": {
9268 "name": "keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp"
9269 },
9270 "3": {
9271 "patterns": [
9272 {
9273 "include": "source.cpp#scope_resolution_namespace_using_inner_generated"
9274 }
9275 ]
9276 },
9277 "4": {
9278 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
9279 },
9280 "5": {
9281 "patterns": [
9282 {
9283 "include": "#template_call_range"
9284 }
9285 ]
9286 },
9287 "6": {},
9288 "7": {
9289 "name": "entity.name.namespace.cpp"
9290 }
9291 },
9292 "endCaptures": {
9293 "0": {
9294 "name": "punctuation.terminator.statement.cpp"
9295 }
9296 },
9297 "name": "meta.using-namespace.cpp"
9298 }
9299 }
9300 }
9301