PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.9.0
Code Block Pro – Beautiful Syntax Highlighting v1.9.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.9.0, at build/shiki/languages/cpp-macro.tmLanguage.json

11,060 lines 395.7 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/924295fc44bde1a00fab60da3a2caca4509adb25",
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#access_control_keywords"
79 },
80 {
81 "include": "#block"
82 },
83 {
84 "include": "#static_assert"
85 },
86 {
87 "include": "#assembly"
88 },
89 {
90 "include": "#function_pointer"
91 },
92 {
93 "include": "#evaluation_context"
94 }
95 ],
96 "repository": {
97 "alignas_attribute": {
98 "begin": "alignas\\(",
99 "end": "\\)|(?=(?<!\\\\)\n)",
100 "beginCaptures": {
101 "0": {
102 "name": "punctuation.section.attribute.begin.cpp"
103 }
104 },
105 "endCaptures": {
106 "0": {
107 "name": "punctuation.section.attribute.end.cpp"
108 }
109 },
110 "name": "support.other.attribute.cpp",
111 "patterns": [
112 {
113 "include": "#attributes_context"
114 },
115 {
116 "begin": "\\(",
117 "end": "\\)|(?=(?<!\\\\)\n)",
118 "beginCaptures": {},
119 "endCaptures": {},
120 "patterns": [
121 {
122 "include": "#attributes_context"
123 },
124 {
125 "include": "#string_context"
126 }
127 ]
128 },
129 {
130 "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))",
131 "captures": {
132 "1": {
133 "name": "keyword.other.using.directive.cpp"
134 },
135 "2": {
136 "name": "entity.name.namespace.cpp"
137 }
138 }
139 },
140 {
141 "match": ",",
142 "name": "punctuation.separator.attribute.cpp"
143 },
144 {
145 "match": ":",
146 "name": "punctuation.accessor.attribute.cpp"
147 },
148 {
149 "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)(?=::)",
150 "name": "entity.name.namespace.cpp"
151 },
152 {
153 "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)",
154 "name": "entity.other.attribute.$0.cpp"
155 },
156 {
157 "include": "source.cpp#number_literal"
158 }
159 ]
160 },
161 "alignas_operator": {
162 "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
163 "end": "\\)|(?=(?<!\\\\)\n)",
164 "beginCaptures": {
165 "1": {
166 "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"
167 },
168 "2": {
169 "patterns": [
170 {
171 "include": "source.cpp#inline_comment"
172 }
173 ]
174 },
175 "3": {
176 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
177 },
178 "4": {
179 "name": "comment.block.cpp"
180 },
181 "5": {
182 "patterns": [
183 {
184 "match": "\\*\\/",
185 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
186 },
187 {
188 "match": "\\*",
189 "name": "comment.block.cpp"
190 }
191 ]
192 },
193 "6": {
194 "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"
195 }
196 },
197 "endCaptures": {
198 "0": {
199 "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
200 }
201 },
202 "contentName": "meta.arguments.operator.alignas",
203 "patterns": [
204 {
205 "include": "#evaluation_context"
206 }
207 ]
208 },
209 "alignof_operator": {
210 "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
211 "end": "\\)|(?=(?<!\\\\)\n)",
212 "beginCaptures": {
213 "1": {
214 "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"
215 },
216 "2": {
217 "patterns": [
218 {
219 "include": "source.cpp#inline_comment"
220 }
221 ]
222 },
223 "3": {
224 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
225 },
226 "4": {
227 "name": "comment.block.cpp"
228 },
229 "5": {
230 "patterns": [
231 {
232 "match": "\\*\\/",
233 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
234 },
235 {
236 "match": "\\*",
237 "name": "comment.block.cpp"
238 }
239 ]
240 },
241 "6": {
242 "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"
243 }
244 },
245 "endCaptures": {
246 "0": {
247 "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
248 }
249 },
250 "contentName": "meta.arguments.operator.alignof",
251 "patterns": [
252 {
253 "include": "#evaluation_context"
254 }
255 ]
256 },
257 "assembly": {
258 "begin": "(\\b(?:__asm__|asm)\\b)(?:(?:\\s)+)?((?:volatile)?)",
259 "end": "(?!\\G)|(?=(?<!\\\\)\n)",
260 "beginCaptures": {
261 "1": {
262 "name": "storage.type.asm.cpp"
263 },
264 "2": {
265 "name": "storage.modifier.cpp"
266 }
267 },
268 "endCaptures": {},
269 "name": "meta.asm.cpp",
270 "patterns": [
271 {
272 "match": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\n)|$)",
273 "captures": {
274 "1": {
275 "patterns": [
276 {
277 "include": "source.cpp#inline_comment"
278 }
279 ]
280 },
281 "2": {
282 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
283 },
284 "3": {
285 "name": "comment.block.cpp"
286 },
287 "4": {
288 "patterns": [
289 {
290 "match": "\\*\\/",
291 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
292 },
293 {
294 "match": "\\*",
295 "name": "comment.block.cpp"
296 }
297 ]
298 }
299 }
300 },
301 {
302 "include": "#comments"
303 },
304 {
305 "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\(",
306 "end": "\\)|(?=(?<!\\\\)\n)",
307 "beginCaptures": {
308 "0": {
309 "name": "punctuation.section.parens.begin.bracket.round.assembly.cpp"
310 },
311 "1": {
312 "patterns": [
313 {
314 "include": "source.cpp#inline_comment"
315 }
316 ]
317 },
318 "2": {
319 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
320 },
321 "3": {
322 "name": "comment.block.cpp"
323 },
324 "4": {
325 "patterns": [
326 {
327 "match": "\\*\\/",
328 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
329 },
330 {
331 "match": "\\*",
332 "name": "comment.block.cpp"
333 }
334 ]
335 }
336 },
337 "endCaptures": {
338 "0": {
339 "name": "punctuation.section.parens.end.bracket.round.assembly.cpp"
340 }
341 },
342 "patterns": [
343 {
344 "begin": "(R?)(\")",
345 "end": "\"|(?=(?<!\\\\)\n)",
346 "beginCaptures": {
347 "1": {
348 "name": "meta.encoding.cpp"
349 },
350 "2": {
351 "name": "punctuation.definition.string.begin.assembly.cpp"
352 }
353 },
354 "endCaptures": {
355 "0": {
356 "name": "punctuation.definition.string.end.assembly.cpp"
357 }
358 },
359 "name": "string.quoted.double.cpp",
360 "contentName": "meta.embedded.assembly",
361 "patterns": [
362 {
363 "include": "source.asm"
364 },
365 {
366 "include": "source.x86"
367 },
368 {
369 "include": "source.x86_64"
370 },
371 {
372 "include": "source.arm"
373 },
374 {
375 "include": "source.cpp#backslash_escapes"
376 },
377 {
378 "include": "#string_escaped_char"
379 }
380 ]
381 },
382 {
383 "begin": "\\(",
384 "end": "\\)|(?=(?<!\\\\)\n)",
385 "beginCaptures": {
386 "0": {
387 "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp"
388 }
389 },
390 "endCaptures": {
391 "0": {
392 "name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp"
393 }
394 },
395 "patterns": [
396 {
397 "include": "#evaluation_context"
398 }
399 ]
400 },
401 {
402 "match": "\\[((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]",
403 "captures": {
404 "1": {
405 "patterns": [
406 {
407 "include": "source.cpp#inline_comment"
408 }
409 ]
410 },
411 "2": {
412 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
413 },
414 "3": {
415 "name": "comment.block.cpp"
416 },
417 "4": {
418 "patterns": [
419 {
420 "match": "\\*\\/",
421 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
422 },
423 {
424 "match": "\\*",
425 "name": "comment.block.cpp"
426 }
427 ]
428 },
429 "5": {
430 "name": "variable.other.asm.label.cpp"
431 },
432 "6": {
433 "patterns": [
434 {
435 "include": "source.cpp#inline_comment"
436 }
437 ]
438 },
439 "7": {
440 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
441 },
442 "8": {
443 "name": "comment.block.cpp"
444 },
445 "9": {
446 "patterns": [
447 {
448 "match": "\\*\\/",
449 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
450 },
451 {
452 "match": "\\*",
453 "name": "comment.block.cpp"
454 }
455 ]
456 }
457 }
458 },
459 {
460 "match": ":",
461 "name": "punctuation.separator.delimiter.colon.assembly.cpp"
462 },
463 {
464 "include": "#comments"
465 }
466 ]
467 }
468 ]
469 },
470 "attributes_context": {
471 "patterns": [
472 {
473 "include": "#cpp_attributes"
474 },
475 {
476 "include": "#gcc_attributes"
477 },
478 {
479 "include": "#ms_attributes"
480 },
481 {
482 "include": "#alignas_attribute"
483 }
484 ]
485 },
486 "block": {
487 "begin": "{",
488 "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?=(?<!\\\\)\n)",
489 "beginCaptures": {
490 "0": {
491 "name": "punctuation.section.block.begin.bracket.curly.cpp"
492 }
493 },
494 "endCaptures": {
495 "0": {
496 "name": "punctuation.section.block.end.bracket.curly.cpp"
497 }
498 },
499 "name": "meta.block.cpp",
500 "patterns": [
501 {
502 "include": "#function_body_context"
503 }
504 ]
505 },
506 "block_comment": {
507 "begin": "\\s*+(\\/\\*)",
508 "end": "\\*\\/|(?=(?<!\\\\)\n)",
509 "beginCaptures": {
510 "1": {
511 "name": "punctuation.definition.comment.begin.cpp"
512 }
513 },
514 "endCaptures": {
515 "0": {
516 "name": "punctuation.definition.comment.end.cpp"
517 }
518 },
519 "name": "comment.block.cpp"
520 },
521 "builtin_storage_type_initilizer": {
522 "begin": "(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:signed)|(?:double)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:char)|(?:long)|(?:bool)|(?:int)))|((?:(?:uint_least16_t)|(?:uint_least32_t)|(?:uint_least64_t)|(?:int_least16_t)|(?:int_least32_t)|(?:int_least64_t)|(?:uint_least8_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:uint_fast64_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:suseconds_t)|(?:int_fast8_t)|(?:useconds_t)|(?:blksize_t)|(?:in_addr_t)|(?:in_port_t)|(?:uintptr_t)|(?:uintmax_t)|(?:uintmax_t)|(?:uintmax_t)|(?:u_quad_t)|(?:blkcnt_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:intptr_t)|(?:intmax_t)|(?:intmax_t)|(?:u_short)|(?:qaddr_t)|(?:caddr_t)|(?:daddr_t)|(?:fixpt_t)|(?:nlink_t)|(?:segsz_t)|(?:swblk_t)|(?:clock_t)|(?:ssize_t)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:u_char)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:time_t)|(?:int8_t)|(?:u_int)|(?:div_t)|(?:dev_t)|(?:gid_t)|(?:ino_t)|(?:key_t)|(?:pid_t)|(?:off_t)|(?:uid_t)|(?:uint)|(?:id_t)|(?:id_t))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_attr_t)|(?:pthread_cond_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_](?:\\w)*_t))(?!\\w)(?:\\s)*+(?<!\\w)(\\()",
523 "end": "\\)|(?=(?<!\\\\)\n)",
524 "beginCaptures": {
525 "1": {
526 "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
527 },
528 "2": {
529 "name": "storage.type.cpp storage.type.built-in.cpp"
530 },
531 "3": {
532 "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
533 },
534 "4": {
535 "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
536 },
537 "5": {
538 "name": "punctuation.section.arguments.begin.bracket.round.initializer.cpp"
539 }
540 },
541 "endCaptures": {
542 "0": {
543 "name": "punctuation.section.arguments.end.bracket.round.initializer.cpp"
544 }
545 },
546 "patterns": [
547 {
548 "include": "#evaluation_context"
549 }
550 ]
551 },
552 "case_statement": {
553 "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)case(?!\\w))",
554 "end": ":|(?=(?<!\\\\)\n)",
555 "beginCaptures": {
556 "1": {
557 "patterns": [
558 {
559 "include": "source.cpp#inline_comment"
560 }
561 ]
562 },
563 "2": {
564 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
565 },
566 "3": {
567 "name": "comment.block.cpp"
568 },
569 "4": {
570 "patterns": [
571 {
572 "match": "\\*\\/",
573 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
574 },
575 {
576 "match": "\\*",
577 "name": "comment.block.cpp"
578 }
579 ]
580 },
581 "5": {
582 "name": "keyword.control.case.cpp"
583 }
584 },
585 "endCaptures": {
586 "0": {
587 "name": "punctuation.separator.colon.case.cpp"
588 }
589 },
590 "name": "meta.conditional.case.cpp",
591 "patterns": [
592 {
593 "include": "#evaluation_context"
594 }
595 ]
596 },
597 "class_block": {
598 "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
599 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
600 "beginCaptures": {
601 "0": {
602 "name": "meta.head.class.cpp"
603 },
604 "1": {
605 "name": "storage.type.$1.cpp"
606 },
607 "2": {
608 "patterns": [
609 {
610 "include": "source.cpp#inline_comment"
611 }
612 ]
613 },
614 "3": {
615 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
616 },
617 "4": {
618 "name": "comment.block.cpp"
619 },
620 "5": {
621 "patterns": [
622 {
623 "match": "\\*\\/",
624 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
625 },
626 {
627 "match": "\\*",
628 "name": "comment.block.cpp"
629 }
630 ]
631 },
632 "6": {
633 "patterns": [
634 {
635 "include": "#attributes_context"
636 },
637 {
638 "include": "source.cpp#number_literal"
639 }
640 ]
641 },
642 "7": {
643 "patterns": [
644 {
645 "include": "source.cpp#inline_comment"
646 }
647 ]
648 },
649 "8": {
650 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
651 },
652 "9": {
653 "name": "comment.block.cpp"
654 },
655 "10": {
656 "patterns": [
657 {
658 "match": "\\*\\/",
659 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
660 },
661 {
662 "match": "\\*",
663 "name": "comment.block.cpp"
664 }
665 ]
666 },
667 "11": {
668 "patterns": [
669 {
670 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
671 "captures": {
672 "1": {
673 "name": "storage.type.modifier.final.cpp"
674 },
675 "2": {
676 "patterns": [
677 {
678 "include": "source.cpp#inline_comment"
679 }
680 ]
681 },
682 "3": {
683 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
684 },
685 "4": {
686 "name": "comment.block.cpp"
687 },
688 "5": {
689 "patterns": [
690 {
691 "match": "\\*\\/",
692 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
693 },
694 {
695 "match": "\\*",
696 "name": "comment.block.cpp"
697 }
698 ]
699 }
700 }
701 },
702 {
703 "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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
704 "captures": {
705 "1": {
706 "name": "entity.name.type.class.cpp"
707 },
708 "2": {
709 "patterns": [
710 {
711 "include": "source.cpp#inline_comment"
712 }
713 ]
714 },
715 "3": {
716 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
717 },
718 "4": {
719 "name": "comment.block.cpp"
720 },
721 "5": {
722 "patterns": [
723 {
724 "match": "\\*\\/",
725 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
726 },
727 {
728 "match": "\\*",
729 "name": "comment.block.cpp"
730 }
731 ]
732 },
733 "6": {
734 "name": "storage.type.modifier.final.cpp"
735 },
736 "7": {
737 "patterns": [
738 {
739 "include": "source.cpp#inline_comment"
740 }
741 ]
742 },
743 "8": {
744 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
745 },
746 "9": {
747 "name": "comment.block.cpp"
748 },
749 "10": {
750 "patterns": [
751 {
752 "match": "\\*\\/",
753 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
754 },
755 {
756 "match": "\\*",
757 "name": "comment.block.cpp"
758 }
759 ]
760 }
761 }
762 },
763 {
764 "match": "DLLEXPORT",
765 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
766 },
767 {
768 "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}))*",
769 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
770 }
771 ]
772 },
773 "12": {
774 "patterns": [
775 {
776 "include": "source.cpp#inline_comment"
777 }
778 ]
779 },
780 "13": {
781 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
782 },
783 "14": {
784 "name": "comment.block.cpp"
785 },
786 "15": {
787 "patterns": [
788 {
789 "match": "\\*\\/",
790 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
791 },
792 {
793 "match": "\\*",
794 "name": "comment.block.cpp"
795 }
796 ]
797 },
798 "16": {
799 "patterns": [
800 {
801 "include": "source.cpp#inline_comment"
802 }
803 ]
804 },
805 "17": {
806 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
807 },
808 "18": {
809 "name": "comment.block.cpp"
810 },
811 "19": {
812 "patterns": [
813 {
814 "match": "\\*\\/",
815 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
816 },
817 {
818 "match": "\\*",
819 "name": "comment.block.cpp"
820 }
821 ]
822 },
823 "20": {
824 "name": "punctuation.separator.colon.inheritance.cpp"
825 }
826 },
827 "endCaptures": {
828 "1": {
829 "name": "punctuation.terminator.statement.cpp"
830 },
831 "2": {
832 "name": "punctuation.terminator.statement.cpp"
833 }
834 },
835 "name": "meta.block.class.cpp",
836 "patterns": [
837 {
838 "begin": "\\G ?",
839 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
840 "beginCaptures": {},
841 "endCaptures": {
842 "0": {
843 "name": "punctuation.section.block.begin.bracket.curly.class.cpp"
844 }
845 },
846 "name": "meta.head.class.cpp",
847 "patterns": [
848 {
849 "include": "#ever_present_context"
850 },
851 {
852 "include": "#inheritance_context"
853 },
854 {
855 "include": "#template_call_range"
856 }
857 ]
858 },
859 {
860 "begin": "(?<=\\{|<%|\\?\\?<)",
861 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
862 "beginCaptures": {},
863 "endCaptures": {
864 "0": {
865 "name": "punctuation.section.block.end.bracket.curly.class.cpp"
866 }
867 },
868 "name": "meta.body.class.cpp",
869 "patterns": [
870 {
871 "include": "#function_pointer"
872 },
873 {
874 "include": "#static_assert"
875 },
876 {
877 "include": "#constructor_inline"
878 },
879 {
880 "include": "#destructor_inline"
881 },
882 {
883 "include": "$self"
884 }
885 ]
886 },
887 {
888 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
889 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
890 "beginCaptures": {},
891 "endCaptures": {},
892 "name": "meta.tail.class.cpp",
893 "patterns": [
894 {
895 "include": "$self"
896 }
897 ]
898 }
899 ]
900 },
901 "comments": {
902 "patterns": [
903 {
904 "begin": "^(?:(?:\\s)+)?+(\\/\\/[!\\/]+)",
905 "end": "(?<=\\n)(?<!\\\\\\n)|(?=(?<!\\\\)\n)",
906 "beginCaptures": {
907 "1": {
908 "name": "punctuation.definition.comment.documentation.cpp"
909 }
910 },
911 "endCaptures": {},
912 "name": "comment.line.double-slash.documentation.cpp",
913 "patterns": [
914 {
915 "include": "source.cpp#line_continuation_character"
916 },
917 {
918 "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(?:\\{[^}]*\\})?",
919 "name": "storage.type.class.doxygen.cpp"
920 },
921 {
922 "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
923 "captures": {
924 "1": {
925 "name": "storage.type.class.doxygen.cpp"
926 },
927 "2": {
928 "name": "markup.italic.doxygen.cpp"
929 }
930 }
931 },
932 {
933 "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
934 "captures": {
935 "1": {
936 "name": "storage.type.class.doxygen.cpp"
937 },
938 "2": {
939 "name": "markup.bold.doxygen.cpp"
940 }
941 }
942 },
943 {
944 "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
945 "captures": {
946 "1": {
947 "name": "storage.type.class.doxygen.cpp"
948 },
949 "2": {
950 "name": "markup.inline.raw.string.cpp"
951 }
952 }
953 },
954 {
955 "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(?:\\{[^}]*\\})?",
956 "name": "storage.type.class.doxygen.cpp"
957 },
958 {
959 "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(?:\\{[^}]*\\})?",
960 "name": "storage.type.class.doxygen.cpp"
961 },
962 {
963 "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
964 "captures": {
965 "1": {
966 "name": "storage.type.class.doxygen.cpp"
967 },
968 "2": {
969 "patterns": [
970 {
971 "match": "in|out",
972 "name": "keyword.other.parameter.direction.$0.cpp"
973 }
974 ]
975 },
976 "3": {
977 "name": "variable.parameter.cpp"
978 }
979 }
980 },
981 {
982 "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(?:\\{[^}]*\\})?",
983 "name": "storage.type.class.doxygen.cpp"
984 },
985 {
986 "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(?:\\{[^}]*\\})?",
987 "name": "storage.type.class.doxygen.cpp"
988 },
989 {
990 "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
991 "name": "storage.type.class.gtkdoc.cpp"
992 }
993 ]
994 },
995 {
996 "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",
997 "captures": {
998 "1": {
999 "name": "punctuation.definition.comment.begin.documentation.cpp"
1000 },
1001 "2": {
1002 "patterns": [
1003 {
1004 "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(?:\\{[^}]*\\})?",
1005 "name": "storage.type.class.doxygen.cpp"
1006 },
1007 {
1008 "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
1009 "captures": {
1010 "1": {
1011 "name": "storage.type.class.doxygen.cpp"
1012 },
1013 "2": {
1014 "name": "markup.italic.doxygen.cpp"
1015 }
1016 }
1017 },
1018 {
1019 "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
1020 "captures": {
1021 "1": {
1022 "name": "storage.type.class.doxygen.cpp"
1023 },
1024 "2": {
1025 "name": "markup.bold.doxygen.cpp"
1026 }
1027 }
1028 },
1029 {
1030 "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
1031 "captures": {
1032 "1": {
1033 "name": "storage.type.class.doxygen.cpp"
1034 },
1035 "2": {
1036 "name": "markup.inline.raw.string.cpp"
1037 }
1038 }
1039 },
1040 {
1041 "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(?:\\{[^}]*\\})?",
1042 "name": "storage.type.class.doxygen.cpp"
1043 },
1044 {
1045 "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(?:\\{[^}]*\\})?",
1046 "name": "storage.type.class.doxygen.cpp"
1047 },
1048 {
1049 "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
1050 "captures": {
1051 "1": {
1052 "name": "storage.type.class.doxygen.cpp"
1053 },
1054 "2": {
1055 "patterns": [
1056 {
1057 "match": "in|out",
1058 "name": "keyword.other.parameter.direction.$0.cpp"
1059 }
1060 ]
1061 },
1062 "3": {
1063 "name": "variable.parameter.cpp"
1064 }
1065 }
1066 },
1067 {
1068 "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(?:\\{[^}]*\\})?",
1069 "name": "storage.type.class.doxygen.cpp"
1070 },
1071 {
1072 "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(?:\\{[^}]*\\})?",
1073 "name": "storage.type.class.doxygen.cpp"
1074 },
1075 {
1076 "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
1077 "name": "storage.type.class.gtkdoc.cpp"
1078 }
1079 ]
1080 },
1081 "3": {
1082 "name": "punctuation.definition.comment.end.documentation.cpp"
1083 }
1084 },
1085 "name": "comment.block.documentation.cpp"
1086 },
1087 {
1088 "begin": "(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))",
1089 "end": "[!*]*\\*\\/|(?=(?<!\\\\)\n)",
1090 "beginCaptures": {
1091 "0": {
1092 "name": "punctuation.definition.comment.begin.documentation.cpp"
1093 }
1094 },
1095 "endCaptures": {
1096 "0": {
1097 "name": "punctuation.definition.comment.end.documentation.cpp"
1098 }
1099 },
1100 "name": "comment.block.documentation.cpp",
1101 "patterns": [
1102 {
1103 "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(?:\\{[^}]*\\})?",
1104 "name": "storage.type.class.doxygen.cpp"
1105 },
1106 {
1107 "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
1108 "captures": {
1109 "1": {
1110 "name": "storage.type.class.doxygen.cpp"
1111 },
1112 "2": {
1113 "name": "markup.italic.doxygen.cpp"
1114 }
1115 }
1116 },
1117 {
1118 "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
1119 "captures": {
1120 "1": {
1121 "name": "storage.type.class.doxygen.cpp"
1122 },
1123 "2": {
1124 "name": "markup.bold.doxygen.cpp"
1125 }
1126 }
1127 },
1128 {
1129 "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
1130 "captures": {
1131 "1": {
1132 "name": "storage.type.class.doxygen.cpp"
1133 },
1134 "2": {
1135 "name": "markup.inline.raw.string.cpp"
1136 }
1137 }
1138 },
1139 {
1140 "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(?:\\{[^}]*\\})?",
1141 "name": "storage.type.class.doxygen.cpp"
1142 },
1143 {
1144 "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(?:\\{[^}]*\\})?",
1145 "name": "storage.type.class.doxygen.cpp"
1146 },
1147 {
1148 "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
1149 "captures": {
1150 "1": {
1151 "name": "storage.type.class.doxygen.cpp"
1152 },
1153 "2": {
1154 "patterns": [
1155 {
1156 "match": "in|out",
1157 "name": "keyword.other.parameter.direction.$0.cpp"
1158 }
1159 ]
1160 },
1161 "3": {
1162 "name": "variable.parameter.cpp"
1163 }
1164 }
1165 },
1166 {
1167 "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(?:\\{[^}]*\\})?",
1168 "name": "storage.type.class.doxygen.cpp"
1169 },
1170 {
1171 "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(?:\\{[^}]*\\})?",
1172 "name": "storage.type.class.doxygen.cpp"
1173 },
1174 {
1175 "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
1176 "name": "storage.type.class.gtkdoc.cpp"
1177 }
1178 ]
1179 },
1180 {
1181 "include": "source.cpp#emacs_file_banner"
1182 },
1183 {
1184 "include": "#block_comment"
1185 },
1186 {
1187 "include": "#line_comment"
1188 },
1189 {
1190 "include": "source.cpp#invalid_comment_end"
1191 }
1192 ]
1193 },
1194 "constructor_inline": {
1195 "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)(?=\\())",
1196 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
1197 "beginCaptures": {
1198 "0": {
1199 "name": "meta.head.function.definition.special.constructor.cpp"
1200 },
1201 "1": {
1202 "patterns": [
1203 {
1204 "include": "source.cpp#inline_comment"
1205 }
1206 ]
1207 },
1208 "2": {
1209 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1210 },
1211 "3": {
1212 "name": "comment.block.cpp"
1213 },
1214 "4": {
1215 "patterns": [
1216 {
1217 "match": "\\*\\/",
1218 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1219 },
1220 {
1221 "match": "\\*",
1222 "name": "comment.block.cpp"
1223 }
1224 ]
1225 },
1226 "5": {
1227 "patterns": [
1228 {
1229 "include": "source.cpp#functional_specifiers_pre_parameters"
1230 }
1231 ]
1232 },
1233 "6": {
1234 "patterns": [
1235 {
1236 "include": "source.cpp#inline_comment"
1237 }
1238 ]
1239 },
1240 "7": {
1241 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1242 },
1243 "8": {
1244 "name": "comment.block.cpp"
1245 },
1246 "9": {
1247 "patterns": [
1248 {
1249 "match": "\\*\\/",
1250 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1251 },
1252 {
1253 "match": "\\*",
1254 "name": "comment.block.cpp"
1255 }
1256 ]
1257 },
1258 "10": {
1259 "patterns": [
1260 {
1261 "include": "source.cpp#inline_comment"
1262 }
1263 ]
1264 },
1265 "11": {
1266 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1267 },
1268 "12": {
1269 "name": "comment.block.cpp"
1270 },
1271 "13": {
1272 "patterns": [
1273 {
1274 "match": "\\*\\/",
1275 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1276 },
1277 {
1278 "match": "\\*",
1279 "name": "comment.block.cpp"
1280 }
1281 ]
1282 },
1283 "14": {
1284 "name": "storage.type.modifier.calling-convention.cpp"
1285 },
1286 "15": {
1287 "patterns": [
1288 {
1289 "include": "source.cpp#inline_comment"
1290 }
1291 ]
1292 },
1293 "16": {
1294 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1295 },
1296 "17": {
1297 "name": "comment.block.cpp"
1298 },
1299 "18": {
1300 "patterns": [
1301 {
1302 "match": "\\*\\/",
1303 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1304 },
1305 {
1306 "match": "\\*",
1307 "name": "comment.block.cpp"
1308 }
1309 ]
1310 },
1311 "19": {
1312 "name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"
1313 }
1314 },
1315 "endCaptures": {},
1316 "name": "meta.function.definition.special.constructor.cpp",
1317 "patterns": [
1318 {
1319 "begin": "\\G ?",
1320 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
1321 "beginCaptures": {},
1322 "endCaptures": {
1323 "0": {
1324 "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
1325 }
1326 },
1327 "name": "meta.head.function.definition.special.constructor.cpp",
1328 "patterns": [
1329 {
1330 "include": "#ever_present_context"
1331 },
1332 {
1333 "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
1334 "captures": {
1335 "1": {
1336 "name": "keyword.operator.assignment.cpp"
1337 },
1338 "2": {
1339 "patterns": [
1340 {
1341 "include": "source.cpp#inline_comment"
1342 }
1343 ]
1344 },
1345 "3": {
1346 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1347 },
1348 "4": {
1349 "name": "comment.block.cpp"
1350 },
1351 "5": {
1352 "patterns": [
1353 {
1354 "match": "\\*\\/",
1355 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1356 },
1357 {
1358 "match": "\\*",
1359 "name": "comment.block.cpp"
1360 }
1361 ]
1362 },
1363 "6": {
1364 "name": "keyword.other.default.constructor.cpp"
1365 },
1366 "7": {
1367 "name": "keyword.other.delete.constructor.cpp"
1368 }
1369 }
1370 },
1371 {
1372 "include": "source.cpp#functional_specifiers_pre_parameters"
1373 },
1374 {
1375 "begin": ":",
1376 "end": "(?=\\{)|(?=(?<!\\\\)\n)",
1377 "beginCaptures": {
1378 "0": {
1379 "name": "punctuation.separator.initializers.cpp"
1380 }
1381 },
1382 "endCaptures": {},
1383 "patterns": [
1384 {
1385 "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)*+)?(\\()",
1386 "end": "\\)|(?=(?<!\\\\)\n)",
1387 "beginCaptures": {
1388 "1": {
1389 "name": "entity.name.function.call.initializer.cpp"
1390 },
1391 "2": {
1392 "name": "meta.template.call.cpp",
1393 "patterns": [
1394 {
1395 "include": "#template_call_range"
1396 }
1397 ]
1398 },
1399 "3": {},
1400 "4": {
1401 "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1402 }
1403 },
1404 "endCaptures": {
1405 "0": {
1406 "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1407 }
1408 },
1409 "contentName": "meta.parameter.initialization",
1410 "patterns": [
1411 {
1412 "include": "#evaluation_context"
1413 }
1414 ]
1415 },
1416 {
1417 "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))(\\{)",
1418 "end": "\\}|(?=(?<!\\\\)\n)",
1419 "beginCaptures": {
1420 "1": {
1421 "name": "entity.name.function.call.initializer.cpp"
1422 },
1423 "2": {
1424 "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1425 }
1426 },
1427 "endCaptures": {
1428 "0": {
1429 "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1430 }
1431 },
1432 "contentName": "meta.parameter.initialization",
1433 "patterns": [
1434 {
1435 "include": "#evaluation_context"
1436 }
1437 ]
1438 },
1439 {
1440 "match": ",",
1441 "name": "punctuation.separator.delimiter.comma.cpp"
1442 },
1443 {
1444 "include": "#comments"
1445 }
1446 ]
1447 },
1448 {
1449 "begin": "\\(",
1450 "end": "\\)|(?=(?<!\\\\)\n)",
1451 "beginCaptures": {
1452 "0": {
1453 "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
1454 }
1455 },
1456 "endCaptures": {
1457 "0": {
1458 "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
1459 }
1460 },
1461 "contentName": "meta.function.definition.parameters.special.constructor",
1462 "patterns": [
1463 {
1464 "include": "#function_parameter_context"
1465 },
1466 {
1467 "include": "#evaluation_context"
1468 }
1469 ]
1470 },
1471 {
1472 "match": "((?:(?:final)|(?:override)))+",
1473 "captures": {
1474 "1": {
1475 "name": "keyword.operator.$1.cpp"
1476 }
1477 }
1478 },
1479 {
1480 "include": "$self"
1481 }
1482 ]
1483 },
1484 {
1485 "begin": "(?<=\\{|<%|\\?\\?<)",
1486 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
1487 "beginCaptures": {},
1488 "endCaptures": {
1489 "0": {
1490 "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
1491 }
1492 },
1493 "name": "meta.body.function.definition.special.constructor.cpp",
1494 "patterns": [
1495 {
1496 "include": "#function_body_context"
1497 }
1498 ]
1499 },
1500 {
1501 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
1502 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
1503 "beginCaptures": {},
1504 "endCaptures": {},
1505 "name": "meta.tail.function.definition.special.constructor.cpp",
1506 "patterns": [
1507 {
1508 "include": "$self"
1509 }
1510 ]
1511 }
1512 ]
1513 },
1514 "constructor_root": {
1515 "begin": "\\s*+((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())",
1516 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
1517 "beginCaptures": {
1518 "0": {
1519 "name": "meta.head.function.definition.special.constructor.cpp"
1520 },
1521 "1": {
1522 "patterns": [
1523 {
1524 "include": "source.cpp#inline_comment"
1525 }
1526 ]
1527 },
1528 "2": {
1529 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1530 },
1531 "3": {
1532 "name": "comment.block.cpp"
1533 },
1534 "4": {
1535 "patterns": [
1536 {
1537 "match": "\\*\\/",
1538 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1539 },
1540 {
1541 "match": "\\*",
1542 "name": "comment.block.cpp"
1543 }
1544 ]
1545 },
1546 "5": {
1547 "name": "storage.type.modifier.calling-convention.cpp"
1548 },
1549 "6": {
1550 "patterns": [
1551 {
1552 "include": "source.cpp#inline_comment"
1553 }
1554 ]
1555 },
1556 "7": {
1557 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1558 },
1559 "8": {
1560 "name": "comment.block.cpp"
1561 },
1562 "9": {
1563 "patterns": [
1564 {
1565 "match": "\\*\\/",
1566 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1567 },
1568 {
1569 "match": "\\*",
1570 "name": "comment.block.cpp"
1571 }
1572 ]
1573 },
1574 "10": {
1575 "patterns": [
1576 {
1577 "match": "::",
1578 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
1579 },
1580 {
1581 "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)",
1582 "name": "entity.name.scope-resolution.constructor.cpp"
1583 },
1584 {
1585 "include": "#template_call_range"
1586 }
1587 ]
1588 },
1589 "11": {
1590 "patterns": [
1591 {
1592 "include": "#template_call_range"
1593 }
1594 ]
1595 },
1596 "12": {},
1597 "13": {
1598 "patterns": [
1599 {
1600 "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}))*(?=:)",
1601 "name": "entity.name.type.constructor.cpp"
1602 },
1603 {
1604 "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}))*",
1605 "name": "entity.name.function.definition.special.constructor.cpp"
1606 },
1607 {
1608 "match": "::",
1609 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
1610 }
1611 ]
1612 },
1613 "14": {},
1614 "15": {
1615 "patterns": [
1616 {
1617 "include": "source.cpp#inline_comment"
1618 }
1619 ]
1620 },
1621 "16": {
1622 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1623 },
1624 "17": {
1625 "name": "comment.block.cpp"
1626 },
1627 "18": {
1628 "patterns": [
1629 {
1630 "match": "\\*\\/",
1631 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1632 },
1633 {
1634 "match": "\\*",
1635 "name": "comment.block.cpp"
1636 }
1637 ]
1638 },
1639 "19": {
1640 "patterns": [
1641 {
1642 "include": "source.cpp#inline_comment"
1643 }
1644 ]
1645 },
1646 "20": {
1647 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1648 },
1649 "21": {
1650 "name": "comment.block.cpp"
1651 },
1652 "22": {
1653 "patterns": [
1654 {
1655 "match": "\\*\\/",
1656 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1657 },
1658 {
1659 "match": "\\*",
1660 "name": "comment.block.cpp"
1661 }
1662 ]
1663 },
1664 "23": {
1665 "patterns": [
1666 {
1667 "include": "source.cpp#inline_comment"
1668 }
1669 ]
1670 },
1671 "24": {
1672 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1673 },
1674 "25": {
1675 "name": "comment.block.cpp"
1676 },
1677 "26": {
1678 "patterns": [
1679 {
1680 "match": "\\*\\/",
1681 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1682 },
1683 {
1684 "match": "\\*",
1685 "name": "comment.block.cpp"
1686 }
1687 ]
1688 }
1689 },
1690 "endCaptures": {},
1691 "name": "meta.function.definition.special.constructor.cpp",
1692 "patterns": [
1693 {
1694 "begin": "\\G ?",
1695 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
1696 "beginCaptures": {},
1697 "endCaptures": {
1698 "0": {
1699 "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
1700 }
1701 },
1702 "name": "meta.head.function.definition.special.constructor.cpp",
1703 "patterns": [
1704 {
1705 "include": "#ever_present_context"
1706 },
1707 {
1708 "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
1709 "captures": {
1710 "1": {
1711 "name": "keyword.operator.assignment.cpp"
1712 },
1713 "2": {
1714 "patterns": [
1715 {
1716 "include": "source.cpp#inline_comment"
1717 }
1718 ]
1719 },
1720 "3": {
1721 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
1722 },
1723 "4": {
1724 "name": "comment.block.cpp"
1725 },
1726 "5": {
1727 "patterns": [
1728 {
1729 "match": "\\*\\/",
1730 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
1731 },
1732 {
1733 "match": "\\*",
1734 "name": "comment.block.cpp"
1735 }
1736 ]
1737 },
1738 "6": {
1739 "name": "keyword.other.default.constructor.cpp"
1740 },
1741 "7": {
1742 "name": "keyword.other.delete.constructor.cpp"
1743 }
1744 }
1745 },
1746 {
1747 "include": "source.cpp#functional_specifiers_pre_parameters"
1748 },
1749 {
1750 "begin": ":",
1751 "end": "(?=\\{)|(?=(?<!\\\\)\n)",
1752 "beginCaptures": {
1753 "0": {
1754 "name": "punctuation.separator.initializers.cpp"
1755 }
1756 },
1757 "endCaptures": {},
1758 "patterns": [
1759 {
1760 "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)*+)?(\\()",
1761 "end": "\\)|(?=(?<!\\\\)\n)",
1762 "beginCaptures": {
1763 "1": {
1764 "name": "entity.name.function.call.initializer.cpp"
1765 },
1766 "2": {
1767 "name": "meta.template.call.cpp",
1768 "patterns": [
1769 {
1770 "include": "#template_call_range"
1771 }
1772 ]
1773 },
1774 "3": {},
1775 "4": {
1776 "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1777 }
1778 },
1779 "endCaptures": {
1780 "0": {
1781 "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1782 }
1783 },
1784 "contentName": "meta.parameter.initialization",
1785 "patterns": [
1786 {
1787 "include": "#evaluation_context"
1788 }
1789 ]
1790 },
1791 {
1792 "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))(\\{)",
1793 "end": "\\}|(?=(?<!\\\\)\n)",
1794 "beginCaptures": {
1795 "1": {
1796 "name": "entity.name.function.call.initializer.cpp"
1797 },
1798 "2": {
1799 "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
1800 }
1801 },
1802 "endCaptures": {
1803 "0": {
1804 "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
1805 }
1806 },
1807 "contentName": "meta.parameter.initialization",
1808 "patterns": [
1809 {
1810 "include": "#evaluation_context"
1811 }
1812 ]
1813 },
1814 {
1815 "match": ",",
1816 "name": "punctuation.separator.delimiter.comma.cpp"
1817 },
1818 {
1819 "include": "#comments"
1820 }
1821 ]
1822 },
1823 {
1824 "begin": "\\(",
1825 "end": "\\)|(?=(?<!\\\\)\n)",
1826 "beginCaptures": {
1827 "0": {
1828 "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp"
1829 }
1830 },
1831 "endCaptures": {
1832 "0": {
1833 "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp"
1834 }
1835 },
1836 "contentName": "meta.function.definition.parameters.special.constructor",
1837 "patterns": [
1838 {
1839 "include": "#function_parameter_context"
1840 },
1841 {
1842 "include": "#evaluation_context"
1843 }
1844 ]
1845 },
1846 {
1847 "match": "((?:(?:final)|(?:override)))+",
1848 "captures": {
1849 "1": {
1850 "name": "keyword.operator.$1.cpp"
1851 }
1852 }
1853 },
1854 {
1855 "include": "$self"
1856 }
1857 ]
1858 },
1859 {
1860 "begin": "(?<=\\{|<%|\\?\\?<)",
1861 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
1862 "beginCaptures": {},
1863 "endCaptures": {
1864 "0": {
1865 "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
1866 }
1867 },
1868 "name": "meta.body.function.definition.special.constructor.cpp",
1869 "patterns": [
1870 {
1871 "include": "#function_body_context"
1872 }
1873 ]
1874 },
1875 {
1876 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
1877 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
1878 "beginCaptures": {},
1879 "endCaptures": {},
1880 "name": "meta.tail.function.definition.special.constructor.cpp",
1881 "patterns": [
1882 {
1883 "include": "$self"
1884 }
1885 ]
1886 }
1887 ]
1888 },
1889 "cpp_attributes": {
1890 "begin": "\\[\\[",
1891 "end": "\\]\\]|(?=(?<!\\\\)\n)",
1892 "beginCaptures": {
1893 "0": {
1894 "name": "punctuation.section.attribute.begin.cpp"
1895 }
1896 },
1897 "endCaptures": {
1898 "0": {
1899 "name": "punctuation.section.attribute.end.cpp"
1900 }
1901 },
1902 "name": "support.other.attribute.cpp",
1903 "patterns": [
1904 {
1905 "include": "#attributes_context"
1906 },
1907 {
1908 "begin": "\\(",
1909 "end": "\\)|(?=(?<!\\\\)\n)",
1910 "beginCaptures": {},
1911 "endCaptures": {},
1912 "patterns": [
1913 {
1914 "include": "#attributes_context"
1915 },
1916 {
1917 "include": "#string_context"
1918 }
1919 ]
1920 },
1921 {
1922 "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))",
1923 "captures": {
1924 "1": {
1925 "name": "keyword.other.using.directive.cpp"
1926 },
1927 "2": {
1928 "name": "entity.name.namespace.cpp"
1929 }
1930 }
1931 },
1932 {
1933 "match": ",",
1934 "name": "punctuation.separator.attribute.cpp"
1935 },
1936 {
1937 "match": ":",
1938 "name": "punctuation.accessor.attribute.cpp"
1939 },
1940 {
1941 "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)(?=::)",
1942 "name": "entity.name.namespace.cpp"
1943 },
1944 {
1945 "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)",
1946 "name": "entity.other.attribute.$0.cpp"
1947 },
1948 {
1949 "include": "source.cpp#number_literal"
1950 }
1951 ]
1952 },
1953 "curly_initializer": {
1954 "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\{)",
1955 "end": "\\}|(?=(?<!\\\\)\n)",
1956 "beginCaptures": {
1957 "1": {
1958 "name": "meta.qualified_type.cpp",
1959 "patterns": [
1960 {
1961 "match": "::",
1962 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
1963 },
1964 {
1965 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
1966 "name": "storage.type.$0.cpp"
1967 },
1968 {
1969 "include": "#attributes_context"
1970 },
1971 {
1972 "include": "#storage_types"
1973 },
1974 {
1975 "include": "source.cpp#number_literal"
1976 },
1977 {
1978 "include": "#string_context"
1979 },
1980 {
1981 "include": "source.cpp#comma"
1982 },
1983 {
1984 "include": "source.cpp#scope_resolution_inner_generated"
1985 },
1986 {
1987 "begin": "<",
1988 "end": ">|(?=(?<!\\\\)\n)",
1989 "beginCaptures": {
1990 "0": {
1991 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
1992 }
1993 },
1994 "endCaptures": {
1995 "0": {
1996 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
1997 }
1998 },
1999 "name": "meta.template.call.cpp",
2000 "patterns": [
2001 {
2002 "include": "#template_call_context"
2003 }
2004 ]
2005 },
2006 {
2007 "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}))*",
2008 "name": "entity.name.type.cpp"
2009 }
2010 ]
2011 },
2012 "2": {
2013 "patterns": [
2014 {
2015 "include": "#attributes_context"
2016 },
2017 {
2018 "include": "source.cpp#number_literal"
2019 }
2020 ]
2021 },
2022 "3": {
2023 "patterns": [
2024 {
2025 "include": "source.cpp#inline_comment"
2026 }
2027 ]
2028 },
2029 "4": {
2030 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2031 },
2032 "5": {
2033 "name": "comment.block.cpp"
2034 },
2035 "6": {
2036 "patterns": [
2037 {
2038 "match": "\\*\\/",
2039 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2040 },
2041 {
2042 "match": "\\*",
2043 "name": "comment.block.cpp"
2044 }
2045 ]
2046 },
2047 "7": {
2048 "patterns": [
2049 {
2050 "include": "source.cpp#inline_comment"
2051 }
2052 ]
2053 },
2054 "8": {
2055 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2056 },
2057 "9": {
2058 "name": "comment.block.cpp"
2059 },
2060 "10": {
2061 "patterns": [
2062 {
2063 "match": "\\*\\/",
2064 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2065 },
2066 {
2067 "match": "\\*",
2068 "name": "comment.block.cpp"
2069 }
2070 ]
2071 },
2072 "11": {
2073 "patterns": [
2074 {
2075 "match": "::",
2076 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
2077 },
2078 {
2079 "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)",
2080 "name": "entity.name.scope-resolution.type.cpp"
2081 },
2082 {
2083 "include": "#template_call_range"
2084 }
2085 ]
2086 },
2087 "12": {
2088 "patterns": [
2089 {
2090 "include": "#template_call_range"
2091 }
2092 ]
2093 },
2094 "13": {},
2095 "14": {
2096 "patterns": [
2097 {
2098 "include": "source.cpp#inline_comment"
2099 }
2100 ]
2101 },
2102 "15": {
2103 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2104 },
2105 "16": {
2106 "name": "comment.block.cpp"
2107 },
2108 "17": {
2109 "patterns": [
2110 {
2111 "match": "\\*\\/",
2112 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2113 },
2114 {
2115 "match": "\\*",
2116 "name": "comment.block.cpp"
2117 }
2118 ]
2119 },
2120 "18": {},
2121 "19": {
2122 "patterns": [
2123 {
2124 "include": "source.cpp#inline_comment"
2125 }
2126 ]
2127 },
2128 "20": {
2129 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2130 },
2131 "21": {
2132 "name": "comment.block.cpp"
2133 },
2134 "22": {
2135 "patterns": [
2136 {
2137 "match": "\\*\\/",
2138 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2139 },
2140 {
2141 "match": "\\*",
2142 "name": "comment.block.cpp"
2143 }
2144 ]
2145 },
2146 "23": {
2147 "name": "punctuation.section.arguments.begin.bracket.curly.initializer.cpp"
2148 }
2149 },
2150 "endCaptures": {
2151 "0": {
2152 "name": "punctuation.section.arguments.end.bracket.curly.initializer.cpp"
2153 }
2154 },
2155 "name": "meta.initialization.cpp",
2156 "patterns": [
2157 {
2158 "include": "#evaluation_context"
2159 },
2160 {
2161 "include": "source.cpp#comma"
2162 }
2163 ]
2164 },
2165 "decltype": {
2166 "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
2167 "end": "\\)|(?=(?<!\\\\)\n)",
2168 "beginCaptures": {
2169 "1": {
2170 "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
2171 },
2172 "2": {
2173 "patterns": [
2174 {
2175 "include": "source.cpp#inline_comment"
2176 }
2177 ]
2178 },
2179 "3": {
2180 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2181 },
2182 "4": {
2183 "name": "comment.block.cpp"
2184 },
2185 "5": {
2186 "patterns": [
2187 {
2188 "match": "\\*\\/",
2189 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2190 },
2191 {
2192 "match": "\\*",
2193 "name": "comment.block.cpp"
2194 }
2195 ]
2196 },
2197 "6": {
2198 "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
2199 }
2200 },
2201 "endCaptures": {
2202 "0": {
2203 "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
2204 }
2205 },
2206 "contentName": "meta.arguments.decltype",
2207 "patterns": [
2208 {
2209 "include": "#evaluation_context"
2210 }
2211 ]
2212 },
2213 "decltype_specifier": {
2214 "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
2215 "end": "\\)|(?=(?<!\\\\)\n)",
2216 "beginCaptures": {
2217 "1": {
2218 "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
2219 },
2220 "2": {
2221 "patterns": [
2222 {
2223 "include": "source.cpp#inline_comment"
2224 }
2225 ]
2226 },
2227 "3": {
2228 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2229 },
2230 "4": {
2231 "name": "comment.block.cpp"
2232 },
2233 "5": {
2234 "patterns": [
2235 {
2236 "match": "\\*\\/",
2237 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2238 },
2239 {
2240 "match": "\\*",
2241 "name": "comment.block.cpp"
2242 }
2243 ]
2244 },
2245 "6": {
2246 "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
2247 }
2248 },
2249 "endCaptures": {
2250 "0": {
2251 "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
2252 }
2253 },
2254 "contentName": "meta.arguments.decltype",
2255 "patterns": [
2256 {
2257 "include": "#evaluation_context"
2258 }
2259 ]
2260 },
2261 "default_statement": {
2262 "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)default(?!\\w))",
2263 "end": ":|(?=(?<!\\\\)\n)",
2264 "beginCaptures": {
2265 "1": {
2266 "patterns": [
2267 {
2268 "include": "source.cpp#inline_comment"
2269 }
2270 ]
2271 },
2272 "2": {
2273 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2274 },
2275 "3": {
2276 "name": "comment.block.cpp"
2277 },
2278 "4": {
2279 "patterns": [
2280 {
2281 "match": "\\*\\/",
2282 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2283 },
2284 {
2285 "match": "\\*",
2286 "name": "comment.block.cpp"
2287 }
2288 ]
2289 },
2290 "5": {
2291 "name": "keyword.control.default.cpp"
2292 }
2293 },
2294 "endCaptures": {
2295 "0": {
2296 "name": "punctuation.separator.colon.case.default.cpp"
2297 }
2298 },
2299 "name": "meta.conditional.case.cpp",
2300 "patterns": [
2301 {
2302 "include": "#evaluation_context"
2303 }
2304 ]
2305 },
2306 "destructor_inline": {
2307 "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)(?=\\())",
2308 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
2309 "beginCaptures": {
2310 "0": {
2311 "name": "meta.head.function.definition.special.member.destructor.cpp"
2312 },
2313 "1": {
2314 "patterns": [
2315 {
2316 "include": "source.cpp#inline_comment"
2317 }
2318 ]
2319 },
2320 "2": {
2321 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2322 },
2323 "3": {
2324 "name": "comment.block.cpp"
2325 },
2326 "4": {
2327 "patterns": [
2328 {
2329 "match": "\\*\\/",
2330 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2331 },
2332 {
2333 "match": "\\*",
2334 "name": "comment.block.cpp"
2335 }
2336 ]
2337 },
2338 "5": {
2339 "patterns": [
2340 {
2341 "include": "source.cpp#inline_comment"
2342 }
2343 ]
2344 },
2345 "6": {
2346 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2347 },
2348 "7": {
2349 "name": "comment.block.cpp"
2350 },
2351 "8": {
2352 "patterns": [
2353 {
2354 "match": "\\*\\/",
2355 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2356 },
2357 {
2358 "match": "\\*",
2359 "name": "comment.block.cpp"
2360 }
2361 ]
2362 },
2363 "9": {
2364 "name": "storage.type.modifier.calling-convention.cpp"
2365 },
2366 "10": {
2367 "patterns": [
2368 {
2369 "include": "source.cpp#inline_comment"
2370 }
2371 ]
2372 },
2373 "11": {
2374 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2375 },
2376 "12": {
2377 "name": "comment.block.cpp"
2378 },
2379 "13": {
2380 "patterns": [
2381 {
2382 "match": "\\*\\/",
2383 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2384 },
2385 {
2386 "match": "\\*",
2387 "name": "comment.block.cpp"
2388 }
2389 ]
2390 },
2391 "14": {
2392 "patterns": [
2393 {
2394 "include": "source.cpp#functional_specifiers_pre_parameters"
2395 }
2396 ]
2397 },
2398 "15": {
2399 "patterns": [
2400 {
2401 "include": "source.cpp#inline_comment"
2402 }
2403 ]
2404 },
2405 "16": {
2406 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2407 },
2408 "17": {
2409 "name": "comment.block.cpp"
2410 },
2411 "18": {
2412 "patterns": [
2413 {
2414 "match": "\\*\\/",
2415 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2416 },
2417 {
2418 "match": "\\*",
2419 "name": "comment.block.cpp"
2420 }
2421 ]
2422 },
2423 "19": {
2424 "name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"
2425 }
2426 },
2427 "endCaptures": {},
2428 "name": "meta.function.definition.special.member.destructor.cpp",
2429 "patterns": [
2430 {
2431 "begin": "\\G ?",
2432 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
2433 "beginCaptures": {},
2434 "endCaptures": {
2435 "0": {
2436 "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
2437 }
2438 },
2439 "name": "meta.head.function.definition.special.member.destructor.cpp",
2440 "patterns": [
2441 {
2442 "include": "#ever_present_context"
2443 },
2444 {
2445 "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
2446 "captures": {
2447 "1": {
2448 "name": "keyword.operator.assignment.cpp"
2449 },
2450 "2": {
2451 "patterns": [
2452 {
2453 "include": "source.cpp#inline_comment"
2454 }
2455 ]
2456 },
2457 "3": {
2458 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2459 },
2460 "4": {
2461 "name": "comment.block.cpp"
2462 },
2463 "5": {
2464 "patterns": [
2465 {
2466 "match": "\\*\\/",
2467 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2468 },
2469 {
2470 "match": "\\*",
2471 "name": "comment.block.cpp"
2472 }
2473 ]
2474 },
2475 "6": {
2476 "name": "keyword.other.default.constructor.cpp"
2477 },
2478 "7": {
2479 "name": "keyword.other.delete.constructor.cpp"
2480 }
2481 }
2482 },
2483 {
2484 "begin": "\\(",
2485 "end": "\\)|(?=(?<!\\\\)\n)",
2486 "beginCaptures": {
2487 "0": {
2488 "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
2489 }
2490 },
2491 "endCaptures": {
2492 "0": {
2493 "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
2494 }
2495 },
2496 "contentName": "meta.function.definition.parameters.special.member.destructor",
2497 "patterns": []
2498 },
2499 {
2500 "match": "((?:(?:final)|(?:override)))+",
2501 "captures": {
2502 "1": {
2503 "name": "keyword.operator.wordlike.cpp keyword.operator.$1.cpp"
2504 }
2505 }
2506 },
2507 {
2508 "include": "$self"
2509 }
2510 ]
2511 },
2512 {
2513 "begin": "(?<=\\{|<%|\\?\\?<)",
2514 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
2515 "beginCaptures": {},
2516 "endCaptures": {
2517 "0": {
2518 "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
2519 }
2520 },
2521 "name": "meta.body.function.definition.special.member.destructor.cpp",
2522 "patterns": [
2523 {
2524 "include": "#function_body_context"
2525 }
2526 ]
2527 },
2528 {
2529 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
2530 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
2531 "beginCaptures": {},
2532 "endCaptures": {},
2533 "name": "meta.tail.function.definition.special.member.destructor.cpp",
2534 "patterns": [
2535 {
2536 "include": "$self"
2537 }
2538 ]
2539 }
2540 ]
2541 },
2542 "destructor_root": {
2543 "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))~\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())",
2544 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
2545 "beginCaptures": {
2546 "0": {
2547 "name": "meta.head.function.definition.special.member.destructor.cpp"
2548 },
2549 "1": {
2550 "patterns": [
2551 {
2552 "include": "source.cpp#inline_comment"
2553 }
2554 ]
2555 },
2556 "2": {
2557 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2558 },
2559 "3": {
2560 "name": "comment.block.cpp"
2561 },
2562 "4": {
2563 "patterns": [
2564 {
2565 "match": "\\*\\/",
2566 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2567 },
2568 {
2569 "match": "\\*",
2570 "name": "comment.block.cpp"
2571 }
2572 ]
2573 },
2574 "5": {
2575 "name": "storage.type.modifier.calling-convention.cpp"
2576 },
2577 "6": {
2578 "patterns": [
2579 {
2580 "include": "source.cpp#inline_comment"
2581 }
2582 ]
2583 },
2584 "7": {
2585 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2586 },
2587 "8": {
2588 "name": "comment.block.cpp"
2589 },
2590 "9": {
2591 "patterns": [
2592 {
2593 "match": "\\*\\/",
2594 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2595 },
2596 {
2597 "match": "\\*",
2598 "name": "comment.block.cpp"
2599 }
2600 ]
2601 },
2602 "10": {
2603 "patterns": [
2604 {
2605 "match": "::",
2606 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
2607 },
2608 {
2609 "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)",
2610 "name": "entity.name.scope-resolution.destructor.cpp"
2611 },
2612 {
2613 "include": "#template_call_range"
2614 }
2615 ]
2616 },
2617 "11": {
2618 "patterns": [
2619 {
2620 "include": "#template_call_range"
2621 }
2622 ]
2623 },
2624 "12": {},
2625 "13": {
2626 "patterns": [
2627 {
2628 "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}))*(?=:)",
2629 "name": "entity.name.type.destructor.cpp"
2630 },
2631 {
2632 "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}))*",
2633 "name": "entity.name.function.definition.special.member.destructor.cpp"
2634 },
2635 {
2636 "match": "::",
2637 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
2638 }
2639 ]
2640 },
2641 "14": {},
2642 "15": {
2643 "patterns": [
2644 {
2645 "include": "source.cpp#inline_comment"
2646 }
2647 ]
2648 },
2649 "16": {
2650 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2651 },
2652 "17": {
2653 "name": "comment.block.cpp"
2654 },
2655 "18": {
2656 "patterns": [
2657 {
2658 "match": "\\*\\/",
2659 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2660 },
2661 {
2662 "match": "\\*",
2663 "name": "comment.block.cpp"
2664 }
2665 ]
2666 },
2667 "19": {
2668 "patterns": [
2669 {
2670 "include": "source.cpp#inline_comment"
2671 }
2672 ]
2673 },
2674 "20": {
2675 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2676 },
2677 "21": {
2678 "name": "comment.block.cpp"
2679 },
2680 "22": {
2681 "patterns": [
2682 {
2683 "match": "\\*\\/",
2684 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2685 },
2686 {
2687 "match": "\\*",
2688 "name": "comment.block.cpp"
2689 }
2690 ]
2691 },
2692 "23": {
2693 "patterns": [
2694 {
2695 "include": "source.cpp#inline_comment"
2696 }
2697 ]
2698 },
2699 "24": {
2700 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2701 },
2702 "25": {
2703 "name": "comment.block.cpp"
2704 },
2705 "26": {
2706 "patterns": [
2707 {
2708 "match": "\\*\\/",
2709 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2710 },
2711 {
2712 "match": "\\*",
2713 "name": "comment.block.cpp"
2714 }
2715 ]
2716 }
2717 },
2718 "endCaptures": {},
2719 "name": "meta.function.definition.special.member.destructor.cpp",
2720 "patterns": [
2721 {
2722 "begin": "\\G ?",
2723 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
2724 "beginCaptures": {},
2725 "endCaptures": {
2726 "0": {
2727 "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
2728 }
2729 },
2730 "name": "meta.head.function.definition.special.member.destructor.cpp",
2731 "patterns": [
2732 {
2733 "include": "#ever_present_context"
2734 },
2735 {
2736 "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
2737 "captures": {
2738 "1": {
2739 "name": "keyword.operator.assignment.cpp"
2740 },
2741 "2": {
2742 "patterns": [
2743 {
2744 "include": "source.cpp#inline_comment"
2745 }
2746 ]
2747 },
2748 "3": {
2749 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2750 },
2751 "4": {
2752 "name": "comment.block.cpp"
2753 },
2754 "5": {
2755 "patterns": [
2756 {
2757 "match": "\\*\\/",
2758 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2759 },
2760 {
2761 "match": "\\*",
2762 "name": "comment.block.cpp"
2763 }
2764 ]
2765 },
2766 "6": {
2767 "name": "keyword.other.default.constructor.cpp"
2768 },
2769 "7": {
2770 "name": "keyword.other.delete.constructor.cpp"
2771 }
2772 }
2773 },
2774 {
2775 "begin": "\\(",
2776 "end": "\\)|(?=(?<!\\\\)\n)",
2777 "beginCaptures": {
2778 "0": {
2779 "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
2780 }
2781 },
2782 "endCaptures": {
2783 "0": {
2784 "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
2785 }
2786 },
2787 "contentName": "meta.function.definition.parameters.special.member.destructor",
2788 "patterns": []
2789 },
2790 {
2791 "match": "((?:(?:final)|(?:override)))+",
2792 "captures": {
2793 "1": {
2794 "name": "keyword.operator.wordlike.cpp keyword.operator.$1.cpp"
2795 }
2796 }
2797 },
2798 {
2799 "include": "$self"
2800 }
2801 ]
2802 },
2803 {
2804 "begin": "(?<=\\{|<%|\\?\\?<)",
2805 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
2806 "beginCaptures": {},
2807 "endCaptures": {
2808 "0": {
2809 "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
2810 }
2811 },
2812 "name": "meta.body.function.definition.special.member.destructor.cpp",
2813 "patterns": [
2814 {
2815 "include": "#function_body_context"
2816 }
2817 ]
2818 },
2819 {
2820 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
2821 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
2822 "beginCaptures": {},
2823 "endCaptures": {},
2824 "name": "meta.tail.function.definition.special.member.destructor.cpp",
2825 "patterns": [
2826 {
2827 "include": "$self"
2828 }
2829 ]
2830 }
2831 ]
2832 },
2833 "diagnostic": {
2834 "begin": "(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:error|warning)))\\b(?:(?:\\s)+)?",
2835 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
2836 "beginCaptures": {
2837 "1": {
2838 "name": "keyword.control.directive.diagnostic.$7.cpp"
2839 },
2840 "2": {
2841 "patterns": [
2842 {
2843 "include": "source.cpp#inline_comment"
2844 }
2845 ]
2846 },
2847 "3": {
2848 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
2849 },
2850 "4": {
2851 "name": "comment.block.cpp"
2852 },
2853 "5": {
2854 "patterns": [
2855 {
2856 "match": "\\*\\/",
2857 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
2858 },
2859 {
2860 "match": "\\*",
2861 "name": "comment.block.cpp"
2862 }
2863 ]
2864 },
2865 "6": {
2866 "name": "punctuation.definition.directive.cpp"
2867 },
2868 "7": {}
2869 },
2870 "endCaptures": {},
2871 "name": "meta.preprocessor.diagnostic.$reference(directive).cpp",
2872 "patterns": [
2873 {
2874 "begin": "\"",
2875 "end": "(?:(\")|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)",
2876 "beginCaptures": {
2877 "0": {
2878 "name": "punctuation.definition.string.begin.cpp"
2879 }
2880 },
2881 "endCaptures": {
2882 "1": {
2883 "name": "punctuation.definition.string.end.cpp"
2884 }
2885 },
2886 "name": "string.quoted.double.cpp",
2887 "patterns": [
2888 {
2889 "include": "source.cpp#line_continuation_character"
2890 }
2891 ]
2892 },
2893 {
2894 "begin": "'",
2895 "end": "(?:(')|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)",
2896 "beginCaptures": {
2897 "0": {
2898 "name": "punctuation.definition.string.begin.cpp"
2899 }
2900 },
2901 "endCaptures": {
2902 "1": {
2903 "name": "punctuation.definition.string.end.cpp"
2904 }
2905 },
2906 "name": "string.quoted.single.cpp",
2907 "patterns": [
2908 {
2909 "include": "source.cpp#line_continuation_character"
2910 }
2911 ]
2912 },
2913 {
2914 "begin": "[^'\"]",
2915 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
2916 "beginCaptures": {},
2917 "endCaptures": {},
2918 "name": "string.unquoted.cpp",
2919 "patterns": [
2920 {
2921 "include": "source.cpp#line_continuation_character"
2922 },
2923 {
2924 "include": "#comments"
2925 }
2926 ]
2927 }
2928 ]
2929 },
2930 "enum_block": {
2931 "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|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)))?",
2932 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
2933 "beginCaptures": {
2934 "0": {
2935 "name": "meta.head.enum.cpp"
2936 },
2937 "1": {
2938 "name": "storage.type.enum.cpp"
2939 },
2940 "2": {
2941 "name": "storage.type.enum.enum-key.$2.cpp"
2942 },
2943 "3": {
2944 "patterns": [
2945 {
2946 "include": "#attributes_context"
2947 },
2948 {
2949 "include": "source.cpp#number_literal"
2950 }
2951 ]
2952 },
2953 "4": {
2954 "name": "entity.name.type.enum.cpp"
2955 },
2956 "5": {
2957 "name": "punctuation.separator.colon.type-specifier.cpp"
2958 },
2959 "6": {
2960 "patterns": [
2961 {
2962 "include": "source.cpp#scope_resolution_inner_generated"
2963 }
2964 ]
2965 },
2966 "7": {
2967 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
2968 },
2969 "8": {
2970 "patterns": [
2971 {
2972 "include": "#template_call_range"
2973 }
2974 ]
2975 },
2976 "9": {},
2977 "10": {
2978 "name": "entity.name.scope-resolution.cpp"
2979 },
2980 "11": {
2981 "name": "meta.template.call.cpp",
2982 "patterns": [
2983 {
2984 "include": "#template_call_range"
2985 }
2986 ]
2987 },
2988 "12": {},
2989 "13": {
2990 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
2991 },
2992 "14": {
2993 "name": "storage.type.integral.$14.cpp"
2994 }
2995 },
2996 "endCaptures": {
2997 "1": {
2998 "name": "punctuation.terminator.statement.cpp"
2999 },
3000 "2": {
3001 "name": "punctuation.terminator.statement.cpp"
3002 }
3003 },
3004 "name": "meta.block.enum.cpp",
3005 "patterns": [
3006 {
3007 "begin": "\\G ?",
3008 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
3009 "beginCaptures": {},
3010 "endCaptures": {
3011 "0": {
3012 "name": "punctuation.section.block.begin.bracket.curly.enum.cpp"
3013 }
3014 },
3015 "name": "meta.head.enum.cpp",
3016 "patterns": [
3017 {
3018 "include": "$self"
3019 }
3020 ]
3021 },
3022 {
3023 "begin": "(?<=\\{|<%|\\?\\?<)",
3024 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
3025 "beginCaptures": {},
3026 "endCaptures": {
3027 "0": {
3028 "name": "punctuation.section.block.end.bracket.curly.enum.cpp"
3029 }
3030 },
3031 "name": "meta.body.enum.cpp",
3032 "patterns": [
3033 {
3034 "include": "#ever_present_context"
3035 },
3036 {
3037 "include": "source.cpp#enumerator_list"
3038 },
3039 {
3040 "include": "#comments"
3041 },
3042 {
3043 "include": "source.cpp#comma"
3044 },
3045 {
3046 "include": "source.cpp#semicolon"
3047 }
3048 ]
3049 },
3050 {
3051 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
3052 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
3053 "beginCaptures": {},
3054 "endCaptures": {},
3055 "name": "meta.tail.enum.cpp",
3056 "patterns": [
3057 {
3058 "include": "$self"
3059 }
3060 ]
3061 }
3062 ]
3063 },
3064 "evaluation_context": {
3065 "patterns": [
3066 {
3067 "include": "#ever_present_context"
3068 },
3069 {
3070 "include": "#string_context"
3071 },
3072 {
3073 "include": "source.cpp#number_literal"
3074 },
3075 {
3076 "include": "#method_access"
3077 },
3078 {
3079 "include": "source.cpp#member_access"
3080 },
3081 {
3082 "include": "source.cpp#predefined_macros"
3083 },
3084 {
3085 "include": "#operators"
3086 },
3087 {
3088 "include": "source.cpp#memory_operators"
3089 },
3090 {
3091 "include": "source.cpp#wordlike_operators"
3092 },
3093 {
3094 "include": "source.cpp#type_casting_operators"
3095 },
3096 {
3097 "include": "source.cpp#control_flow_keywords"
3098 },
3099 {
3100 "include": "source.cpp#exception_keywords"
3101 },
3102 {
3103 "include": "source.cpp#the_this_keyword"
3104 },
3105 {
3106 "include": "source.cpp#language_constants"
3107 },
3108 {
3109 "include": "#builtin_storage_type_initilizer"
3110 },
3111 {
3112 "include": "source.cpp#qualifiers_and_specifiers_post_parameters"
3113 },
3114 {
3115 "include": "source.cpp#functional_specifiers_pre_parameters"
3116 },
3117 {
3118 "include": "#storage_types"
3119 },
3120 {
3121 "include": "#lambdas"
3122 },
3123 {
3124 "include": "#attributes_context"
3125 },
3126 {
3127 "include": "#parentheses"
3128 },
3129 {
3130 "include": "#function_call"
3131 },
3132 {
3133 "include": "source.cpp#scope_resolution_inner_generated"
3134 },
3135 {
3136 "include": "#square_brackets"
3137 },
3138 {
3139 "include": "source.cpp#semicolon"
3140 },
3141 {
3142 "include": "source.cpp#comma"
3143 }
3144 ]
3145 },
3146 "ever_present_context": {
3147 "patterns": [
3148 {
3149 "include": "source.cpp#pragma_mark"
3150 },
3151 {
3152 "include": "#pragma"
3153 },
3154 {
3155 "include": "source.cpp#include"
3156 },
3157 {
3158 "include": "#line"
3159 },
3160 {
3161 "include": "#diagnostic"
3162 },
3163 {
3164 "include": "source.cpp#undef"
3165 },
3166 {
3167 "include": "#preprocessor_conditional_range"
3168 },
3169 {
3170 "include": "source.cpp#single_line_macro"
3171 },
3172 {
3173 "include": "#macro"
3174 },
3175 {
3176 "include": "source.cpp#preprocessor_conditional_standalone"
3177 },
3178 {
3179 "include": "source.cpp#macro_argument"
3180 },
3181 {
3182 "include": "#comments"
3183 },
3184 {
3185 "include": "source.cpp#line_continuation_character"
3186 }
3187 ]
3188 },
3189 "extern_block": {
3190 "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(extern)(?=\\s*\\\")",
3191 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
3192 "beginCaptures": {
3193 "0": {
3194 "name": "meta.head.extern.cpp"
3195 },
3196 "1": {
3197 "patterns": [
3198 {
3199 "include": "source.cpp#inline_comment"
3200 }
3201 ]
3202 },
3203 "2": {
3204 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3205 },
3206 "3": {
3207 "name": "comment.block.cpp"
3208 },
3209 "4": {
3210 "patterns": [
3211 {
3212 "match": "\\*\\/",
3213 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3214 },
3215 {
3216 "match": "\\*",
3217 "name": "comment.block.cpp"
3218 }
3219 ]
3220 },
3221 "5": {
3222 "name": "storage.type.extern.cpp"
3223 }
3224 },
3225 "endCaptures": {
3226 "1": {
3227 "name": "punctuation.terminator.statement.cpp"
3228 },
3229 "2": {
3230 "name": "punctuation.terminator.statement.cpp"
3231 }
3232 },
3233 "name": "meta.block.extern.cpp",
3234 "patterns": [
3235 {
3236 "begin": "\\G ?",
3237 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
3238 "beginCaptures": {},
3239 "endCaptures": {
3240 "0": {
3241 "name": "punctuation.section.block.begin.bracket.curly.extern.cpp"
3242 }
3243 },
3244 "name": "meta.head.extern.cpp",
3245 "patterns": [
3246 {
3247 "include": "$self"
3248 }
3249 ]
3250 },
3251 {
3252 "begin": "(?<=\\{|<%|\\?\\?<)",
3253 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
3254 "beginCaptures": {},
3255 "endCaptures": {
3256 "0": {
3257 "name": "punctuation.section.block.end.bracket.curly.extern.cpp"
3258 }
3259 },
3260 "name": "meta.body.extern.cpp",
3261 "patterns": [
3262 {
3263 "include": "$self"
3264 }
3265 ]
3266 },
3267 {
3268 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
3269 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
3270 "beginCaptures": {},
3271 "endCaptures": {},
3272 "name": "meta.tail.extern.cpp",
3273 "patterns": [
3274 {
3275 "include": "$self"
3276 }
3277 ]
3278 },
3279 {
3280 "include": "$self"
3281 }
3282 ]
3283 },
3284 "function_body_context": {
3285 "patterns": [
3286 {
3287 "include": "#ever_present_context"
3288 },
3289 {
3290 "include": "#using_namespace"
3291 },
3292 {
3293 "include": "source.cpp#type_alias"
3294 },
3295 {
3296 "include": "source.cpp#using_name"
3297 },
3298 {
3299 "include": "source.cpp#namespace_alias"
3300 },
3301 {
3302 "include": "#typedef_class"
3303 },
3304 {
3305 "include": "#typedef_struct"
3306 },
3307 {
3308 "include": "#typedef_union"
3309 },
3310 {
3311 "include": "source.cpp#misc_keywords"
3312 },
3313 {
3314 "include": "source.cpp#standard_declares"
3315 },
3316 {
3317 "include": "#class_block"
3318 },
3319 {
3320 "include": "#struct_block"
3321 },
3322 {
3323 "include": "#union_block"
3324 },
3325 {
3326 "include": "#enum_block"
3327 },
3328 {
3329 "include": "source.cpp#access_control_keywords"
3330 },
3331 {
3332 "include": "#block"
3333 },
3334 {
3335 "include": "#static_assert"
3336 },
3337 {
3338 "include": "#assembly"
3339 },
3340 {
3341 "include": "#function_pointer"
3342 },
3343 {
3344 "include": "#switch_statement"
3345 },
3346 {
3347 "include": "source.cpp#goto_statement"
3348 },
3349 {
3350 "include": "#evaluation_context"
3351 },
3352 {
3353 "include": "source.cpp#label"
3354 }
3355 ]
3356 },
3357 "function_call": {
3358 "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wuint_fast64_t|^uint_fast64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wuint_fast8_t|^uint_fast8_t|\\Wthread_local|^thread_local|\\Wsynchronized|^synchronized|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wint_fast8_t|^int_fast8_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wco_return|^co_return|\\Wblksize_t|^blksize_t|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\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|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\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|\\Wtemplate|^template|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Walignof|^alignof|\\Walignas|^alignas|\\Wdefault|^default|\\Wwchar_t|^wchar_t|\\Wu_short|^u_short|\\Wqaddr_t|^qaddr_t|\\Wcaddr_t|^caddr_t|\\Wdaddr_t|^daddr_t|\\Wfixpt_t|^fixpt_t|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wswblk_t|^swblk_t|\\Wclock_t|^clock_t|\\Wssize_t|^ssize_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wnullptr|^nullptr|\\Wmutable|^mutable|\\Wvirtual|^virtual|\\Wmutable|^mutable|\\Wprivate|^private|\\Wtypedef|^typedef|\\W__asm__|^__asm__|\\Wconcept|^concept|\\Wsizeof|^sizeof|\\Wdelete|^delete|\\Wnot_eq|^not_eq|\\Wbitand|^bitand|\\Wand_eq|^and_eq|\\Wxor_eq|^xor_eq|\\Wtypeid|^typeid|\\Wswitch|^switch|\\Wreturn|^return|\\Wsigned|^signed|\\Wdouble|^double|\\Wu_char|^u_char|\\Wu_long|^u_long|\\Wushort|^ushort|\\Wquad_t|^quad_t|\\Wmode_t|^mode_t|\\Wsize_t|^size_t|\\Wtime_t|^time_t|\\Wint8_t|^int8_t|\\Wstruct|^struct|\\Wstatic|^static|\\Wextern|^extern|\\Winline|^inline|\\Wfriend|^friend|\\Wpublic|^public|\\Wexport|^export|\\Wimport|^import|\\Wmodule|^module|\\Wcompl|^compl|\\Wbitor|^bitor|\\Wthrow|^throw|\\Wor_eq|^or_eq|\\Wwhile|^while|\\Wcatch|^catch|\\Wbreak|^break|\\Wshort|^short|\\Wfloat|^float|\\Wu_int|^u_int|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wconst|^const|\\Wusing|^using|\\Welse|^else|\\Wgoto|^goto|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wchar|^char|\\Wlong|^long|\\Wbool|^bool|\\Wuint|^uint|\\Wid_t|^id_t|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wtrue|^true|\\Wenum|^enum|\\Wthis|^this|\\Wnot|^not|\\Wnew|^new|\\Wxor|^xor|\\Wand|^and|\\Wfor|^for|\\Wtry|^try|\\Wint|^int|\\Wasm|^asm|\\Wor|^or|\\Wdo|^do|\\Wif|^if)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?<!<)<(?!<)(?:(?:(?:[^'\"<>]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?(\\()",
3359 "end": "\\)|(?=(?<!\\\\)\n)",
3360 "beginCaptures": {
3361 "1": {
3362 "patterns": [
3363 {
3364 "include": "source.cpp#scope_resolution_function_call_inner_generated"
3365 }
3366 ]
3367 },
3368 "2": {
3369 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
3370 },
3371 "3": {
3372 "patterns": [
3373 {
3374 "include": "#template_call_range"
3375 }
3376 ]
3377 },
3378 "4": {},
3379 "5": {
3380 "name": "entity.name.function.call.cpp"
3381 },
3382 "6": {
3383 "patterns": [
3384 {
3385 "include": "source.cpp#inline_comment"
3386 }
3387 ]
3388 },
3389 "7": {
3390 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3391 },
3392 "8": {
3393 "name": "comment.block.cpp"
3394 },
3395 "9": {
3396 "patterns": [
3397 {
3398 "match": "\\*\\/",
3399 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3400 },
3401 {
3402 "match": "\\*",
3403 "name": "comment.block.cpp"
3404 }
3405 ]
3406 },
3407 "10": {
3408 "name": "meta.template.call.cpp",
3409 "patterns": [
3410 {
3411 "include": "#template_call_range"
3412 }
3413 ]
3414 },
3415 "11": {},
3416 "12": {
3417 "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp"
3418 }
3419 },
3420 "endCaptures": {
3421 "0": {
3422 "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp"
3423 }
3424 },
3425 "patterns": [
3426 {
3427 "include": "#evaluation_context"
3428 }
3429 ]
3430 },
3431 "function_definition": {
3432 "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)template(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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<60>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?: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<60>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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<60>?)+>)(?:\\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|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wuint_fast64_t|^uint_fast64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wuint_fast8_t|^uint_fast8_t|\\Wthread_local|^thread_local|\\Wsynchronized|^synchronized|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wint_fast8_t|^int_fast8_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wco_return|^co_return|\\Wblksize_t|^blksize_t|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\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|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\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|\\Wtemplate|^template|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Walignof|^alignof|\\Walignas|^alignas|\\Wdefault|^default|\\Wwchar_t|^wchar_t|\\Wu_short|^u_short|\\Wqaddr_t|^qaddr_t|\\Wcaddr_t|^caddr_t|\\Wdaddr_t|^daddr_t|\\Wfixpt_t|^fixpt_t|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wswblk_t|^swblk_t|\\Wclock_t|^clock_t|\\Wssize_t|^ssize_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wnullptr|^nullptr|\\Wmutable|^mutable|\\Wvirtual|^virtual|\\Wmutable|^mutable|\\Wprivate|^private|\\Wtypedef|^typedef|\\W__asm__|^__asm__|\\Wconcept|^concept|\\Wsizeof|^sizeof|\\Wdelete|^delete|\\Wnot_eq|^not_eq|\\Wbitand|^bitand|\\Wand_eq|^and_eq|\\Wxor_eq|^xor_eq|\\Wtypeid|^typeid|\\Wswitch|^switch|\\Wreturn|^return|\\Wsigned|^signed|\\Wdouble|^double|\\Wu_char|^u_char|\\Wu_long|^u_long|\\Wushort|^ushort|\\Wquad_t|^quad_t|\\Wmode_t|^mode_t|\\Wsize_t|^size_t|\\Wtime_t|^time_t|\\Wint8_t|^int8_t|\\Wstruct|^struct|\\Wstatic|^static|\\Wextern|^extern|\\Winline|^inline|\\Wfriend|^friend|\\Wpublic|^public|\\Wexport|^export|\\Wimport|^import|\\Wmodule|^module|\\Wcompl|^compl|\\Wbitor|^bitor|\\Wthrow|^throw|\\Wor_eq|^or_eq|\\Wwhile|^while|\\Wcatch|^catch|\\Wbreak|^break|\\Wshort|^short|\\Wfloat|^float|\\Wu_int|^u_int|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wconst|^const|\\Wusing|^using|\\Welse|^else|\\Wgoto|^goto|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wchar|^char|\\Wlong|^long|\\Wbool|^bool|\\Wuint|^uint|\\Wid_t|^id_t|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wtrue|^true|\\Wenum|^enum|\\Wthis|^this|\\Wnot|^not|\\Wnew|^new|\\Wxor|^xor|\\Wand|^and|\\Wfor|^for|\\Wtry|^try|\\Wint|^int|\\Wasm|^asm|\\Wor|^or|\\Wdo|^do|\\Wif|^if)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\()",
3433 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
3434 "beginCaptures": {
3435 "0": {
3436 "name": "meta.head.function.definition.cpp"
3437 },
3438 "1": {
3439 "patterns": [
3440 {
3441 "include": "source.cpp#inline_comment"
3442 }
3443 ]
3444 },
3445 "2": {
3446 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3447 },
3448 "3": {
3449 "name": "comment.block.cpp"
3450 },
3451 "4": {
3452 "patterns": [
3453 {
3454 "match": "\\*\\/",
3455 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3456 },
3457 {
3458 "match": "\\*",
3459 "name": "comment.block.cpp"
3460 }
3461 ]
3462 },
3463 "5": {
3464 "name": "storage.type.template.cpp"
3465 },
3466 "6": {
3467 "patterns": [
3468 {
3469 "include": "source.cpp#inline_comment"
3470 }
3471 ]
3472 },
3473 "7": {
3474 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3475 },
3476 "8": {
3477 "name": "comment.block.cpp"
3478 },
3479 "9": {
3480 "patterns": [
3481 {
3482 "match": "\\*\\/",
3483 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3484 },
3485 {
3486 "match": "\\*",
3487 "name": "comment.block.cpp"
3488 }
3489 ]
3490 },
3491 "10": {
3492 "patterns": [
3493 {
3494 "include": "#attributes_context"
3495 },
3496 {
3497 "include": "source.cpp#number_literal"
3498 }
3499 ]
3500 },
3501 "11": {
3502 "patterns": [
3503 {
3504 "match": "((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
3505 "captures": {
3506 "1": {
3507 "name": "storage.modifier.$1.cpp"
3508 },
3509 "2": {
3510 "patterns": [
3511 {
3512 "include": "source.cpp#inline_comment"
3513 }
3514 ]
3515 },
3516 "3": {
3517 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3518 },
3519 "4": {
3520 "name": "comment.block.cpp"
3521 },
3522 "5": {
3523 "patterns": [
3524 {
3525 "match": "\\*\\/",
3526 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3527 },
3528 {
3529 "match": "\\*",
3530 "name": "comment.block.cpp"
3531 }
3532 ]
3533 }
3534 }
3535 }
3536 ]
3537 },
3538 "12": {
3539 "name": "storage.modifier.$12.cpp"
3540 },
3541 "13": {
3542 "patterns": [
3543 {
3544 "include": "source.cpp#inline_comment"
3545 }
3546 ]
3547 },
3548 "14": {
3549 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3550 },
3551 "15": {
3552 "name": "comment.block.cpp"
3553 },
3554 "16": {
3555 "patterns": [
3556 {
3557 "match": "\\*\\/",
3558 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3559 },
3560 {
3561 "match": "\\*",
3562 "name": "comment.block.cpp"
3563 }
3564 ]
3565 },
3566 "17": {
3567 "name": "meta.qualified_type.cpp",
3568 "patterns": [
3569 {
3570 "match": "::",
3571 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
3572 },
3573 {
3574 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
3575 "name": "storage.type.$0.cpp"
3576 },
3577 {
3578 "include": "#attributes_context"
3579 },
3580 {
3581 "include": "#storage_types"
3582 },
3583 {
3584 "include": "source.cpp#number_literal"
3585 },
3586 {
3587 "include": "#string_context"
3588 },
3589 {
3590 "include": "source.cpp#comma"
3591 },
3592 {
3593 "include": "source.cpp#scope_resolution_inner_generated"
3594 },
3595 {
3596 "begin": "<",
3597 "end": ">|(?=(?<!\\\\)\n)",
3598 "beginCaptures": {
3599 "0": {
3600 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
3601 }
3602 },
3603 "endCaptures": {
3604 "0": {
3605 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
3606 }
3607 },
3608 "name": "meta.template.call.cpp",
3609 "patterns": [
3610 {
3611 "include": "#template_call_context"
3612 }
3613 ]
3614 },
3615 {
3616 "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}))*",
3617 "name": "entity.name.type.cpp"
3618 }
3619 ]
3620 },
3621 "18": {
3622 "patterns": [
3623 {
3624 "include": "#attributes_context"
3625 },
3626 {
3627 "include": "source.cpp#number_literal"
3628 }
3629 ]
3630 },
3631 "19": {
3632 "patterns": [
3633 {
3634 "include": "source.cpp#inline_comment"
3635 }
3636 ]
3637 },
3638 "20": {
3639 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3640 },
3641 "21": {
3642 "name": "comment.block.cpp"
3643 },
3644 "22": {
3645 "patterns": [
3646 {
3647 "match": "\\*\\/",
3648 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3649 },
3650 {
3651 "match": "\\*",
3652 "name": "comment.block.cpp"
3653 }
3654 ]
3655 },
3656 "23": {
3657 "patterns": [
3658 {
3659 "include": "source.cpp#inline_comment"
3660 }
3661 ]
3662 },
3663 "24": {
3664 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3665 },
3666 "25": {
3667 "name": "comment.block.cpp"
3668 },
3669 "26": {
3670 "patterns": [
3671 {
3672 "match": "\\*\\/",
3673 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3674 },
3675 {
3676 "match": "\\*",
3677 "name": "comment.block.cpp"
3678 }
3679 ]
3680 },
3681 "27": {
3682 "patterns": [
3683 {
3684 "match": "::",
3685 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
3686 },
3687 {
3688 "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)",
3689 "name": "entity.name.scope-resolution.type.cpp"
3690 },
3691 {
3692 "include": "#template_call_range"
3693 }
3694 ]
3695 },
3696 "28": {
3697 "patterns": [
3698 {
3699 "include": "#template_call_range"
3700 }
3701 ]
3702 },
3703 "29": {},
3704 "30": {
3705 "patterns": [
3706 {
3707 "include": "source.cpp#inline_comment"
3708 }
3709 ]
3710 },
3711 "31": {
3712 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3713 },
3714 "32": {
3715 "name": "comment.block.cpp"
3716 },
3717 "33": {
3718 "patterns": [
3719 {
3720 "match": "\\*\\/",
3721 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3722 },
3723 {
3724 "match": "\\*",
3725 "name": "comment.block.cpp"
3726 }
3727 ]
3728 },
3729 "34": {},
3730 "35": {
3731 "patterns": [
3732 {
3733 "match": "\\*",
3734 "name": "storage.modifier.pointer.cpp"
3735 },
3736 {
3737 "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
3738 "captures": {
3739 "1": {
3740 "patterns": [
3741 {
3742 "include": "source.cpp#inline_comment"
3743 }
3744 ]
3745 },
3746 "2": {
3747 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3748 },
3749 "3": {
3750 "name": "comment.block.cpp"
3751 },
3752 "4": {
3753 "patterns": [
3754 {
3755 "match": "\\*\\/",
3756 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3757 },
3758 {
3759 "match": "\\*",
3760 "name": "comment.block.cpp"
3761 }
3762 ]
3763 }
3764 },
3765 "name": "invalid.illegal.reference-type.cpp"
3766 },
3767 {
3768 "match": "\\&",
3769 "name": "storage.modifier.reference.cpp"
3770 }
3771 ]
3772 },
3773 "36": {
3774 "patterns": [
3775 {
3776 "include": "source.cpp#inline_comment"
3777 }
3778 ]
3779 },
3780 "37": {
3781 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3782 },
3783 "38": {
3784 "name": "comment.block.cpp"
3785 },
3786 "39": {
3787 "patterns": [
3788 {
3789 "match": "\\*\\/",
3790 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3791 },
3792 {
3793 "match": "\\*",
3794 "name": "comment.block.cpp"
3795 }
3796 ]
3797 },
3798 "40": {
3799 "patterns": [
3800 {
3801 "include": "source.cpp#inline_comment"
3802 }
3803 ]
3804 },
3805 "41": {
3806 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3807 },
3808 "42": {
3809 "name": "comment.block.cpp"
3810 },
3811 "43": {
3812 "patterns": [
3813 {
3814 "match": "\\*\\/",
3815 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3816 },
3817 {
3818 "match": "\\*",
3819 "name": "comment.block.cpp"
3820 }
3821 ]
3822 },
3823 "44": {
3824 "patterns": [
3825 {
3826 "include": "source.cpp#inline_comment"
3827 }
3828 ]
3829 },
3830 "45": {
3831 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3832 },
3833 "46": {
3834 "name": "comment.block.cpp"
3835 },
3836 "47": {
3837 "patterns": [
3838 {
3839 "match": "\\*\\/",
3840 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3841 },
3842 {
3843 "match": "\\*",
3844 "name": "comment.block.cpp"
3845 }
3846 ]
3847 },
3848 "48": {
3849 "patterns": [
3850 {
3851 "include": "source.cpp#inline_comment"
3852 }
3853 ]
3854 },
3855 "49": {
3856 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3857 },
3858 "50": {
3859 "name": "comment.block.cpp"
3860 },
3861 "51": {
3862 "patterns": [
3863 {
3864 "match": "\\*\\/",
3865 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3866 },
3867 {
3868 "match": "\\*",
3869 "name": "comment.block.cpp"
3870 }
3871 ]
3872 },
3873 "52": {
3874 "name": "storage.type.modifier.calling-convention.cpp"
3875 },
3876 "53": {
3877 "patterns": [
3878 {
3879 "include": "source.cpp#inline_comment"
3880 }
3881 ]
3882 },
3883 "54": {
3884 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3885 },
3886 "55": {
3887 "name": "comment.block.cpp"
3888 },
3889 "56": {
3890 "patterns": [
3891 {
3892 "match": "\\*\\/",
3893 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3894 },
3895 {
3896 "match": "\\*",
3897 "name": "comment.block.cpp"
3898 }
3899 ]
3900 },
3901 "57": {
3902 "patterns": [
3903 {
3904 "include": "source.cpp#scope_resolution_function_definition_inner_generated"
3905 }
3906 ]
3907 },
3908 "58": {
3909 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
3910 },
3911 "59": {
3912 "patterns": [
3913 {
3914 "include": "#template_call_range"
3915 }
3916 ]
3917 },
3918 "60": {},
3919 "61": {
3920 "name": "entity.name.function.definition.cpp"
3921 },
3922 "62": {
3923 "patterns": [
3924 {
3925 "include": "source.cpp#inline_comment"
3926 }
3927 ]
3928 },
3929 "63": {
3930 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
3931 },
3932 "64": {
3933 "name": "comment.block.cpp"
3934 },
3935 "65": {
3936 "patterns": [
3937 {
3938 "match": "\\*\\/",
3939 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
3940 },
3941 {
3942 "match": "\\*",
3943 "name": "comment.block.cpp"
3944 }
3945 ]
3946 }
3947 },
3948 "endCaptures": {},
3949 "name": "meta.function.definition.cpp",
3950 "patterns": [
3951 {
3952 "begin": "\\G ?",
3953 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
3954 "beginCaptures": {},
3955 "endCaptures": {
3956 "0": {
3957 "name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp"
3958 }
3959 },
3960 "name": "meta.head.function.definition.cpp",
3961 "patterns": [
3962 {
3963 "include": "#ever_present_context"
3964 },
3965 {
3966 "begin": "\\(",
3967 "end": "\\)|(?=(?<!\\\\)\n)",
3968 "beginCaptures": {
3969 "0": {
3970 "name": "punctuation.section.parameters.begin.bracket.round.cpp"
3971 }
3972 },
3973 "endCaptures": {
3974 "0": {
3975 "name": "punctuation.section.parameters.end.bracket.round.cpp"
3976 }
3977 },
3978 "contentName": "meta.function.definition.parameters",
3979 "patterns": [
3980 {
3981 "include": "#ever_present_context"
3982 },
3983 {
3984 "include": "#parameter_or_maybe_value"
3985 },
3986 {
3987 "include": "source.cpp#comma"
3988 },
3989 {
3990 "include": "#evaluation_context"
3991 }
3992 ]
3993 },
3994 {
3995 "match": "(?<=^|\\))(?:(?:\\s)+)?(->)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?: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<:.]))",
3996 "captures": {
3997 "1": {
3998 "name": "punctuation.definition.function.return-type.cpp"
3999 },
4000 "2": {
4001 "patterns": [
4002 {
4003 "include": "source.cpp#inline_comment"
4004 }
4005 ]
4006 },
4007 "3": {
4008 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4009 },
4010 "4": {
4011 "name": "comment.block.cpp"
4012 },
4013 "5": {
4014 "patterns": [
4015 {
4016 "match": "\\*\\/",
4017 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4018 },
4019 {
4020 "match": "\\*",
4021 "name": "comment.block.cpp"
4022 }
4023 ]
4024 },
4025 "6": {
4026 "name": "meta.qualified_type.cpp",
4027 "patterns": [
4028 {
4029 "match": "::",
4030 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
4031 },
4032 {
4033 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
4034 "name": "storage.type.$0.cpp"
4035 },
4036 {
4037 "include": "#attributes_context"
4038 },
4039 {
4040 "include": "#storage_types"
4041 },
4042 {
4043 "include": "source.cpp#number_literal"
4044 },
4045 {
4046 "include": "#string_context"
4047 },
4048 {
4049 "include": "source.cpp#comma"
4050 },
4051 {
4052 "include": "source.cpp#scope_resolution_inner_generated"
4053 },
4054 {
4055 "begin": "<",
4056 "end": ">|(?=(?<!\\\\)\n)",
4057 "beginCaptures": {
4058 "0": {
4059 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
4060 }
4061 },
4062 "endCaptures": {
4063 "0": {
4064 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
4065 }
4066 },
4067 "name": "meta.template.call.cpp",
4068 "patterns": [
4069 {
4070 "include": "#template_call_context"
4071 }
4072 ]
4073 },
4074 {
4075 "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}))*",
4076 "name": "entity.name.type.cpp"
4077 }
4078 ]
4079 },
4080 "7": {
4081 "patterns": [
4082 {
4083 "include": "#attributes_context"
4084 },
4085 {
4086 "include": "source.cpp#number_literal"
4087 }
4088 ]
4089 },
4090 "8": {
4091 "patterns": [
4092 {
4093 "include": "source.cpp#inline_comment"
4094 }
4095 ]
4096 },
4097 "9": {
4098 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4099 },
4100 "10": {
4101 "name": "comment.block.cpp"
4102 },
4103 "11": {
4104 "patterns": [
4105 {
4106 "match": "\\*\\/",
4107 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4108 },
4109 {
4110 "match": "\\*",
4111 "name": "comment.block.cpp"
4112 }
4113 ]
4114 },
4115 "12": {
4116 "patterns": [
4117 {
4118 "include": "source.cpp#inline_comment"
4119 }
4120 ]
4121 },
4122 "13": {
4123 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4124 },
4125 "14": {
4126 "name": "comment.block.cpp"
4127 },
4128 "15": {
4129 "patterns": [
4130 {
4131 "match": "\\*\\/",
4132 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4133 },
4134 {
4135 "match": "\\*",
4136 "name": "comment.block.cpp"
4137 }
4138 ]
4139 },
4140 "16": {
4141 "patterns": [
4142 {
4143 "match": "::",
4144 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
4145 },
4146 {
4147 "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)",
4148 "name": "entity.name.scope-resolution.type.cpp"
4149 },
4150 {
4151 "include": "#template_call_range"
4152 }
4153 ]
4154 },
4155 "17": {
4156 "patterns": [
4157 {
4158 "include": "#template_call_range"
4159 }
4160 ]
4161 },
4162 "18": {},
4163 "19": {
4164 "patterns": [
4165 {
4166 "include": "source.cpp#inline_comment"
4167 }
4168 ]
4169 },
4170 "20": {
4171 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4172 },
4173 "21": {
4174 "name": "comment.block.cpp"
4175 },
4176 "22": {
4177 "patterns": [
4178 {
4179 "match": "\\*\\/",
4180 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4181 },
4182 {
4183 "match": "\\*",
4184 "name": "comment.block.cpp"
4185 }
4186 ]
4187 },
4188 "23": {}
4189 }
4190 },
4191 {
4192 "include": "$self"
4193 }
4194 ]
4195 },
4196 {
4197 "begin": "(?<=\\{|<%|\\?\\?<)",
4198 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
4199 "beginCaptures": {},
4200 "endCaptures": {
4201 "0": {
4202 "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp"
4203 }
4204 },
4205 "name": "meta.body.function.definition.cpp",
4206 "patterns": [
4207 {
4208 "include": "#function_body_context"
4209 }
4210 ]
4211 },
4212 {
4213 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
4214 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
4215 "beginCaptures": {},
4216 "endCaptures": {},
4217 "name": "meta.tail.function.definition.cpp",
4218 "patterns": [
4219 {
4220 "include": "$self"
4221 }
4222 ]
4223 }
4224 ]
4225 },
4226 "function_parameter_context": {
4227 "patterns": [
4228 {
4229 "include": "#ever_present_context"
4230 },
4231 {
4232 "include": "#string_context"
4233 },
4234 {
4235 "include": "#parameter"
4236 },
4237 {
4238 "include": "source.cpp#comma"
4239 }
4240 ]
4241 },
4242 "function_pointer": {
4243 "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)?(\\()",
4244 "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)",
4245 "beginCaptures": {
4246 "1": {
4247 "name": "meta.qualified_type.cpp",
4248 "patterns": [
4249 {
4250 "match": "::",
4251 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
4252 },
4253 {
4254 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
4255 "name": "storage.type.$0.cpp"
4256 },
4257 {
4258 "include": "#attributes_context"
4259 },
4260 {
4261 "include": "#storage_types"
4262 },
4263 {
4264 "include": "source.cpp#number_literal"
4265 },
4266 {
4267 "include": "#string_context"
4268 },
4269 {
4270 "include": "source.cpp#comma"
4271 },
4272 {
4273 "include": "source.cpp#scope_resolution_inner_generated"
4274 },
4275 {
4276 "begin": "<",
4277 "end": ">|(?=(?<!\\\\)\n)",
4278 "beginCaptures": {
4279 "0": {
4280 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
4281 }
4282 },
4283 "endCaptures": {
4284 "0": {
4285 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
4286 }
4287 },
4288 "name": "meta.template.call.cpp",
4289 "patterns": [
4290 {
4291 "include": "#template_call_context"
4292 }
4293 ]
4294 },
4295 {
4296 "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}))*",
4297 "name": "entity.name.type.cpp"
4298 }
4299 ]
4300 },
4301 "2": {
4302 "patterns": [
4303 {
4304 "include": "#attributes_context"
4305 },
4306 {
4307 "include": "source.cpp#number_literal"
4308 }
4309 ]
4310 },
4311 "3": {
4312 "patterns": [
4313 {
4314 "include": "source.cpp#inline_comment"
4315 }
4316 ]
4317 },
4318 "4": {
4319 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4320 },
4321 "5": {
4322 "name": "comment.block.cpp"
4323 },
4324 "6": {
4325 "patterns": [
4326 {
4327 "match": "\\*\\/",
4328 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4329 },
4330 {
4331 "match": "\\*",
4332 "name": "comment.block.cpp"
4333 }
4334 ]
4335 },
4336 "7": {
4337 "patterns": [
4338 {
4339 "include": "source.cpp#inline_comment"
4340 }
4341 ]
4342 },
4343 "8": {
4344 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4345 },
4346 "9": {
4347 "name": "comment.block.cpp"
4348 },
4349 "10": {
4350 "patterns": [
4351 {
4352 "match": "\\*\\/",
4353 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4354 },
4355 {
4356 "match": "\\*",
4357 "name": "comment.block.cpp"
4358 }
4359 ]
4360 },
4361 "11": {
4362 "patterns": [
4363 {
4364 "match": "::",
4365 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
4366 },
4367 {
4368 "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)",
4369 "name": "entity.name.scope-resolution.type.cpp"
4370 },
4371 {
4372 "include": "#template_call_range"
4373 }
4374 ]
4375 },
4376 "12": {
4377 "patterns": [
4378 {
4379 "include": "#template_call_range"
4380 }
4381 ]
4382 },
4383 "13": {},
4384 "14": {
4385 "patterns": [
4386 {
4387 "include": "source.cpp#inline_comment"
4388 }
4389 ]
4390 },
4391 "15": {
4392 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4393 },
4394 "16": {
4395 "name": "comment.block.cpp"
4396 },
4397 "17": {
4398 "patterns": [
4399 {
4400 "match": "\\*\\/",
4401 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4402 },
4403 {
4404 "match": "\\*",
4405 "name": "comment.block.cpp"
4406 }
4407 ]
4408 },
4409 "18": {},
4410 "19": {
4411 "patterns": [
4412 {
4413 "match": "\\*",
4414 "name": "storage.modifier.pointer.cpp"
4415 },
4416 {
4417 "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
4418 "captures": {
4419 "1": {
4420 "patterns": [
4421 {
4422 "include": "source.cpp#inline_comment"
4423 }
4424 ]
4425 },
4426 "2": {
4427 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4428 },
4429 "3": {
4430 "name": "comment.block.cpp"
4431 },
4432 "4": {
4433 "patterns": [
4434 {
4435 "match": "\\*\\/",
4436 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4437 },
4438 {
4439 "match": "\\*",
4440 "name": "comment.block.cpp"
4441 }
4442 ]
4443 }
4444 },
4445 "name": "invalid.illegal.reference-type.cpp"
4446 },
4447 {
4448 "match": "\\&",
4449 "name": "storage.modifier.reference.cpp"
4450 }
4451 ]
4452 },
4453 "20": {
4454 "patterns": [
4455 {
4456 "include": "source.cpp#inline_comment"
4457 }
4458 ]
4459 },
4460 "21": {
4461 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4462 },
4463 "22": {
4464 "name": "comment.block.cpp"
4465 },
4466 "23": {
4467 "patterns": [
4468 {
4469 "match": "\\*\\/",
4470 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4471 },
4472 {
4473 "match": "\\*",
4474 "name": "comment.block.cpp"
4475 }
4476 ]
4477 },
4478 "24": {
4479 "patterns": [
4480 {
4481 "include": "source.cpp#inline_comment"
4482 }
4483 ]
4484 },
4485 "25": {
4486 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4487 },
4488 "26": {
4489 "name": "comment.block.cpp"
4490 },
4491 "27": {
4492 "patterns": [
4493 {
4494 "match": "\\*\\/",
4495 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4496 },
4497 {
4498 "match": "\\*",
4499 "name": "comment.block.cpp"
4500 }
4501 ]
4502 },
4503 "28": {
4504 "patterns": [
4505 {
4506 "include": "source.cpp#inline_comment"
4507 }
4508 ]
4509 },
4510 "29": {
4511 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4512 },
4513 "30": {
4514 "name": "comment.block.cpp"
4515 },
4516 "31": {
4517 "patterns": [
4518 {
4519 "match": "\\*\\/",
4520 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4521 },
4522 {
4523 "match": "\\*",
4524 "name": "comment.block.cpp"
4525 }
4526 ]
4527 },
4528 "32": {
4529 "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
4530 },
4531 "33": {
4532 "name": "punctuation.definition.function.pointer.dereference.cpp"
4533 },
4534 "34": {
4535 "name": "variable.other.definition.pointer.function.cpp"
4536 },
4537 "35": {
4538 "name": "punctuation.definition.begin.bracket.square.cpp"
4539 },
4540 "36": {
4541 "patterns": [
4542 {
4543 "include": "#evaluation_context"
4544 }
4545 ]
4546 },
4547 "37": {
4548 "name": "punctuation.definition.end.bracket.square.cpp"
4549 },
4550 "38": {
4551 "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
4552 },
4553 "39": {
4554 "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
4555 }
4556 },
4557 "endCaptures": {
4558 "1": {
4559 "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
4560 },
4561 "2": {
4562 "patterns": [
4563 {
4564 "include": "source.cpp#inline_comment"
4565 }
4566 ]
4567 },
4568 "3": {
4569 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4570 },
4571 "4": {
4572 "name": "comment.block.cpp"
4573 },
4574 "5": {
4575 "patterns": [
4576 {
4577 "match": "\\*\\/",
4578 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4579 },
4580 {
4581 "match": "\\*",
4582 "name": "comment.block.cpp"
4583 }
4584 ]
4585 }
4586 },
4587 "patterns": [
4588 {
4589 "include": "#function_parameter_context"
4590 }
4591 ]
4592 },
4593 "function_pointer_parameter": {
4594 "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)?(\\()",
4595 "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)",
4596 "beginCaptures": {
4597 "1": {
4598 "name": "meta.qualified_type.cpp",
4599 "patterns": [
4600 {
4601 "match": "::",
4602 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
4603 },
4604 {
4605 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
4606 "name": "storage.type.$0.cpp"
4607 },
4608 {
4609 "include": "#attributes_context"
4610 },
4611 {
4612 "include": "#storage_types"
4613 },
4614 {
4615 "include": "source.cpp#number_literal"
4616 },
4617 {
4618 "include": "#string_context"
4619 },
4620 {
4621 "include": "source.cpp#comma"
4622 },
4623 {
4624 "include": "source.cpp#scope_resolution_inner_generated"
4625 },
4626 {
4627 "begin": "<",
4628 "end": ">|(?=(?<!\\\\)\n)",
4629 "beginCaptures": {
4630 "0": {
4631 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
4632 }
4633 },
4634 "endCaptures": {
4635 "0": {
4636 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
4637 }
4638 },
4639 "name": "meta.template.call.cpp",
4640 "patterns": [
4641 {
4642 "include": "#template_call_context"
4643 }
4644 ]
4645 },
4646 {
4647 "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}))*",
4648 "name": "entity.name.type.cpp"
4649 }
4650 ]
4651 },
4652 "2": {
4653 "patterns": [
4654 {
4655 "include": "#attributes_context"
4656 },
4657 {
4658 "include": "source.cpp#number_literal"
4659 }
4660 ]
4661 },
4662 "3": {
4663 "patterns": [
4664 {
4665 "include": "source.cpp#inline_comment"
4666 }
4667 ]
4668 },
4669 "4": {
4670 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4671 },
4672 "5": {
4673 "name": "comment.block.cpp"
4674 },
4675 "6": {
4676 "patterns": [
4677 {
4678 "match": "\\*\\/",
4679 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4680 },
4681 {
4682 "match": "\\*",
4683 "name": "comment.block.cpp"
4684 }
4685 ]
4686 },
4687 "7": {
4688 "patterns": [
4689 {
4690 "include": "source.cpp#inline_comment"
4691 }
4692 ]
4693 },
4694 "8": {
4695 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4696 },
4697 "9": {
4698 "name": "comment.block.cpp"
4699 },
4700 "10": {
4701 "patterns": [
4702 {
4703 "match": "\\*\\/",
4704 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4705 },
4706 {
4707 "match": "\\*",
4708 "name": "comment.block.cpp"
4709 }
4710 ]
4711 },
4712 "11": {
4713 "patterns": [
4714 {
4715 "match": "::",
4716 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
4717 },
4718 {
4719 "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)",
4720 "name": "entity.name.scope-resolution.type.cpp"
4721 },
4722 {
4723 "include": "#template_call_range"
4724 }
4725 ]
4726 },
4727 "12": {
4728 "patterns": [
4729 {
4730 "include": "#template_call_range"
4731 }
4732 ]
4733 },
4734 "13": {},
4735 "14": {
4736 "patterns": [
4737 {
4738 "include": "source.cpp#inline_comment"
4739 }
4740 ]
4741 },
4742 "15": {
4743 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4744 },
4745 "16": {
4746 "name": "comment.block.cpp"
4747 },
4748 "17": {
4749 "patterns": [
4750 {
4751 "match": "\\*\\/",
4752 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4753 },
4754 {
4755 "match": "\\*",
4756 "name": "comment.block.cpp"
4757 }
4758 ]
4759 },
4760 "18": {},
4761 "19": {
4762 "patterns": [
4763 {
4764 "match": "\\*",
4765 "name": "storage.modifier.pointer.cpp"
4766 },
4767 {
4768 "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
4769 "captures": {
4770 "1": {
4771 "patterns": [
4772 {
4773 "include": "source.cpp#inline_comment"
4774 }
4775 ]
4776 },
4777 "2": {
4778 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4779 },
4780 "3": {
4781 "name": "comment.block.cpp"
4782 },
4783 "4": {
4784 "patterns": [
4785 {
4786 "match": "\\*\\/",
4787 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4788 },
4789 {
4790 "match": "\\*",
4791 "name": "comment.block.cpp"
4792 }
4793 ]
4794 }
4795 },
4796 "name": "invalid.illegal.reference-type.cpp"
4797 },
4798 {
4799 "match": "\\&",
4800 "name": "storage.modifier.reference.cpp"
4801 }
4802 ]
4803 },
4804 "20": {
4805 "patterns": [
4806 {
4807 "include": "source.cpp#inline_comment"
4808 }
4809 ]
4810 },
4811 "21": {
4812 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4813 },
4814 "22": {
4815 "name": "comment.block.cpp"
4816 },
4817 "23": {
4818 "patterns": [
4819 {
4820 "match": "\\*\\/",
4821 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4822 },
4823 {
4824 "match": "\\*",
4825 "name": "comment.block.cpp"
4826 }
4827 ]
4828 },
4829 "24": {
4830 "patterns": [
4831 {
4832 "include": "source.cpp#inline_comment"
4833 }
4834 ]
4835 },
4836 "25": {
4837 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4838 },
4839 "26": {
4840 "name": "comment.block.cpp"
4841 },
4842 "27": {
4843 "patterns": [
4844 {
4845 "match": "\\*\\/",
4846 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4847 },
4848 {
4849 "match": "\\*",
4850 "name": "comment.block.cpp"
4851 }
4852 ]
4853 },
4854 "28": {
4855 "patterns": [
4856 {
4857 "include": "source.cpp#inline_comment"
4858 }
4859 ]
4860 },
4861 "29": {
4862 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4863 },
4864 "30": {
4865 "name": "comment.block.cpp"
4866 },
4867 "31": {
4868 "patterns": [
4869 {
4870 "match": "\\*\\/",
4871 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4872 },
4873 {
4874 "match": "\\*",
4875 "name": "comment.block.cpp"
4876 }
4877 ]
4878 },
4879 "32": {
4880 "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
4881 },
4882 "33": {
4883 "name": "punctuation.definition.function.pointer.dereference.cpp"
4884 },
4885 "34": {
4886 "name": "variable.parameter.pointer.function.cpp"
4887 },
4888 "35": {
4889 "name": "punctuation.definition.begin.bracket.square.cpp"
4890 },
4891 "36": {
4892 "patterns": [
4893 {
4894 "include": "#evaluation_context"
4895 }
4896 ]
4897 },
4898 "37": {
4899 "name": "punctuation.definition.end.bracket.square.cpp"
4900 },
4901 "38": {
4902 "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
4903 },
4904 "39": {
4905 "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
4906 }
4907 },
4908 "endCaptures": {
4909 "1": {
4910 "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
4911 },
4912 "2": {
4913 "patterns": [
4914 {
4915 "include": "source.cpp#inline_comment"
4916 }
4917 ]
4918 },
4919 "3": {
4920 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
4921 },
4922 "4": {
4923 "name": "comment.block.cpp"
4924 },
4925 "5": {
4926 "patterns": [
4927 {
4928 "match": "\\*\\/",
4929 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
4930 },
4931 {
4932 "match": "\\*",
4933 "name": "comment.block.cpp"
4934 }
4935 ]
4936 }
4937 },
4938 "patterns": [
4939 {
4940 "include": "#function_parameter_context"
4941 }
4942 ]
4943 },
4944 "gcc_attributes": {
4945 "begin": "__attribute(?:__)?\\s*\\(\\s*\\(",
4946 "end": "\\)\\s*\\)|(?=(?<!\\\\)\n)",
4947 "beginCaptures": {
4948 "0": {
4949 "name": "punctuation.section.attribute.begin.cpp"
4950 }
4951 },
4952 "endCaptures": {
4953 "0": {
4954 "name": "punctuation.section.attribute.end.cpp"
4955 }
4956 },
4957 "name": "support.other.attribute.cpp",
4958 "patterns": [
4959 {
4960 "include": "#attributes_context"
4961 },
4962 {
4963 "begin": "\\(",
4964 "end": "\\)|(?=(?<!\\\\)\n)",
4965 "beginCaptures": {},
4966 "endCaptures": {},
4967 "patterns": [
4968 {
4969 "include": "#attributes_context"
4970 },
4971 {
4972 "include": "#string_context"
4973 }
4974 ]
4975 },
4976 {
4977 "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))",
4978 "captures": {
4979 "1": {
4980 "name": "keyword.other.using.directive.cpp"
4981 },
4982 "2": {
4983 "name": "entity.name.namespace.cpp"
4984 }
4985 }
4986 },
4987 {
4988 "match": ",",
4989 "name": "punctuation.separator.attribute.cpp"
4990 },
4991 {
4992 "match": ":",
4993 "name": "punctuation.accessor.attribute.cpp"
4994 },
4995 {
4996 "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)(?=::)",
4997 "name": "entity.name.namespace.cpp"
4998 },
4999 {
5000 "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)",
5001 "name": "entity.other.attribute.$0.cpp"
5002 },
5003 {
5004 "include": "source.cpp#number_literal"
5005 }
5006 ]
5007 },
5008 "inheritance_context": {
5009 "patterns": [
5010 {
5011 "include": "#ever_present_context"
5012 },
5013 {
5014 "match": ",",
5015 "name": "punctuation.separator.delimiter.comma.inheritance.cpp"
5016 },
5017 {
5018 "match": "(?<!\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\w)",
5019 "name": "storage.type.modifier.access.$0.cpp"
5020 },
5021 {
5022 "match": "(?<!\\w)virtual(?!\\w)",
5023 "name": "storage.type.modifier.virtual.cpp"
5024 },
5025 {
5026 "match": "(?<=protected|virtual|private|public|,|:)(?:(?:\\s)+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?: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<:.]))",
5027 "captures": {
5028 "1": {
5029 "name": "meta.qualified_type.cpp",
5030 "patterns": [
5031 {
5032 "match": "::",
5033 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
5034 },
5035 {
5036 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
5037 "name": "storage.type.$0.cpp"
5038 },
5039 {
5040 "include": "#attributes_context"
5041 },
5042 {
5043 "include": "#storage_types"
5044 },
5045 {
5046 "include": "source.cpp#number_literal"
5047 },
5048 {
5049 "include": "#string_context"
5050 },
5051 {
5052 "include": "source.cpp#comma"
5053 },
5054 {
5055 "include": "source.cpp#scope_resolution_inner_generated"
5056 },
5057 {
5058 "begin": "<",
5059 "end": ">|(?=(?<!\\\\)\n)",
5060 "beginCaptures": {
5061 "0": {
5062 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
5063 }
5064 },
5065 "endCaptures": {
5066 "0": {
5067 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
5068 }
5069 },
5070 "name": "meta.template.call.cpp",
5071 "patterns": [
5072 {
5073 "include": "#template_call_context"
5074 }
5075 ]
5076 },
5077 {
5078 "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}))*",
5079 "name": "entity.name.type.cpp"
5080 }
5081 ]
5082 },
5083 "2": {
5084 "patterns": [
5085 {
5086 "include": "#attributes_context"
5087 },
5088 {
5089 "include": "source.cpp#number_literal"
5090 }
5091 ]
5092 },
5093 "3": {
5094 "patterns": [
5095 {
5096 "include": "source.cpp#inline_comment"
5097 }
5098 ]
5099 },
5100 "4": {
5101 "patterns": [
5102 {
5103 "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
5104 "captures": {
5105 "1": {
5106 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5107 },
5108 "2": {
5109 "name": "comment.block.cpp"
5110 },
5111 "3": {
5112 "patterns": [
5113 {
5114 "match": "\\*\\/",
5115 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5116 },
5117 {
5118 "match": "\\*",
5119 "name": "comment.block.cpp"
5120 }
5121 ]
5122 }
5123 }
5124 }
5125 ]
5126 },
5127 "5": {
5128 "patterns": [
5129 {
5130 "include": "source.cpp#inline_comment"
5131 }
5132 ]
5133 },
5134 "6": {
5135 "patterns": [
5136 {
5137 "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
5138 "captures": {
5139 "1": {
5140 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5141 },
5142 "2": {
5143 "name": "comment.block.cpp"
5144 },
5145 "3": {
5146 "patterns": [
5147 {
5148 "match": "\\*\\/",
5149 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5150 },
5151 {
5152 "match": "\\*",
5153 "name": "comment.block.cpp"
5154 }
5155 ]
5156 }
5157 }
5158 }
5159 ]
5160 },
5161 "7": {
5162 "patterns": [
5163 {
5164 "match": "::",
5165 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
5166 },
5167 {
5168 "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)",
5169 "name": "entity.name.scope-resolution.type.cpp"
5170 },
5171 {
5172 "include": "#template_call_range"
5173 }
5174 ]
5175 },
5176 "8": {
5177 "patterns": [
5178 {
5179 "include": "#template_call_range"
5180 }
5181 ]
5182 },
5183 "9": {},
5184 "10": {
5185 "patterns": [
5186 {
5187 "include": "source.cpp#inline_comment"
5188 }
5189 ]
5190 },
5191 "11": {
5192 "patterns": [
5193 {
5194 "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
5195 "captures": {
5196 "1": {
5197 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5198 },
5199 "2": {
5200 "name": "comment.block.cpp"
5201 },
5202 "3": {
5203 "patterns": [
5204 {
5205 "match": "\\*\\/",
5206 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5207 },
5208 {
5209 "match": "\\*",
5210 "name": "comment.block.cpp"
5211 }
5212 ]
5213 }
5214 }
5215 }
5216 ]
5217 },
5218 "12": {}
5219 }
5220 }
5221 ]
5222 },
5223 "lambdas": {
5224 "begin": "(?:(?<=[^\\s]|^)(?<![\\w\\]\\)\\[\\*&\">])|(?<=\\Wreturn|^return))(?:(?:\\s)+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((?<!\\[)\\[(?!\\[)(?:[^\\[\\]]*+\\g<3>?)++\\]))*+)(\\](?!((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))[\\[\\];]))",
5225 "end": "(?<=[;}])|(?=(?<!\\\\)\n)",
5226 "beginCaptures": {
5227 "1": {
5228 "name": "punctuation.definition.capture.begin.lambda.cpp"
5229 },
5230 "2": {
5231 "name": "meta.lambda.capture.cpp",
5232 "patterns": [
5233 {
5234 "include": "source.cpp#the_this_keyword"
5235 },
5236 {
5237 "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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",
5238 "captures": {
5239 "1": {
5240 "name": "variable.parameter.capture.cpp"
5241 },
5242 "2": {
5243 "patterns": [
5244 {
5245 "include": "source.cpp#inline_comment"
5246 }
5247 ]
5248 },
5249 "3": {
5250 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5251 },
5252 "4": {
5253 "name": "comment.block.cpp"
5254 },
5255 "5": {
5256 "patterns": [
5257 {
5258 "match": "\\*\\/",
5259 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5260 },
5261 {
5262 "match": "\\*",
5263 "name": "comment.block.cpp"
5264 }
5265 ]
5266 },
5267 "6": {
5268 "name": "punctuation.separator.delimiter.comma.cpp"
5269 },
5270 "7": {
5271 "name": "keyword.operator.assignment.cpp"
5272 }
5273 }
5274 },
5275 {
5276 "include": "#evaluation_context"
5277 }
5278 ]
5279 },
5280 "3": {},
5281 "4": {
5282 "name": "punctuation.definition.capture.end.lambda.cpp"
5283 },
5284 "5": {
5285 "patterns": [
5286 {
5287 "include": "source.cpp#inline_comment"
5288 }
5289 ]
5290 },
5291 "6": {
5292 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5293 },
5294 "7": {
5295 "name": "comment.block.cpp"
5296 },
5297 "8": {
5298 "patterns": [
5299 {
5300 "match": "\\*\\/",
5301 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5302 },
5303 {
5304 "match": "\\*",
5305 "name": "comment.block.cpp"
5306 }
5307 ]
5308 }
5309 },
5310 "endCaptures": {},
5311 "patterns": [
5312 {
5313 "begin": "\\(",
5314 "end": "\\)|(?=(?<!\\\\)\n)",
5315 "beginCaptures": {
5316 "0": {
5317 "name": "punctuation.definition.parameters.begin.lambda.cpp"
5318 }
5319 },
5320 "endCaptures": {
5321 "0": {
5322 "name": "punctuation.definition.parameters.end.lambda.cpp"
5323 }
5324 },
5325 "name": "meta.function.definition.parameters.lambda.cpp",
5326 "patterns": [
5327 {
5328 "include": "#function_parameter_context"
5329 }
5330 ]
5331 },
5332 {
5333 "match": "(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\w)",
5334 "name": "storage.modifier.lambda.$0.cpp"
5335 },
5336 {
5337 "match": "(->)((?:.+?(?=\\{|$))?)",
5338 "captures": {
5339 "1": {
5340 "name": "punctuation.definition.lambda.return-type.cpp"
5341 },
5342 "2": {
5343 "name": "storage.type.return-type.lambda.cpp"
5344 }
5345 }
5346 },
5347 {
5348 "begin": "\\{",
5349 "end": "\\}|(?=(?<!\\\\)\n)",
5350 "beginCaptures": {
5351 "0": {
5352 "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp"
5353 }
5354 },
5355 "endCaptures": {
5356 "0": {
5357 "name": "punctuation.section.block.end.bracket.curly.lambda.cpp"
5358 }
5359 },
5360 "name": "meta.function.definition.body.lambda.cpp",
5361 "patterns": [
5362 {
5363 "include": "$self"
5364 }
5365 ]
5366 }
5367 ]
5368 },
5369 "line": {
5370 "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?line\\b",
5371 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
5372 "beginCaptures": {
5373 "0": {
5374 "name": "keyword.control.directive.line.cpp"
5375 },
5376 "1": {
5377 "patterns": [
5378 {
5379 "include": "source.cpp#inline_comment"
5380 }
5381 ]
5382 },
5383 "2": {
5384 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5385 },
5386 "3": {
5387 "name": "comment.block.cpp"
5388 },
5389 "4": {
5390 "patterns": [
5391 {
5392 "match": "\\*\\/",
5393 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5394 },
5395 {
5396 "match": "\\*",
5397 "name": "comment.block.cpp"
5398 }
5399 ]
5400 },
5401 "5": {
5402 "name": "punctuation.definition.directive.cpp"
5403 }
5404 },
5405 "endCaptures": {},
5406 "name": "meta.preprocessor.line.cpp",
5407 "patterns": [
5408 {
5409 "include": "#string_context"
5410 },
5411 {
5412 "include": "#preprocessor_number_literal"
5413 },
5414 {
5415 "include": "source.cpp#line_continuation_character"
5416 }
5417 ]
5418 },
5419 "line_comment": {
5420 "begin": "\\s*+(\\/\\/)",
5421 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
5422 "beginCaptures": {
5423 "1": {
5424 "name": "punctuation.definition.comment.cpp"
5425 }
5426 },
5427 "endCaptures": {},
5428 "name": "comment.line.double-slash.cpp",
5429 "patterns": [
5430 {
5431 "include": "source.cpp#line_continuation_character"
5432 }
5433 ]
5434 },
5435 "macro": {
5436 "begin": "(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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))",
5437 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
5438 "beginCaptures": {
5439 "1": {
5440 "name": "keyword.control.directive.define.cpp"
5441 },
5442 "2": {
5443 "patterns": [
5444 {
5445 "include": "source.cpp#inline_comment"
5446 }
5447 ]
5448 },
5449 "3": {
5450 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5451 },
5452 "4": {
5453 "name": "comment.block.cpp"
5454 },
5455 "5": {
5456 "patterns": [
5457 {
5458 "match": "\\*\\/",
5459 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5460 },
5461 {
5462 "match": "\\*",
5463 "name": "comment.block.cpp"
5464 }
5465 ]
5466 },
5467 "6": {
5468 "name": "punctuation.definition.directive.cpp"
5469 },
5470 "7": {
5471 "name": "entity.name.function.preprocessor.cpp"
5472 }
5473 },
5474 "endCaptures": {},
5475 "name": "meta.preprocessor.macro.cpp",
5476 "patterns": [
5477 {
5478 "match": "\\G(?:(?:\\s)+)?(\\()([^\\(]*)(\\))",
5479 "captures": {
5480 "1": {
5481 "name": "punctuation.definition.parameters.begin.preprocessor.cpp"
5482 },
5483 "2": {
5484 "name": "meta.function.preprocessor.parameters.cpp",
5485 "patterns": [
5486 {
5487 "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)+)?",
5488 "captures": {
5489 "1": {
5490 "name": "variable.parameter.preprocessor.cpp"
5491 }
5492 }
5493 },
5494 {
5495 "match": ",",
5496 "name": "punctuation.separator.parameters.cpp"
5497 },
5498 {
5499 "match": "\\.\\.\\.",
5500 "name": "punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp"
5501 }
5502 ]
5503 },
5504 "3": {
5505 "name": "punctuation.definition.parameters.end.preprocessor.cpp"
5506 }
5507 }
5508 },
5509 {
5510 "include": "#macro_context"
5511 },
5512 {
5513 "include": "source.cpp#macro_argument"
5514 }
5515 ]
5516 },
5517 "macro_context": {
5518 "patterns": [
5519 {
5520 "include": "source.cpp.embedded.macro"
5521 }
5522 ]
5523 },
5524 "method_access": {
5525 "begin": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)?(\\()",
5526 "end": "\\)|(?=(?<!\\\\)\n)",
5527 "beginCaptures": {
5528 "1": {
5529 "patterns": [
5530 {
5531 "include": "source.cpp#inline_comment"
5532 }
5533 ]
5534 },
5535 "2": {
5536 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5537 },
5538 "3": {
5539 "name": "comment.block.cpp"
5540 },
5541 "4": {
5542 "patterns": [
5543 {
5544 "match": "\\*\\/",
5545 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5546 },
5547 {
5548 "match": "\\*",
5549 "name": "comment.block.cpp"
5550 }
5551 ]
5552 },
5553 "5": {
5554 "name": "variable.language.this.cpp"
5555 },
5556 "6": {
5557 "name": "variable.other.object.access.cpp"
5558 },
5559 "7": {
5560 "name": "punctuation.separator.dot-access.cpp"
5561 },
5562 "8": {
5563 "name": "punctuation.separator.pointer-access.cpp"
5564 },
5565 "9": {
5566 "patterns": [
5567 {
5568 "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
5569 "captures": {
5570 "1": {
5571 "patterns": [
5572 {
5573 "include": "source.cpp#inline_comment"
5574 }
5575 ]
5576 },
5577 "2": {
5578 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5579 },
5580 "3": {
5581 "name": "comment.block.cpp"
5582 },
5583 "4": {
5584 "patterns": [
5585 {
5586 "match": "\\*\\/",
5587 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5588 },
5589 {
5590 "match": "\\*",
5591 "name": "comment.block.cpp"
5592 }
5593 ]
5594 },
5595 "5": {
5596 "name": "variable.language.this.cpp"
5597 },
5598 "6": {
5599 "name": "variable.other.object.property.cpp"
5600 },
5601 "7": {
5602 "name": "punctuation.separator.dot-access.cpp"
5603 },
5604 "8": {
5605 "name": "punctuation.separator.pointer-access.cpp"
5606 }
5607 }
5608 },
5609 {
5610 "match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
5611 "captures": {
5612 "1": {
5613 "patterns": [
5614 {
5615 "include": "source.cpp#inline_comment"
5616 }
5617 ]
5618 },
5619 "2": {
5620 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5621 },
5622 "3": {
5623 "name": "comment.block.cpp"
5624 },
5625 "4": {
5626 "patterns": [
5627 {
5628 "match": "\\*\\/",
5629 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5630 },
5631 {
5632 "match": "\\*",
5633 "name": "comment.block.cpp"
5634 }
5635 ]
5636 },
5637 "5": {
5638 "name": "variable.language.this.cpp"
5639 },
5640 "6": {
5641 "name": "variable.other.object.access.cpp"
5642 },
5643 "7": {
5644 "name": "punctuation.separator.dot-access.cpp"
5645 },
5646 "8": {
5647 "name": "punctuation.separator.pointer-access.cpp"
5648 }
5649 }
5650 },
5651 {
5652 "include": "source.cpp#member_access"
5653 },
5654 {
5655 "include": "#method_access"
5656 }
5657 ]
5658 },
5659 "10": {
5660 "name": "entity.name.function.member.cpp"
5661 },
5662 "11": {
5663 "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp"
5664 }
5665 },
5666 "endCaptures": {
5667 "0": {
5668 "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp"
5669 }
5670 },
5671 "patterns": [
5672 {
5673 "include": "#evaluation_context"
5674 }
5675 ]
5676 },
5677 "ms_attributes": {
5678 "begin": "__declspec\\(",
5679 "end": "\\)|(?=(?<!\\\\)\n)",
5680 "beginCaptures": {
5681 "0": {
5682 "name": "punctuation.section.attribute.begin.cpp"
5683 }
5684 },
5685 "endCaptures": {
5686 "0": {
5687 "name": "punctuation.section.attribute.end.cpp"
5688 }
5689 },
5690 "name": "support.other.attribute.cpp",
5691 "patterns": [
5692 {
5693 "include": "#attributes_context"
5694 },
5695 {
5696 "begin": "\\(",
5697 "end": "\\)|(?=(?<!\\\\)\n)",
5698 "beginCaptures": {},
5699 "endCaptures": {},
5700 "patterns": [
5701 {
5702 "include": "#attributes_context"
5703 },
5704 {
5705 "include": "#string_context"
5706 }
5707 ]
5708 },
5709 {
5710 "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))",
5711 "captures": {
5712 "1": {
5713 "name": "keyword.other.using.directive.cpp"
5714 },
5715 "2": {
5716 "name": "entity.name.namespace.cpp"
5717 }
5718 }
5719 },
5720 {
5721 "match": ",",
5722 "name": "punctuation.separator.attribute.cpp"
5723 },
5724 {
5725 "match": ":",
5726 "name": "punctuation.accessor.attribute.cpp"
5727 },
5728 {
5729 "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)(?=::)",
5730 "name": "entity.name.namespace.cpp"
5731 },
5732 {
5733 "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)",
5734 "name": "entity.other.attribute.$0.cpp"
5735 },
5736 {
5737 "include": "source.cpp#number_literal"
5738 }
5739 ]
5740 },
5741 "namespace_block": {
5742 "begin": "((?<!\\w)namespace(?!\\w))",
5743 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
5744 "beginCaptures": {
5745 "0": {
5746 "name": "meta.head.namespace.cpp"
5747 },
5748 "1": {
5749 "name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"
5750 }
5751 },
5752 "endCaptures": {},
5753 "name": "meta.block.namespace.cpp",
5754 "patterns": [
5755 {
5756 "begin": "\\G ?",
5757 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
5758 "beginCaptures": {},
5759 "endCaptures": {
5760 "0": {
5761 "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp"
5762 }
5763 },
5764 "name": "meta.head.namespace.cpp",
5765 "patterns": [
5766 {
5767 "include": "#ever_present_context"
5768 },
5769 {
5770 "include": "#attributes_context"
5771 },
5772 {
5773 "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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))?",
5774 "captures": {
5775 "1": {
5776 "patterns": [
5777 {
5778 "include": "source.cpp#scope_resolution_namespace_block_inner_generated"
5779 }
5780 ]
5781 },
5782 "2": {
5783 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
5784 },
5785 "3": {
5786 "patterns": [
5787 {
5788 "include": "#template_call_range"
5789 }
5790 ]
5791 },
5792 "4": {},
5793 "5": {
5794 "name": "entity.name.namespace.cpp"
5795 },
5796 "6": {
5797 "name": "punctuation.separator.scope-resolution.namespace.block.cpp"
5798 },
5799 "7": {
5800 "name": "storage.modifier.inline.cpp"
5801 }
5802 }
5803 }
5804 ]
5805 },
5806 {
5807 "begin": "(?<=\\{|<%|\\?\\?<)",
5808 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
5809 "beginCaptures": {},
5810 "endCaptures": {
5811 "0": {
5812 "name": "punctuation.section.block.end.bracket.curly.namespace.cpp"
5813 }
5814 },
5815 "name": "meta.body.namespace.cpp",
5816 "patterns": [
5817 {
5818 "include": "$self"
5819 }
5820 ]
5821 },
5822 {
5823 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
5824 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
5825 "beginCaptures": {},
5826 "endCaptures": {},
5827 "name": "meta.tail.namespace.cpp",
5828 "patterns": [
5829 {
5830 "include": "$self"
5831 }
5832 ]
5833 }
5834 ]
5835 },
5836 "noexcept_operator": {
5837 "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
5838 "end": "\\)|(?=(?<!\\\\)\n)",
5839 "beginCaptures": {
5840 "1": {
5841 "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"
5842 },
5843 "2": {
5844 "patterns": [
5845 {
5846 "include": "source.cpp#inline_comment"
5847 }
5848 ]
5849 },
5850 "3": {
5851 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5852 },
5853 "4": {
5854 "name": "comment.block.cpp"
5855 },
5856 "5": {
5857 "patterns": [
5858 {
5859 "match": "\\*\\/",
5860 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5861 },
5862 {
5863 "match": "\\*",
5864 "name": "comment.block.cpp"
5865 }
5866 ]
5867 },
5868 "6": {
5869 "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"
5870 }
5871 },
5872 "endCaptures": {
5873 "0": {
5874 "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
5875 }
5876 },
5877 "contentName": "meta.arguments.operator.noexcept",
5878 "patterns": [
5879 {
5880 "include": "#evaluation_context"
5881 }
5882 ]
5883 },
5884 "operator_overload": {
5885 "begin": "(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\<|\\()",
5886 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
5887 "beginCaptures": {
5888 "0": {
5889 "name": "meta.head.function.definition.special.operator-overload.cpp"
5890 },
5891 "1": {
5892 "name": "meta.qualified_type.cpp",
5893 "patterns": [
5894 {
5895 "match": "::",
5896 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
5897 },
5898 {
5899 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
5900 "name": "storage.type.$0.cpp"
5901 },
5902 {
5903 "include": "#attributes_context"
5904 },
5905 {
5906 "include": "#storage_types"
5907 },
5908 {
5909 "include": "source.cpp#number_literal"
5910 },
5911 {
5912 "include": "#string_context"
5913 },
5914 {
5915 "include": "source.cpp#comma"
5916 },
5917 {
5918 "include": "source.cpp#scope_resolution_inner_generated"
5919 },
5920 {
5921 "begin": "<",
5922 "end": ">|(?=(?<!\\\\)\n)",
5923 "beginCaptures": {
5924 "0": {
5925 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
5926 }
5927 },
5928 "endCaptures": {
5929 "0": {
5930 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
5931 }
5932 },
5933 "name": "meta.template.call.cpp",
5934 "patterns": [
5935 {
5936 "include": "#template_call_context"
5937 }
5938 ]
5939 },
5940 {
5941 "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}))*",
5942 "name": "entity.name.type.cpp"
5943 }
5944 ]
5945 },
5946 "2": {
5947 "patterns": [
5948 {
5949 "include": "#attributes_context"
5950 },
5951 {
5952 "include": "source.cpp#number_literal"
5953 }
5954 ]
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 "patterns": [
5971 {
5972 "match": "\\*\\/",
5973 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5974 },
5975 {
5976 "match": "\\*",
5977 "name": "comment.block.cpp"
5978 }
5979 ]
5980 },
5981 "7": {
5982 "patterns": [
5983 {
5984 "include": "source.cpp#inline_comment"
5985 }
5986 ]
5987 },
5988 "8": {
5989 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
5990 },
5991 "9": {
5992 "name": "comment.block.cpp"
5993 },
5994 "10": {
5995 "patterns": [
5996 {
5997 "match": "\\*\\/",
5998 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
5999 },
6000 {
6001 "match": "\\*",
6002 "name": "comment.block.cpp"
6003 }
6004 ]
6005 },
6006 "11": {
6007 "patterns": [
6008 {
6009 "match": "::",
6010 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
6011 },
6012 {
6013 "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)",
6014 "name": "entity.name.scope-resolution.type.cpp"
6015 },
6016 {
6017 "include": "#template_call_range"
6018 }
6019 ]
6020 },
6021 "12": {
6022 "patterns": [
6023 {
6024 "include": "#template_call_range"
6025 }
6026 ]
6027 },
6028 "13": {},
6029 "14": {
6030 "patterns": [
6031 {
6032 "include": "source.cpp#inline_comment"
6033 }
6034 ]
6035 },
6036 "15": {
6037 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6038 },
6039 "16": {
6040 "name": "comment.block.cpp"
6041 },
6042 "17": {
6043 "patterns": [
6044 {
6045 "match": "\\*\\/",
6046 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6047 },
6048 {
6049 "match": "\\*",
6050 "name": "comment.block.cpp"
6051 }
6052 ]
6053 },
6054 "18": {},
6055 "19": {
6056 "patterns": [
6057 {
6058 "match": "\\*",
6059 "name": "storage.modifier.pointer.cpp"
6060 },
6061 {
6062 "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
6063 "captures": {
6064 "1": {
6065 "patterns": [
6066 {
6067 "include": "source.cpp#inline_comment"
6068 }
6069 ]
6070 },
6071 "2": {
6072 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6073 },
6074 "3": {
6075 "name": "comment.block.cpp"
6076 },
6077 "4": {
6078 "patterns": [
6079 {
6080 "match": "\\*\\/",
6081 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6082 },
6083 {
6084 "match": "\\*",
6085 "name": "comment.block.cpp"
6086 }
6087 ]
6088 }
6089 },
6090 "name": "invalid.illegal.reference-type.cpp"
6091 },
6092 {
6093 "match": "\\&",
6094 "name": "storage.modifier.reference.cpp"
6095 }
6096 ]
6097 },
6098 "20": {
6099 "patterns": [
6100 {
6101 "include": "source.cpp#inline_comment"
6102 }
6103 ]
6104 },
6105 "21": {
6106 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6107 },
6108 "22": {
6109 "name": "comment.block.cpp"
6110 },
6111 "23": {
6112 "patterns": [
6113 {
6114 "match": "\\*\\/",
6115 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6116 },
6117 {
6118 "match": "\\*",
6119 "name": "comment.block.cpp"
6120 }
6121 ]
6122 },
6123 "24": {
6124 "patterns": [
6125 {
6126 "include": "source.cpp#inline_comment"
6127 }
6128 ]
6129 },
6130 "25": {
6131 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6132 },
6133 "26": {
6134 "name": "comment.block.cpp"
6135 },
6136 "27": {
6137 "patterns": [
6138 {
6139 "match": "\\*\\/",
6140 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6141 },
6142 {
6143 "match": "\\*",
6144 "name": "comment.block.cpp"
6145 }
6146 ]
6147 },
6148 "28": {
6149 "patterns": [
6150 {
6151 "include": "source.cpp#inline_comment"
6152 }
6153 ]
6154 },
6155 "29": {
6156 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6157 },
6158 "30": {
6159 "name": "comment.block.cpp"
6160 },
6161 "31": {
6162 "patterns": [
6163 {
6164 "match": "\\*\\/",
6165 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6166 },
6167 {
6168 "match": "\\*",
6169 "name": "comment.block.cpp"
6170 }
6171 ]
6172 },
6173 "32": {
6174 "patterns": [
6175 {
6176 "include": "source.cpp#inline_comment"
6177 }
6178 ]
6179 },
6180 "33": {
6181 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6182 },
6183 "34": {
6184 "name": "comment.block.cpp"
6185 },
6186 "35": {
6187 "patterns": [
6188 {
6189 "match": "\\*\\/",
6190 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6191 },
6192 {
6193 "match": "\\*",
6194 "name": "comment.block.cpp"
6195 }
6196 ]
6197 },
6198 "36": {
6199 "name": "storage.type.modifier.calling-convention.cpp"
6200 },
6201 "37": {
6202 "patterns": [
6203 {
6204 "include": "source.cpp#inline_comment"
6205 }
6206 ]
6207 },
6208 "38": {
6209 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6210 },
6211 "39": {
6212 "name": "comment.block.cpp"
6213 },
6214 "40": {
6215 "patterns": [
6216 {
6217 "match": "\\*\\/",
6218 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6219 },
6220 {
6221 "match": "\\*",
6222 "name": "comment.block.cpp"
6223 }
6224 ]
6225 },
6226 "41": {
6227 "patterns": [
6228 {
6229 "include": "source.cpp#inline_comment"
6230 }
6231 ]
6232 },
6233 "42": {
6234 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6235 },
6236 "43": {
6237 "name": "comment.block.cpp"
6238 },
6239 "44": {
6240 "patterns": [
6241 {
6242 "match": "\\*\\/",
6243 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6244 },
6245 {
6246 "match": "\\*",
6247 "name": "comment.block.cpp"
6248 }
6249 ]
6250 },
6251 "45": {
6252 "patterns": [
6253 {
6254 "match": "::",
6255 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp"
6256 },
6257 {
6258 "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)",
6259 "name": "entity.name.scope-resolution.operator.cpp"
6260 },
6261 {
6262 "include": "#template_call_range"
6263 }
6264 ]
6265 },
6266 "46": {
6267 "patterns": [
6268 {
6269 "include": "#template_call_range"
6270 }
6271 ]
6272 },
6273 "47": {},
6274 "48": {
6275 "name": "keyword.other.operator.overload.cpp"
6276 },
6277 "49": {
6278 "patterns": [
6279 {
6280 "include": "source.cpp#inline_comment"
6281 }
6282 ]
6283 },
6284 "50": {
6285 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6286 },
6287 "51": {
6288 "name": "comment.block.cpp"
6289 },
6290 "52": {
6291 "patterns": [
6292 {
6293 "match": "\\*\\/",
6294 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6295 },
6296 {
6297 "match": "\\*",
6298 "name": "comment.block.cpp"
6299 }
6300 ]
6301 },
6302 "53": {
6303 "patterns": [
6304 {
6305 "match": "::",
6306 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp"
6307 },
6308 {
6309 "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)",
6310 "name": "entity.name.scope-resolution.operator-overload.cpp"
6311 },
6312 {
6313 "include": "#template_call_range"
6314 }
6315 ]
6316 },
6317 "54": {
6318 "patterns": [
6319 {
6320 "include": "#template_call_range"
6321 }
6322 ]
6323 },
6324 "55": {},
6325 "56": {
6326 "name": "entity.name.operator.cpp"
6327 },
6328 "57": {
6329 "name": "entity.name.operator.type.cpp"
6330 },
6331 "58": {
6332 "patterns": [
6333 {
6334 "match": "\\*",
6335 "name": "entity.name.operator.type.pointer.cpp"
6336 },
6337 {
6338 "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
6339 "captures": {
6340 "1": {
6341 "patterns": [
6342 {
6343 "include": "source.cpp#inline_comment"
6344 }
6345 ]
6346 },
6347 "2": {
6348 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6349 },
6350 "3": {
6351 "name": "comment.block.cpp"
6352 },
6353 "4": {
6354 "patterns": [
6355 {
6356 "match": "\\*\\/",
6357 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6358 },
6359 {
6360 "match": "\\*",
6361 "name": "comment.block.cpp"
6362 }
6363 ]
6364 }
6365 },
6366 "name": "invalid.illegal.reference-type.cpp"
6367 },
6368 {
6369 "match": "\\&",
6370 "name": "entity.name.operator.type.reference.cpp"
6371 }
6372 ]
6373 },
6374 "59": {
6375 "patterns": [
6376 {
6377 "include": "source.cpp#inline_comment"
6378 }
6379 ]
6380 },
6381 "60": {
6382 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6383 },
6384 "61": {
6385 "name": "comment.block.cpp"
6386 },
6387 "62": {
6388 "patterns": [
6389 {
6390 "match": "\\*\\/",
6391 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6392 },
6393 {
6394 "match": "\\*",
6395 "name": "comment.block.cpp"
6396 }
6397 ]
6398 },
6399 "63": {
6400 "patterns": [
6401 {
6402 "include": "source.cpp#inline_comment"
6403 }
6404 ]
6405 },
6406 "64": {
6407 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6408 },
6409 "65": {
6410 "name": "comment.block.cpp"
6411 },
6412 "66": {
6413 "patterns": [
6414 {
6415 "match": "\\*\\/",
6416 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6417 },
6418 {
6419 "match": "\\*",
6420 "name": "comment.block.cpp"
6421 }
6422 ]
6423 },
6424 "67": {
6425 "patterns": [
6426 {
6427 "include": "source.cpp#inline_comment"
6428 }
6429 ]
6430 },
6431 "68": {
6432 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6433 },
6434 "69": {
6435 "name": "comment.block.cpp"
6436 },
6437 "70": {
6438 "patterns": [
6439 {
6440 "match": "\\*\\/",
6441 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6442 },
6443 {
6444 "match": "\\*",
6445 "name": "comment.block.cpp"
6446 }
6447 ]
6448 },
6449 "71": {
6450 "name": "entity.name.operator.type.array.cpp"
6451 },
6452 "72": {
6453 "name": "entity.name.operator.custom-literal.cpp"
6454 },
6455 "73": {
6456 "patterns": [
6457 {
6458 "include": "source.cpp#inline_comment"
6459 }
6460 ]
6461 },
6462 "74": {
6463 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6464 },
6465 "75": {
6466 "name": "comment.block.cpp"
6467 },
6468 "76": {
6469 "patterns": [
6470 {
6471 "match": "\\*\\/",
6472 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6473 },
6474 {
6475 "match": "\\*",
6476 "name": "comment.block.cpp"
6477 }
6478 ]
6479 },
6480 "77": {
6481 "name": "entity.name.operator.custom-literal.cpp"
6482 },
6483 "78": {
6484 "patterns": [
6485 {
6486 "include": "source.cpp#inline_comment"
6487 }
6488 ]
6489 },
6490 "79": {
6491 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6492 },
6493 "80": {
6494 "name": "comment.block.cpp"
6495 },
6496 "81": {
6497 "patterns": [
6498 {
6499 "match": "\\*\\/",
6500 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6501 },
6502 {
6503 "match": "\\*",
6504 "name": "comment.block.cpp"
6505 }
6506 ]
6507 }
6508 },
6509 "endCaptures": {},
6510 "name": "meta.function.definition.special.operator-overload.cpp",
6511 "patterns": [
6512 {
6513 "begin": "\\G ?",
6514 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
6515 "beginCaptures": {},
6516 "endCaptures": {
6517 "0": {
6518 "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp"
6519 }
6520 },
6521 "name": "meta.head.function.definition.special.operator-overload.cpp",
6522 "patterns": [
6523 {
6524 "include": "#ever_present_context"
6525 },
6526 {
6527 "include": "#template_call_range"
6528 },
6529 {
6530 "begin": "\\(",
6531 "end": "\\)|(?=(?<!\\\\)\n)",
6532 "beginCaptures": {
6533 "0": {
6534 "name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"
6535 }
6536 },
6537 "endCaptures": {
6538 "0": {
6539 "name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp"
6540 }
6541 },
6542 "contentName": "meta.function.definition.parameters.special.operator-overload",
6543 "patterns": [
6544 {
6545 "include": "#function_parameter_context"
6546 },
6547 {
6548 "include": "#evaluation_context"
6549 }
6550 ]
6551 },
6552 {
6553 "include": "source.cpp#qualifiers_and_specifiers_post_parameters"
6554 },
6555 {
6556 "include": "$self"
6557 }
6558 ]
6559 },
6560 {
6561 "begin": "(?<=\\{|<%|\\?\\?<)",
6562 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
6563 "beginCaptures": {},
6564 "endCaptures": {
6565 "0": {
6566 "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"
6567 }
6568 },
6569 "name": "meta.body.function.definition.special.operator-overload.cpp",
6570 "patterns": [
6571 {
6572 "include": "#function_body_context"
6573 }
6574 ]
6575 },
6576 {
6577 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
6578 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
6579 "beginCaptures": {},
6580 "endCaptures": {},
6581 "name": "meta.tail.function.definition.special.operator-overload.cpp",
6582 "patterns": [
6583 {
6584 "include": "$self"
6585 }
6586 ]
6587 }
6588 ]
6589 },
6590 "operators": {
6591 "patterns": [
6592 {
6593 "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
6594 "end": "\\)|(?=(?<!\\\\)\n)",
6595 "beginCaptures": {
6596 "1": {
6597 "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"
6598 },
6599 "2": {
6600 "patterns": [
6601 {
6602 "include": "source.cpp#inline_comment"
6603 }
6604 ]
6605 },
6606 "3": {
6607 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6608 },
6609 "4": {
6610 "name": "comment.block.cpp"
6611 },
6612 "5": {
6613 "patterns": [
6614 {
6615 "match": "\\*\\/",
6616 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6617 },
6618 {
6619 "match": "\\*",
6620 "name": "comment.block.cpp"
6621 }
6622 ]
6623 },
6624 "6": {
6625 "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"
6626 }
6627 },
6628 "endCaptures": {
6629 "0": {
6630 "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
6631 }
6632 },
6633 "contentName": "meta.arguments.operator.sizeof",
6634 "patterns": [
6635 {
6636 "include": "#evaluation_context"
6637 }
6638 ]
6639 },
6640 {
6641 "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
6642 "end": "\\)|(?=(?<!\\\\)\n)",
6643 "beginCaptures": {
6644 "1": {
6645 "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"
6646 },
6647 "2": {
6648 "patterns": [
6649 {
6650 "include": "source.cpp#inline_comment"
6651 }
6652 ]
6653 },
6654 "3": {
6655 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6656 },
6657 "4": {
6658 "name": "comment.block.cpp"
6659 },
6660 "5": {
6661 "patterns": [
6662 {
6663 "match": "\\*\\/",
6664 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6665 },
6666 {
6667 "match": "\\*",
6668 "name": "comment.block.cpp"
6669 }
6670 ]
6671 },
6672 "6": {
6673 "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"
6674 }
6675 },
6676 "endCaptures": {
6677 "0": {
6678 "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
6679 }
6680 },
6681 "contentName": "meta.arguments.operator.alignof",
6682 "patterns": [
6683 {
6684 "include": "#evaluation_context"
6685 }
6686 ]
6687 },
6688 {
6689 "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
6690 "end": "\\)|(?=(?<!\\\\)\n)",
6691 "beginCaptures": {
6692 "1": {
6693 "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"
6694 },
6695 "2": {
6696 "patterns": [
6697 {
6698 "include": "source.cpp#inline_comment"
6699 }
6700 ]
6701 },
6702 "3": {
6703 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6704 },
6705 "4": {
6706 "name": "comment.block.cpp"
6707 },
6708 "5": {
6709 "patterns": [
6710 {
6711 "match": "\\*\\/",
6712 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6713 },
6714 {
6715 "match": "\\*",
6716 "name": "comment.block.cpp"
6717 }
6718 ]
6719 },
6720 "6": {
6721 "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"
6722 }
6723 },
6724 "endCaptures": {
6725 "0": {
6726 "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
6727 }
6728 },
6729 "contentName": "meta.arguments.operator.alignas",
6730 "patterns": [
6731 {
6732 "include": "#evaluation_context"
6733 }
6734 ]
6735 },
6736 {
6737 "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
6738 "end": "\\)|(?=(?<!\\\\)\n)",
6739 "beginCaptures": {
6740 "1": {
6741 "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"
6742 },
6743 "2": {
6744 "patterns": [
6745 {
6746 "include": "source.cpp#inline_comment"
6747 }
6748 ]
6749 },
6750 "3": {
6751 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6752 },
6753 "4": {
6754 "name": "comment.block.cpp"
6755 },
6756 "5": {
6757 "patterns": [
6758 {
6759 "match": "\\*\\/",
6760 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6761 },
6762 {
6763 "match": "\\*",
6764 "name": "comment.block.cpp"
6765 }
6766 ]
6767 },
6768 "6": {
6769 "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"
6770 }
6771 },
6772 "endCaptures": {
6773 "0": {
6774 "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
6775 }
6776 },
6777 "contentName": "meta.arguments.operator.typeid",
6778 "patterns": [
6779 {
6780 "include": "#evaluation_context"
6781 }
6782 ]
6783 },
6784 {
6785 "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
6786 "end": "\\)|(?=(?<!\\\\)\n)",
6787 "beginCaptures": {
6788 "1": {
6789 "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"
6790 },
6791 "2": {
6792 "patterns": [
6793 {
6794 "include": "source.cpp#inline_comment"
6795 }
6796 ]
6797 },
6798 "3": {
6799 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6800 },
6801 "4": {
6802 "name": "comment.block.cpp"
6803 },
6804 "5": {
6805 "patterns": [
6806 {
6807 "match": "\\*\\/",
6808 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6809 },
6810 {
6811 "match": "\\*",
6812 "name": "comment.block.cpp"
6813 }
6814 ]
6815 },
6816 "6": {
6817 "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"
6818 }
6819 },
6820 "endCaptures": {
6821 "0": {
6822 "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
6823 }
6824 },
6825 "contentName": "meta.arguments.operator.noexcept",
6826 "patterns": [
6827 {
6828 "include": "#evaluation_context"
6829 }
6830 ]
6831 },
6832 {
6833 "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
6834 "end": "\\)|(?=(?<!\\\\)\n)",
6835 "beginCaptures": {
6836 "1": {
6837 "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"
6838 },
6839 "2": {
6840 "patterns": [
6841 {
6842 "include": "source.cpp#inline_comment"
6843 }
6844 ]
6845 },
6846 "3": {
6847 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6848 },
6849 "4": {
6850 "name": "comment.block.cpp"
6851 },
6852 "5": {
6853 "patterns": [
6854 {
6855 "match": "\\*\\/",
6856 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6857 },
6858 {
6859 "match": "\\*",
6860 "name": "comment.block.cpp"
6861 }
6862 ]
6863 },
6864 "6": {
6865 "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"
6866 }
6867 },
6868 "endCaptures": {
6869 "0": {
6870 "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"
6871 }
6872 },
6873 "contentName": "meta.arguments.operator.sizeof.variadic",
6874 "patterns": [
6875 {
6876 "include": "#evaluation_context"
6877 }
6878 ]
6879 },
6880 {
6881 "match": "--",
6882 "name": "keyword.operator.decrement.cpp"
6883 },
6884 {
6885 "match": "\\+\\+",
6886 "name": "keyword.operator.increment.cpp"
6887 },
6888 {
6889 "match": "%=|\\+=|-=|\\*=|(?<!\\()\\/=",
6890 "name": "keyword.operator.assignment.compound.cpp"
6891 },
6892 {
6893 "match": "&=|\\^=|<<=|>>=|\\|=",
6894 "name": "keyword.operator.assignment.compound.bitwise.cpp"
6895 },
6896 {
6897 "match": "<<|>>",
6898 "name": "keyword.operator.bitwise.shift.cpp"
6899 },
6900 {
6901 "match": "!=|<=|>=|==|<|>",
6902 "name": "keyword.operator.comparison.cpp"
6903 },
6904 {
6905 "match": "&&|!|\\|\\|",
6906 "name": "keyword.operator.logical.cpp"
6907 },
6908 {
6909 "match": "&|\\||\\^|~",
6910 "name": "keyword.operator.bitwise.cpp"
6911 },
6912 {
6913 "include": "source.cpp#assignment_operator"
6914 },
6915 {
6916 "match": "%|\\*|\\/|-|\\+",
6917 "name": "keyword.operator.arithmetic.cpp"
6918 },
6919 {
6920 "include": "#ternary_operator"
6921 }
6922 ]
6923 },
6924 "parameter": {
6925 "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",
6926 "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
6927 "beginCaptures": {
6928 "1": {
6929 "patterns": [
6930 {
6931 "include": "source.cpp#inline_comment"
6932 }
6933 ]
6934 },
6935 "2": {
6936 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6937 },
6938 "3": {
6939 "name": "comment.block.cpp"
6940 },
6941 "4": {
6942 "patterns": [
6943 {
6944 "match": "\\*\\/",
6945 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
6946 },
6947 {
6948 "match": "\\*",
6949 "name": "comment.block.cpp"
6950 }
6951 ]
6952 }
6953 },
6954 "endCaptures": {
6955 "1": {
6956 "name": "punctuation.separator.delimiter.comma.cpp"
6957 }
6958 },
6959 "name": "meta.parameter.cpp",
6960 "patterns": [
6961 {
6962 "include": "#ever_present_context"
6963 },
6964 {
6965 "include": "#function_pointer_parameter"
6966 },
6967 {
6968 "include": "#decltype"
6969 },
6970 {
6971 "include": "source.cpp#vararg_ellipses"
6972 },
6973 {
6974 "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:signed)|(?:double)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:char)|(?:long)|(?:bool)|(?:int)))|((?:(?:uint_least16_t)|(?:uint_least32_t)|(?:uint_least64_t)|(?:int_least16_t)|(?:int_least32_t)|(?:int_least64_t)|(?:uint_least8_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:uint_fast64_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:suseconds_t)|(?:int_fast8_t)|(?:useconds_t)|(?:blksize_t)|(?:in_addr_t)|(?:in_port_t)|(?:uintptr_t)|(?:uintmax_t)|(?:uintmax_t)|(?:uintmax_t)|(?:u_quad_t)|(?:blkcnt_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:intptr_t)|(?:intmax_t)|(?:intmax_t)|(?:u_short)|(?:qaddr_t)|(?:caddr_t)|(?:daddr_t)|(?:fixpt_t)|(?:nlink_t)|(?:segsz_t)|(?:swblk_t)|(?:clock_t)|(?:ssize_t)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:u_char)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:time_t)|(?:int8_t)|(?:u_int)|(?:div_t)|(?:dev_t)|(?:gid_t)|(?:ino_t)|(?:key_t)|(?:pid_t)|(?:off_t)|(?:uid_t)|(?:uint)|(?:id_t)|(?:id_t))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_attr_t)|(?:pthread_cond_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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",
6975 "captures": {
6976 "1": {
6977 "patterns": [
6978 {
6979 "include": "#storage_types"
6980 }
6981 ]
6982 },
6983 "2": {
6984 "name": "storage.modifier.specifier.parameter.cpp"
6985 },
6986 "3": {
6987 "patterns": [
6988 {
6989 "include": "source.cpp#inline_comment"
6990 }
6991 ]
6992 },
6993 "4": {
6994 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
6995 },
6996 "5": {
6997 "name": "comment.block.cpp"
6998 },
6999 "6": {
7000 "patterns": [
7001 {
7002 "match": "\\*\\/",
7003 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7004 },
7005 {
7006 "match": "\\*",
7007 "name": "comment.block.cpp"
7008 }
7009 ]
7010 },
7011 "7": {
7012 "patterns": [
7013 {
7014 "include": "source.cpp#inline_comment"
7015 }
7016 ]
7017 },
7018 "8": {
7019 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7020 },
7021 "9": {
7022 "name": "comment.block.cpp"
7023 },
7024 "10": {
7025 "patterns": [
7026 {
7027 "match": "\\*\\/",
7028 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7029 },
7030 {
7031 "match": "\\*",
7032 "name": "comment.block.cpp"
7033 }
7034 ]
7035 },
7036 "11": {
7037 "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
7038 },
7039 "12": {
7040 "name": "storage.type.cpp storage.type.built-in.cpp"
7041 },
7042 "13": {
7043 "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
7044 },
7045 "14": {
7046 "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
7047 },
7048 "15": {
7049 "name": "entity.name.type.parameter.cpp"
7050 },
7051 "16": {
7052 "patterns": [
7053 {
7054 "include": "source.cpp#inline_comment"
7055 }
7056 ]
7057 },
7058 "17": {
7059 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7060 },
7061 "18": {
7062 "name": "comment.block.cpp"
7063 },
7064 "19": {
7065 "patterns": [
7066 {
7067 "match": "\\*\\/",
7068 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7069 },
7070 {
7071 "match": "\\*",
7072 "name": "comment.block.cpp"
7073 }
7074 ]
7075 }
7076 }
7077 },
7078 {
7079 "include": "#storage_types"
7080 },
7081 {
7082 "include": "source.cpp#scope_resolution_parameter_inner_generated"
7083 },
7084 {
7085 "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
7086 "name": "storage.type.$0.cpp"
7087 },
7088 {
7089 "begin": "(?<==)",
7090 "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
7091 "beginCaptures": {},
7092 "endCaptures": {
7093 "1": {
7094 "name": "punctuation.separator.delimiter.comma.cpp"
7095 }
7096 },
7097 "patterns": [
7098 {
7099 "include": "#evaluation_context"
7100 }
7101 ]
7102 },
7103 {
7104 "match": "\\=",
7105 "name": "keyword.operator.assignment.cpp"
7106 },
7107 {
7108 "match": "(?<!\\s|\\(|,|:)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\)|,|\\[|=|\\n)",
7109 "captures": {
7110 "1": {
7111 "patterns": [
7112 {
7113 "include": "source.cpp#inline_comment"
7114 }
7115 ]
7116 },
7117 "2": {
7118 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7119 },
7120 "3": {
7121 "name": "comment.block.cpp"
7122 },
7123 "4": {
7124 "patterns": [
7125 {
7126 "match": "\\*\\/",
7127 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7128 },
7129 {
7130 "match": "\\*",
7131 "name": "comment.block.cpp"
7132 }
7133 ]
7134 },
7135 "5": {
7136 "name": "variable.parameter.cpp"
7137 },
7138 "6": {
7139 "patterns": [
7140 {
7141 "include": "source.cpp#inline_comment"
7142 }
7143 ]
7144 },
7145 "7": {
7146 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7147 },
7148 "8": {
7149 "name": "comment.block.cpp"
7150 },
7151 "9": {
7152 "patterns": [
7153 {
7154 "match": "\\*\\/",
7155 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7156 },
7157 {
7158 "match": "\\*",
7159 "name": "comment.block.cpp"
7160 }
7161 ]
7162 }
7163 }
7164 },
7165 {
7166 "include": "#attributes_context"
7167 },
7168 {
7169 "begin": "\\[",
7170 "end": "\\]|(?=(?<!\\\\)\n)",
7171 "beginCaptures": {
7172 "0": {
7173 "name": "punctuation.definition.begin.bracket.square.array.type.cpp"
7174 }
7175 },
7176 "endCaptures": {
7177 "0": {
7178 "name": "punctuation.definition.end.bracket.square.array.type.cpp"
7179 }
7180 },
7181 "name": "meta.bracket.square.array.cpp",
7182 "patterns": [
7183 {
7184 "include": "#evaluation_context"
7185 }
7186 ]
7187 },
7188 {
7189 "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)",
7190 "name": "entity.name.type.parameter.cpp"
7191 },
7192 {
7193 "include": "#template_call_range"
7194 },
7195 {
7196 "match": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
7197 "captures": {
7198 "0": {
7199 "patterns": [
7200 {
7201 "match": "\\*",
7202 "name": "storage.modifier.pointer.cpp"
7203 },
7204 {
7205 "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
7206 "captures": {
7207 "1": {
7208 "patterns": [
7209 {
7210 "include": "source.cpp#inline_comment"
7211 }
7212 ]
7213 },
7214 "2": {
7215 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7216 },
7217 "3": {
7218 "name": "comment.block.cpp"
7219 },
7220 "4": {
7221 "patterns": [
7222 {
7223 "match": "\\*\\/",
7224 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7225 },
7226 {
7227 "match": "\\*",
7228 "name": "comment.block.cpp"
7229 }
7230 ]
7231 }
7232 },
7233 "name": "invalid.illegal.reference-type.cpp"
7234 },
7235 {
7236 "match": "\\&",
7237 "name": "storage.modifier.reference.cpp"
7238 }
7239 ]
7240 },
7241 "1": {
7242 "patterns": [
7243 {
7244 "include": "source.cpp#inline_comment"
7245 }
7246 ]
7247 },
7248 "2": {
7249 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7250 },
7251 "3": {
7252 "name": "comment.block.cpp"
7253 },
7254 "4": {
7255 "patterns": [
7256 {
7257 "match": "\\*\\/",
7258 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7259 },
7260 {
7261 "match": "\\*",
7262 "name": "comment.block.cpp"
7263 }
7264 ]
7265 },
7266 "5": {
7267 "patterns": [
7268 {
7269 "include": "source.cpp#inline_comment"
7270 }
7271 ]
7272 },
7273 "6": {
7274 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7275 },
7276 "7": {
7277 "name": "comment.block.cpp"
7278 },
7279 "8": {
7280 "patterns": [
7281 {
7282 "match": "\\*\\/",
7283 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7284 },
7285 {
7286 "match": "\\*",
7287 "name": "comment.block.cpp"
7288 }
7289 ]
7290 }
7291 }
7292 }
7293 ]
7294 },
7295 "parameter_or_maybe_value": {
7296 "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",
7297 "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
7298 "beginCaptures": {
7299 "1": {
7300 "patterns": [
7301 {
7302 "include": "source.cpp#inline_comment"
7303 }
7304 ]
7305 },
7306 "2": {
7307 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7308 },
7309 "3": {
7310 "name": "comment.block.cpp"
7311 },
7312 "4": {
7313 "patterns": [
7314 {
7315 "match": "\\*\\/",
7316 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7317 },
7318 {
7319 "match": "\\*",
7320 "name": "comment.block.cpp"
7321 }
7322 ]
7323 }
7324 },
7325 "endCaptures": {
7326 "1": {
7327 "name": "punctuation.separator.delimiter.comma.cpp"
7328 }
7329 },
7330 "name": "meta.parameter.cpp",
7331 "patterns": [
7332 {
7333 "include": "#ever_present_context"
7334 },
7335 {
7336 "include": "#function_pointer_parameter"
7337 },
7338 {
7339 "include": "source.cpp#memory_operators"
7340 },
7341 {
7342 "include": "#builtin_storage_type_initilizer"
7343 },
7344 {
7345 "include": "#curly_initializer"
7346 },
7347 {
7348 "include": "#decltype"
7349 },
7350 {
7351 "include": "source.cpp#vararg_ellipses"
7352 },
7353 {
7354 "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:signed)|(?:double)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:char)|(?:long)|(?:bool)|(?:int)))|((?:(?:uint_least16_t)|(?:uint_least32_t)|(?:uint_least64_t)|(?:int_least16_t)|(?:int_least32_t)|(?:int_least64_t)|(?:uint_least8_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:uint_fast64_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:suseconds_t)|(?:int_fast8_t)|(?:useconds_t)|(?:blksize_t)|(?:in_addr_t)|(?:in_port_t)|(?:uintptr_t)|(?:uintmax_t)|(?:uintmax_t)|(?:uintmax_t)|(?:u_quad_t)|(?:blkcnt_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:intptr_t)|(?:intmax_t)|(?:intmax_t)|(?:u_short)|(?:qaddr_t)|(?:caddr_t)|(?:daddr_t)|(?:fixpt_t)|(?:nlink_t)|(?:segsz_t)|(?:swblk_t)|(?:clock_t)|(?:ssize_t)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:u_char)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:time_t)|(?:int8_t)|(?:u_int)|(?:div_t)|(?:dev_t)|(?:gid_t)|(?:ino_t)|(?:key_t)|(?:pid_t)|(?:off_t)|(?:uid_t)|(?:uint)|(?:id_t)|(?:id_t))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_attr_t)|(?:pthread_cond_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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",
7355 "captures": {
7356 "1": {
7357 "patterns": [
7358 {
7359 "include": "#storage_types"
7360 }
7361 ]
7362 },
7363 "2": {
7364 "name": "storage.modifier.specifier.parameter.cpp"
7365 },
7366 "3": {
7367 "patterns": [
7368 {
7369 "include": "source.cpp#inline_comment"
7370 }
7371 ]
7372 },
7373 "4": {
7374 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7375 },
7376 "5": {
7377 "name": "comment.block.cpp"
7378 },
7379 "6": {
7380 "patterns": [
7381 {
7382 "match": "\\*\\/",
7383 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7384 },
7385 {
7386 "match": "\\*",
7387 "name": "comment.block.cpp"
7388 }
7389 ]
7390 },
7391 "7": {
7392 "patterns": [
7393 {
7394 "include": "source.cpp#inline_comment"
7395 }
7396 ]
7397 },
7398 "8": {
7399 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7400 },
7401 "9": {
7402 "name": "comment.block.cpp"
7403 },
7404 "10": {
7405 "patterns": [
7406 {
7407 "match": "\\*\\/",
7408 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7409 },
7410 {
7411 "match": "\\*",
7412 "name": "comment.block.cpp"
7413 }
7414 ]
7415 },
7416 "11": {
7417 "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
7418 },
7419 "12": {
7420 "name": "storage.type.cpp storage.type.built-in.cpp"
7421 },
7422 "13": {
7423 "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
7424 },
7425 "14": {
7426 "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
7427 },
7428 "15": {
7429 "name": "entity.name.type.parameter.cpp"
7430 },
7431 "16": {
7432 "patterns": [
7433 {
7434 "include": "source.cpp#inline_comment"
7435 }
7436 ]
7437 },
7438 "17": {
7439 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7440 },
7441 "18": {
7442 "name": "comment.block.cpp"
7443 },
7444 "19": {
7445 "patterns": [
7446 {
7447 "match": "\\*\\/",
7448 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7449 },
7450 {
7451 "match": "\\*",
7452 "name": "comment.block.cpp"
7453 }
7454 ]
7455 }
7456 }
7457 },
7458 {
7459 "include": "#storage_types"
7460 },
7461 {
7462 "include": "#function_call"
7463 },
7464 {
7465 "include": "source.cpp#scope_resolution_parameter_inner_generated"
7466 },
7467 {
7468 "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
7469 "name": "storage.type.$0.cpp"
7470 },
7471 {
7472 "begin": "(?<==)",
7473 "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)",
7474 "beginCaptures": {},
7475 "endCaptures": {
7476 "1": {
7477 "name": "punctuation.separator.delimiter.comma.cpp"
7478 }
7479 },
7480 "patterns": [
7481 {
7482 "include": "#evaluation_context"
7483 }
7484 ]
7485 },
7486 {
7487 "match": "(?<!\\s|\\(|,|:)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))",
7488 "captures": {
7489 "1": {
7490 "patterns": [
7491 {
7492 "include": "source.cpp#inline_comment"
7493 }
7494 ]
7495 },
7496 "2": {
7497 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7498 },
7499 "3": {
7500 "name": "comment.block.cpp"
7501 },
7502 "4": {
7503 "patterns": [
7504 {
7505 "match": "\\*\\/",
7506 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7507 },
7508 {
7509 "match": "\\*",
7510 "name": "comment.block.cpp"
7511 }
7512 ]
7513 },
7514 "5": {
7515 "name": "variable.parameter.cpp"
7516 },
7517 "6": {
7518 "patterns": [
7519 {
7520 "include": "source.cpp#inline_comment"
7521 }
7522 ]
7523 },
7524 "7": {
7525 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7526 },
7527 "8": {
7528 "name": "comment.block.cpp"
7529 },
7530 "9": {
7531 "patterns": [
7532 {
7533 "match": "\\*\\/",
7534 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7535 },
7536 {
7537 "match": "\\*",
7538 "name": "comment.block.cpp"
7539 }
7540 ]
7541 }
7542 }
7543 },
7544 {
7545 "include": "#attributes_context"
7546 },
7547 {
7548 "begin": "\\[",
7549 "end": "\\]|(?=(?<!\\\\)\n)",
7550 "beginCaptures": {
7551 "0": {
7552 "name": "punctuation.definition.begin.bracket.square.array.type.cpp"
7553 }
7554 },
7555 "endCaptures": {
7556 "0": {
7557 "name": "punctuation.definition.end.bracket.square.array.type.cpp"
7558 }
7559 },
7560 "name": "meta.bracket.square.array.cpp",
7561 "patterns": [
7562 {
7563 "include": "#evaluation_context"
7564 }
7565 ]
7566 },
7567 {
7568 "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)",
7569 "name": "entity.name.type.parameter.cpp"
7570 },
7571 {
7572 "include": "#template_call_range"
7573 },
7574 {
7575 "match": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
7576 "captures": {
7577 "0": {
7578 "patterns": [
7579 {
7580 "match": "\\*",
7581 "name": "storage.modifier.pointer.cpp"
7582 },
7583 {
7584 "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
7585 "captures": {
7586 "1": {
7587 "patterns": [
7588 {
7589 "include": "source.cpp#inline_comment"
7590 }
7591 ]
7592 },
7593 "2": {
7594 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7595 },
7596 "3": {
7597 "name": "comment.block.cpp"
7598 },
7599 "4": {
7600 "patterns": [
7601 {
7602 "match": "\\*\\/",
7603 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7604 },
7605 {
7606 "match": "\\*",
7607 "name": "comment.block.cpp"
7608 }
7609 ]
7610 }
7611 },
7612 "name": "invalid.illegal.reference-type.cpp"
7613 },
7614 {
7615 "match": "\\&",
7616 "name": "storage.modifier.reference.cpp"
7617 }
7618 ]
7619 },
7620 "1": {
7621 "patterns": [
7622 {
7623 "include": "source.cpp#inline_comment"
7624 }
7625 ]
7626 },
7627 "2": {
7628 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7629 },
7630 "3": {
7631 "name": "comment.block.cpp"
7632 },
7633 "4": {
7634 "patterns": [
7635 {
7636 "match": "\\*\\/",
7637 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7638 },
7639 {
7640 "match": "\\*",
7641 "name": "comment.block.cpp"
7642 }
7643 ]
7644 },
7645 "5": {
7646 "patterns": [
7647 {
7648 "include": "source.cpp#inline_comment"
7649 }
7650 ]
7651 },
7652 "6": {
7653 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7654 },
7655 "7": {
7656 "name": "comment.block.cpp"
7657 },
7658 "8": {
7659 "patterns": [
7660 {
7661 "match": "\\*\\/",
7662 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7663 },
7664 {
7665 "match": "\\*",
7666 "name": "comment.block.cpp"
7667 }
7668 ]
7669 }
7670 }
7671 },
7672 {
7673 "include": "#evaluation_context"
7674 }
7675 ]
7676 },
7677 "parentheses": {
7678 "begin": "\\(",
7679 "end": "\\)|(?=(?<!\\\\)\n)",
7680 "beginCaptures": {
7681 "0": {
7682 "name": "punctuation.section.parens.begin.bracket.round.cpp"
7683 }
7684 },
7685 "endCaptures": {
7686 "0": {
7687 "name": "punctuation.section.parens.end.bracket.round.cpp"
7688 }
7689 },
7690 "name": "meta.parens.cpp",
7691 "patterns": [
7692 {
7693 "include": "source.cpp#over_qualified_types"
7694 },
7695 {
7696 "match": "(?<!:):(?!:)",
7697 "name": "punctuation.separator.colon.range-based.cpp"
7698 },
7699 {
7700 "include": "#evaluation_context"
7701 }
7702 ]
7703 },
7704 "pragma": {
7705 "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b",
7706 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
7707 "beginCaptures": {
7708 "0": {
7709 "name": "keyword.control.directive.pragma.cpp"
7710 },
7711 "1": {
7712 "patterns": [
7713 {
7714 "include": "source.cpp#inline_comment"
7715 }
7716 ]
7717 },
7718 "2": {
7719 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7720 },
7721 "3": {
7722 "name": "comment.block.cpp"
7723 },
7724 "4": {
7725 "patterns": [
7726 {
7727 "match": "\\*\\/",
7728 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7729 },
7730 {
7731 "match": "\\*",
7732 "name": "comment.block.cpp"
7733 }
7734 ]
7735 },
7736 "5": {
7737 "name": "punctuation.definition.directive.cpp"
7738 }
7739 },
7740 "endCaptures": {},
7741 "name": "meta.preprocessor.pragma.cpp",
7742 "patterns": [
7743 {
7744 "include": "#comments"
7745 },
7746 {
7747 "include": "#string_context"
7748 },
7749 {
7750 "match": "[a-zA-Z_$][\\w\\-$]*",
7751 "name": "entity.other.attribute-name.pragma.preprocessor.cpp"
7752 },
7753 {
7754 "include": "#preprocessor_number_literal"
7755 },
7756 {
7757 "include": "source.cpp#line_continuation_character"
7758 }
7759 ]
7760 },
7761 "preprocessor_conditional_context": {
7762 "patterns": [
7763 {
7764 "include": "#preprocessor_conditional_defined"
7765 },
7766 {
7767 "include": "#comments"
7768 },
7769 {
7770 "include": "source.cpp#language_constants"
7771 },
7772 {
7773 "include": "#string_context"
7774 },
7775 {
7776 "include": "source.cpp#d9bc4796b0b_preprocessor_number_literal"
7777 },
7778 {
7779 "include": "#operators"
7780 },
7781 {
7782 "include": "source.cpp#predefined_macros"
7783 },
7784 {
7785 "include": "source.cpp#macro_name"
7786 },
7787 {
7788 "include": "source.cpp#line_continuation_character"
7789 }
7790 ]
7791 },
7792 "preprocessor_conditional_defined": {
7793 "begin": "((?<!\\w)defined(?!\\w))(\\()",
7794 "end": "(?:\\)|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)",
7795 "beginCaptures": {
7796 "1": {
7797 "name": "keyword.control.directive.conditional.defined.cpp"
7798 },
7799 "2": {
7800 "name": "punctuation.section.parens.control.defined.cpp"
7801 }
7802 },
7803 "endCaptures": {
7804 "0": {
7805 "name": "punctuation.section.parens.control.defined.cpp"
7806 }
7807 },
7808 "patterns": [
7809 {
7810 "include": "source.cpp#macro_name"
7811 }
7812 ]
7813 },
7814 "preprocessor_conditional_parentheses": {
7815 "begin": "\\(",
7816 "end": "\\)|(?=(?<!\\\\)\n)",
7817 "beginCaptures": {
7818 "0": {
7819 "name": "punctuation.section.parens.begin.bracket.round.cpp"
7820 }
7821 },
7822 "endCaptures": {
7823 "0": {
7824 "name": "punctuation.section.parens.end.bracket.round.cpp"
7825 }
7826 },
7827 "name": "meta.parens.preprocessor.conditional.cpp"
7828 },
7829 "preprocessor_conditional_range": {
7830 "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))",
7831 "end": "^(?!\\s*+#\\s*(?:else|endif))|(?=(?<!\\\\)\n)",
7832 "beginCaptures": {
7833 "0": {
7834 "name": "keyword.control.directive.conditional.$6.cpp"
7835 },
7836 "1": {
7837 "patterns": [
7838 {
7839 "include": "source.cpp#inline_comment"
7840 }
7841 ]
7842 },
7843 "2": {
7844 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7845 },
7846 "3": {
7847 "name": "comment.block.cpp"
7848 },
7849 "4": {
7850 "patterns": [
7851 {
7852 "match": "\\*\\/",
7853 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7854 },
7855 {
7856 "match": "\\*",
7857 "name": "comment.block.cpp"
7858 }
7859 ]
7860 },
7861 "5": {
7862 "name": "punctuation.definition.directive.cpp"
7863 },
7864 "6": {}
7865 },
7866 "endCaptures": {},
7867 "patterns": [
7868 {
7869 "begin": "\\G(?<=ifndef|ifdef|if)",
7870 "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)",
7871 "beginCaptures": {},
7872 "endCaptures": {},
7873 "name": "meta.preprocessor.conditional.cpp",
7874 "patterns": [
7875 {
7876 "include": "#preprocessor_conditional_context"
7877 }
7878 ]
7879 },
7880 {
7881 "include": "$self"
7882 }
7883 ]
7884 },
7885 "preprocessor_context": {
7886 "patterns": [
7887 {
7888 "include": "source.cpp#pragma_mark"
7889 },
7890 {
7891 "include": "#pragma"
7892 },
7893 {
7894 "include": "source.cpp#include"
7895 },
7896 {
7897 "include": "#line"
7898 },
7899 {
7900 "include": "#diagnostic"
7901 },
7902 {
7903 "include": "source.cpp#undef"
7904 },
7905 {
7906 "include": "#preprocessor_conditional_range"
7907 },
7908 {
7909 "include": "source.cpp#single_line_macro"
7910 },
7911 {
7912 "include": "#macro"
7913 },
7914 {
7915 "include": "source.cpp#preprocessor_conditional_standalone"
7916 },
7917 {
7918 "include": "source.cpp#macro_argument"
7919 }
7920 ]
7921 },
7922 "sizeof_operator": {
7923 "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
7924 "end": "\\)|(?=(?<!\\\\)\n)",
7925 "beginCaptures": {
7926 "1": {
7927 "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"
7928 },
7929 "2": {
7930 "patterns": [
7931 {
7932 "include": "source.cpp#inline_comment"
7933 }
7934 ]
7935 },
7936 "3": {
7937 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7938 },
7939 "4": {
7940 "name": "comment.block.cpp"
7941 },
7942 "5": {
7943 "patterns": [
7944 {
7945 "match": "\\*\\/",
7946 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7947 },
7948 {
7949 "match": "\\*",
7950 "name": "comment.block.cpp"
7951 }
7952 ]
7953 },
7954 "6": {
7955 "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"
7956 }
7957 },
7958 "endCaptures": {
7959 "0": {
7960 "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
7961 }
7962 },
7963 "contentName": "meta.arguments.operator.sizeof",
7964 "patterns": [
7965 {
7966 "include": "#evaluation_context"
7967 }
7968 ]
7969 },
7970 "sizeof_variadic_operator": {
7971 "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
7972 "end": "\\)|(?=(?<!\\\\)\n)",
7973 "beginCaptures": {
7974 "1": {
7975 "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"
7976 },
7977 "2": {
7978 "patterns": [
7979 {
7980 "include": "source.cpp#inline_comment"
7981 }
7982 ]
7983 },
7984 "3": {
7985 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
7986 },
7987 "4": {
7988 "name": "comment.block.cpp"
7989 },
7990 "5": {
7991 "patterns": [
7992 {
7993 "match": "\\*\\/",
7994 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
7995 },
7996 {
7997 "match": "\\*",
7998 "name": "comment.block.cpp"
7999 }
8000 ]
8001 },
8002 "6": {
8003 "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"
8004 }
8005 },
8006 "endCaptures": {
8007 "0": {
8008 "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"
8009 }
8010 },
8011 "contentName": "meta.arguments.operator.sizeof.variadic",
8012 "patterns": [
8013 {
8014 "include": "#evaluation_context"
8015 }
8016 ]
8017 },
8018 "square_brackets": {
8019 "name": "meta.bracket.square.access",
8020 "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
8021 "beginCaptures": {
8022 "1": {
8023 "name": "variable.other.object"
8024 },
8025 "2": {
8026 "name": "punctuation.definition.begin.bracket.square"
8027 }
8028 },
8029 "end": "\\]|(?=(?<!\\\\)\n)",
8030 "endCaptures": {
8031 "0": {
8032 "name": "punctuation.definition.end.bracket.square"
8033 }
8034 },
8035 "patterns": [
8036 {
8037 "include": "#evaluation_context"
8038 }
8039 ]
8040 },
8041 "static_assert": {
8042 "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
8043 "end": "\\)|(?=(?<!\\\\)\n)",
8044 "beginCaptures": {
8045 "1": {
8046 "patterns": [
8047 {
8048 "include": "source.cpp#inline_comment"
8049 }
8050 ]
8051 },
8052 "2": {
8053 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8054 },
8055 "3": {
8056 "name": "comment.block.cpp"
8057 },
8058 "4": {
8059 "patterns": [
8060 {
8061 "match": "\\*\\/",
8062 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8063 },
8064 {
8065 "match": "\\*",
8066 "name": "comment.block.cpp"
8067 }
8068 ]
8069 },
8070 "5": {
8071 "name": "keyword.other.static_assert.cpp"
8072 },
8073 "6": {
8074 "patterns": [
8075 {
8076 "include": "source.cpp#inline_comment"
8077 }
8078 ]
8079 },
8080 "7": {
8081 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8082 },
8083 "8": {
8084 "name": "comment.block.cpp"
8085 },
8086 "9": {
8087 "patterns": [
8088 {
8089 "match": "\\*\\/",
8090 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8091 },
8092 {
8093 "match": "\\*",
8094 "name": "comment.block.cpp"
8095 }
8096 ]
8097 },
8098 "10": {
8099 "name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp"
8100 }
8101 },
8102 "endCaptures": {
8103 "0": {
8104 "name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp"
8105 }
8106 },
8107 "patterns": [
8108 {
8109 "begin": "(,)(?:(?:\\s)+)?(?=(?:L|u8|u|U(?:(?:\\s)+)?\\\")?)",
8110 "end": "(?=\\))|(?=(?<!\\\\)\n)",
8111 "beginCaptures": {
8112 "1": {
8113 "name": "punctuation.separator.delimiter.comma.cpp"
8114 }
8115 },
8116 "endCaptures": {},
8117 "name": "meta.static_assert.message.cpp",
8118 "patterns": [
8119 {
8120 "include": "#string_context"
8121 }
8122 ]
8123 },
8124 {
8125 "include": "#evaluation_context"
8126 }
8127 ]
8128 },
8129 "storage_types": {
8130 "patterns": [
8131 {
8132 "include": "source.cpp#storage_specifiers"
8133 },
8134 {
8135 "include": "source.cpp#inline_builtin_storage_type"
8136 },
8137 {
8138 "include": "#decltype"
8139 },
8140 {
8141 "include": "source.cpp#typename"
8142 }
8143 ]
8144 },
8145 "string_context": {
8146 "patterns": [
8147 {
8148 "begin": "((?:u|u8|U|L)?)\"",
8149 "end": "\"|(?=(?<!\\\\)\n)",
8150 "beginCaptures": {
8151 "0": {
8152 "name": "punctuation.definition.string.begin.cpp"
8153 },
8154 "1": {
8155 "name": "meta.encoding.cpp"
8156 }
8157 },
8158 "endCaptures": {
8159 "0": {
8160 "name": "punctuation.definition.string.end.cpp"
8161 }
8162 },
8163 "name": "string.quoted.double.cpp",
8164 "patterns": [
8165 {
8166 "match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})",
8167 "name": "constant.character.escape.cpp"
8168 },
8169 {
8170 "match": "\\\\['\"?\\\\abfnrtv]",
8171 "name": "constant.character.escape.cpp"
8172 },
8173 {
8174 "match": "\\\\[0-7]{1,3}",
8175 "name": "constant.character.escape.cpp"
8176 },
8177 {
8178 "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",
8179 "captures": {
8180 "1": {
8181 "name": "constant.character.escape.cpp"
8182 },
8183 "2": {
8184 "name": "invalid.illegal.unknown-escape.cpp"
8185 }
8186 }
8187 },
8188 {
8189 "include": "source.cpp#string_escapes_context_c"
8190 }
8191 ]
8192 },
8193 {
8194 "begin": "(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'",
8195 "end": "'|(?=(?<!\\\\)\n)",
8196 "beginCaptures": {
8197 "0": {
8198 "name": "punctuation.definition.string.begin.cpp"
8199 },
8200 "1": {
8201 "name": "meta.encoding.cpp"
8202 }
8203 },
8204 "endCaptures": {
8205 "0": {
8206 "name": "punctuation.definition.string.end.cpp"
8207 }
8208 },
8209 "name": "string.quoted.single.cpp",
8210 "patterns": [
8211 {
8212 "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",
8213 "captures": {
8214 "1": {
8215 "name": "constant.character.escape.cpp"
8216 },
8217 "2": {
8218 "name": "invalid.illegal.unknown-escape.cpp"
8219 }
8220 }
8221 },
8222 {
8223 "include": "source.cpp#string_escapes_context_c"
8224 },
8225 {
8226 "include": "source.cpp#line_continuation_character"
8227 }
8228 ]
8229 },
8230 {
8231 "begin": "((?:[uUL]8?)?R)\\\"(?:(?:_r|re)|regex)\\(",
8232 "end": "\\)(?:(?:_r|re)|regex)\\\"|(?=(?<!\\\\)\n)",
8233 "beginCaptures": {
8234 "0": {
8235 "name": "punctuation.definition.string.begin.cpp"
8236 },
8237 "1": {
8238 "name": "meta.encoding.cpp"
8239 }
8240 },
8241 "endCaptures": {
8242 "0": {
8243 "name": "punctuation.definition.string.end.cpp"
8244 }
8245 },
8246 "name": "string.quoted.double.raw.regex.cpp",
8247 "patterns": [
8248 {
8249 "include": "source.regexp.python"
8250 }
8251 ]
8252 },
8253 {
8254 "begin": "((?:[uUL]8?)?R)\\\"(?:glsl|GLSL)\\(",
8255 "end": "\\)(?:glsl|GLSL)\\\"|(?=(?<!\\\\)\n)",
8256 "beginCaptures": {
8257 "0": {
8258 "name": "punctuation.definition.string.begin.cpp"
8259 },
8260 "1": {
8261 "name": "meta.encoding.cpp"
8262 }
8263 },
8264 "endCaptures": {
8265 "0": {
8266 "name": "punctuation.definition.string.end.cpp"
8267 }
8268 },
8269 "name": "meta.string.quoted.double.raw.glsl.cpp",
8270 "patterns": [
8271 {
8272 "include": "source.glsl"
8273 }
8274 ]
8275 },
8276 {
8277 "begin": "((?:[uUL]8?)?R)\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\(",
8278 "end": "\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\"|(?=(?<!\\\\)\n)",
8279 "beginCaptures": {
8280 "0": {
8281 "name": "punctuation.definition.string.begin.cpp"
8282 },
8283 "1": {
8284 "name": "meta.encoding.cpp"
8285 }
8286 },
8287 "endCaptures": {
8288 "0": {
8289 "name": "punctuation.definition.string.end.cpp"
8290 }
8291 },
8292 "name": "meta.string.quoted.double.raw.sql.cpp",
8293 "patterns": [
8294 {
8295 "include": "source.sql"
8296 }
8297 ]
8298 },
8299 {
8300 "begin": "((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",
8301 "beginCaptures": {
8302 "0": {
8303 "name": "punctuation.definition.string.begin"
8304 },
8305 "1": {
8306 "name": "meta.encoding"
8307 },
8308 "3": {
8309 "name": "invalid.illegal.delimiter-too-long"
8310 }
8311 },
8312 "end": "\\)\\2(\\3)\"|(?=(?<!\\\\)\n)",
8313 "endCaptures": {
8314 "0": {
8315 "name": "punctuation.definition.string.end"
8316 },
8317 "1": {
8318 "name": "invalid.illegal.delimiter-too-long"
8319 }
8320 },
8321 "name": "string.quoted.double.raw"
8322 }
8323 ]
8324 },
8325 "struct_block": {
8326 "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
8327 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
8328 "beginCaptures": {
8329 "0": {
8330 "name": "meta.head.struct.cpp"
8331 },
8332 "1": {
8333 "name": "storage.type.$1.cpp"
8334 },
8335 "2": {
8336 "patterns": [
8337 {
8338 "include": "source.cpp#inline_comment"
8339 }
8340 ]
8341 },
8342 "3": {
8343 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8344 },
8345 "4": {
8346 "name": "comment.block.cpp"
8347 },
8348 "5": {
8349 "patterns": [
8350 {
8351 "match": "\\*\\/",
8352 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8353 },
8354 {
8355 "match": "\\*",
8356 "name": "comment.block.cpp"
8357 }
8358 ]
8359 },
8360 "6": {
8361 "patterns": [
8362 {
8363 "include": "#attributes_context"
8364 },
8365 {
8366 "include": "source.cpp#number_literal"
8367 }
8368 ]
8369 },
8370 "7": {
8371 "patterns": [
8372 {
8373 "include": "source.cpp#inline_comment"
8374 }
8375 ]
8376 },
8377 "8": {
8378 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8379 },
8380 "9": {
8381 "name": "comment.block.cpp"
8382 },
8383 "10": {
8384 "patterns": [
8385 {
8386 "match": "\\*\\/",
8387 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8388 },
8389 {
8390 "match": "\\*",
8391 "name": "comment.block.cpp"
8392 }
8393 ]
8394 },
8395 "11": {
8396 "patterns": [
8397 {
8398 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
8399 "captures": {
8400 "1": {
8401 "name": "storage.type.modifier.final.cpp"
8402 },
8403 "2": {
8404 "patterns": [
8405 {
8406 "include": "source.cpp#inline_comment"
8407 }
8408 ]
8409 },
8410 "3": {
8411 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8412 },
8413 "4": {
8414 "name": "comment.block.cpp"
8415 },
8416 "5": {
8417 "patterns": [
8418 {
8419 "match": "\\*\\/",
8420 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8421 },
8422 {
8423 "match": "\\*",
8424 "name": "comment.block.cpp"
8425 }
8426 ]
8427 }
8428 }
8429 },
8430 {
8431 "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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
8432 "captures": {
8433 "1": {
8434 "name": "entity.name.type.struct.cpp"
8435 },
8436 "2": {
8437 "patterns": [
8438 {
8439 "include": "source.cpp#inline_comment"
8440 }
8441 ]
8442 },
8443 "3": {
8444 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8445 },
8446 "4": {
8447 "name": "comment.block.cpp"
8448 },
8449 "5": {
8450 "patterns": [
8451 {
8452 "match": "\\*\\/",
8453 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8454 },
8455 {
8456 "match": "\\*",
8457 "name": "comment.block.cpp"
8458 }
8459 ]
8460 },
8461 "6": {
8462 "name": "storage.type.modifier.final.cpp"
8463 },
8464 "7": {
8465 "patterns": [
8466 {
8467 "include": "source.cpp#inline_comment"
8468 }
8469 ]
8470 },
8471 "8": {
8472 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8473 },
8474 "9": {
8475 "name": "comment.block.cpp"
8476 },
8477 "10": {
8478 "patterns": [
8479 {
8480 "match": "\\*\\/",
8481 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8482 },
8483 {
8484 "match": "\\*",
8485 "name": "comment.block.cpp"
8486 }
8487 ]
8488 }
8489 }
8490 },
8491 {
8492 "match": "DLLEXPORT",
8493 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
8494 },
8495 {
8496 "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}))*",
8497 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
8498 }
8499 ]
8500 },
8501 "12": {
8502 "patterns": [
8503 {
8504 "include": "source.cpp#inline_comment"
8505 }
8506 ]
8507 },
8508 "13": {
8509 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8510 },
8511 "14": {
8512 "name": "comment.block.cpp"
8513 },
8514 "15": {
8515 "patterns": [
8516 {
8517 "match": "\\*\\/",
8518 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8519 },
8520 {
8521 "match": "\\*",
8522 "name": "comment.block.cpp"
8523 }
8524 ]
8525 },
8526 "16": {
8527 "patterns": [
8528 {
8529 "include": "source.cpp#inline_comment"
8530 }
8531 ]
8532 },
8533 "17": {
8534 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8535 },
8536 "18": {
8537 "name": "comment.block.cpp"
8538 },
8539 "19": {
8540 "patterns": [
8541 {
8542 "match": "\\*\\/",
8543 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8544 },
8545 {
8546 "match": "\\*",
8547 "name": "comment.block.cpp"
8548 }
8549 ]
8550 },
8551 "20": {
8552 "name": "punctuation.separator.colon.inheritance.cpp"
8553 }
8554 },
8555 "endCaptures": {
8556 "1": {
8557 "name": "punctuation.terminator.statement.cpp"
8558 },
8559 "2": {
8560 "name": "punctuation.terminator.statement.cpp"
8561 }
8562 },
8563 "name": "meta.block.struct.cpp",
8564 "patterns": [
8565 {
8566 "begin": "\\G ?",
8567 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
8568 "beginCaptures": {},
8569 "endCaptures": {
8570 "0": {
8571 "name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
8572 }
8573 },
8574 "name": "meta.head.struct.cpp",
8575 "patterns": [
8576 {
8577 "include": "#ever_present_context"
8578 },
8579 {
8580 "include": "#inheritance_context"
8581 },
8582 {
8583 "include": "#template_call_range"
8584 }
8585 ]
8586 },
8587 {
8588 "begin": "(?<=\\{|<%|\\?\\?<)",
8589 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
8590 "beginCaptures": {},
8591 "endCaptures": {
8592 "0": {
8593 "name": "punctuation.section.block.end.bracket.curly.struct.cpp"
8594 }
8595 },
8596 "name": "meta.body.struct.cpp",
8597 "patterns": [
8598 {
8599 "include": "#function_pointer"
8600 },
8601 {
8602 "include": "#static_assert"
8603 },
8604 {
8605 "include": "#constructor_inline"
8606 },
8607 {
8608 "include": "#destructor_inline"
8609 },
8610 {
8611 "include": "$self"
8612 }
8613 ]
8614 },
8615 {
8616 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
8617 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
8618 "beginCaptures": {},
8619 "endCaptures": {},
8620 "name": "meta.tail.struct.cpp",
8621 "patterns": [
8622 {
8623 "include": "$self"
8624 }
8625 ]
8626 }
8627 ]
8628 },
8629 "switch_conditional_parentheses": {
8630 "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
8631 "end": "\\)|(?=(?<!\\\\)\n)",
8632 "beginCaptures": {
8633 "1": {
8634 "patterns": [
8635 {
8636 "include": "source.cpp#inline_comment"
8637 }
8638 ]
8639 },
8640 "2": {
8641 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8642 },
8643 "3": {
8644 "name": "comment.block.cpp"
8645 },
8646 "4": {
8647 "patterns": [
8648 {
8649 "match": "\\*\\/",
8650 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8651 },
8652 {
8653 "match": "\\*",
8654 "name": "comment.block.cpp"
8655 }
8656 ]
8657 },
8658 "5": {
8659 "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp"
8660 }
8661 },
8662 "endCaptures": {
8663 "0": {
8664 "name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp"
8665 }
8666 },
8667 "name": "meta.conditional.switch.cpp",
8668 "patterns": [
8669 {
8670 "include": "#evaluation_context"
8671 }
8672 ]
8673 },
8674 "switch_statement": {
8675 "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)switch(?!\\w))",
8676 "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
8677 "beginCaptures": {
8678 "0": {
8679 "name": "meta.head.switch.cpp"
8680 },
8681 "1": {
8682 "patterns": [
8683 {
8684 "include": "source.cpp#inline_comment"
8685 }
8686 ]
8687 },
8688 "2": {
8689 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
8690 },
8691 "3": {
8692 "name": "comment.block.cpp"
8693 },
8694 "4": {
8695 "patterns": [
8696 {
8697 "match": "\\*\\/",
8698 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
8699 },
8700 {
8701 "match": "\\*",
8702 "name": "comment.block.cpp"
8703 }
8704 ]
8705 },
8706 "5": {
8707 "name": "keyword.control.switch.cpp"
8708 }
8709 },
8710 "endCaptures": {},
8711 "name": "meta.block.switch.cpp",
8712 "patterns": [
8713 {
8714 "begin": "\\G ?",
8715 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
8716 "beginCaptures": {},
8717 "endCaptures": {
8718 "0": {
8719 "name": "punctuation.section.block.begin.bracket.curly.switch.cpp"
8720 }
8721 },
8722 "name": "meta.head.switch.cpp",
8723 "patterns": [
8724 {
8725 "include": "#switch_conditional_parentheses"
8726 },
8727 {
8728 "include": "$self"
8729 }
8730 ]
8731 },
8732 {
8733 "begin": "(?<=\\{|<%|\\?\\?<)",
8734 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
8735 "beginCaptures": {},
8736 "endCaptures": {
8737 "0": {
8738 "name": "punctuation.section.block.end.bracket.curly.switch.cpp"
8739 }
8740 },
8741 "name": "meta.body.switch.cpp",
8742 "patterns": [
8743 {
8744 "include": "#default_statement"
8745 },
8746 {
8747 "include": "#case_statement"
8748 },
8749 {
8750 "include": "$self"
8751 }
8752 ]
8753 },
8754 {
8755 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
8756 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
8757 "beginCaptures": {},
8758 "endCaptures": {},
8759 "name": "meta.tail.switch.cpp",
8760 "patterns": [
8761 {
8762 "include": "$self"
8763 }
8764 ]
8765 }
8766 ]
8767 },
8768 "template_call_context": {
8769 "patterns": [
8770 {
8771 "include": "#ever_present_context"
8772 },
8773 {
8774 "include": "#template_call_range"
8775 },
8776 {
8777 "include": "#storage_types"
8778 },
8779 {
8780 "include": "source.cpp#language_constants"
8781 },
8782 {
8783 "include": "source.cpp#scope_resolution_template_call_inner_generated"
8784 },
8785 {
8786 "include": "#operators"
8787 },
8788 {
8789 "include": "source.cpp#number_literal"
8790 },
8791 {
8792 "include": "#string_context"
8793 },
8794 {
8795 "include": "source.cpp#comma_in_template_argument"
8796 },
8797 {
8798 "include": "source.cpp#qualified_type"
8799 }
8800 ]
8801 },
8802 "template_call_range": {
8803 "begin": "<",
8804 "end": ">|(?=(?<!\\\\)\n)",
8805 "beginCaptures": {
8806 "0": {
8807 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
8808 }
8809 },
8810 "endCaptures": {
8811 "0": {
8812 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
8813 }
8814 },
8815 "name": "meta.template.call.cpp",
8816 "patterns": [
8817 {
8818 "include": "#template_call_context"
8819 }
8820 ]
8821 },
8822 "template_definition": {
8823 "begin": "(?<!\\w)(template)(?:(?:\\s)+)?(<)",
8824 "end": ">|(?=(?<!\\\\)\n)",
8825 "beginCaptures": {
8826 "1": {
8827 "name": "storage.type.template.cpp"
8828 },
8829 "2": {
8830 "name": "punctuation.section.angle-brackets.start.template.definition.cpp"
8831 }
8832 },
8833 "endCaptures": {
8834 "0": {
8835 "name": "punctuation.section.angle-brackets.end.template.definition.cpp"
8836 }
8837 },
8838 "name": "meta.template.definition.cpp",
8839 "patterns": [
8840 {
8841 "begin": "(?<=\\w)(?:(?:\\s)+)?<",
8842 "end": ">|(?=(?<!\\\\)\n)",
8843 "beginCaptures": {
8844 "0": {
8845 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
8846 }
8847 },
8848 "endCaptures": {
8849 "0": {
8850 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
8851 }
8852 },
8853 "patterns": [
8854 {
8855 "include": "#template_call_context"
8856 }
8857 ]
8858 },
8859 {
8860 "include": "#template_definition_context"
8861 }
8862 ]
8863 },
8864 "template_definition_context": {
8865 "patterns": [
8866 {
8867 "include": "source.cpp#scope_resolution_template_definition_inner_generated"
8868 },
8869 {
8870 "include": "source.cpp#template_definition_argument"
8871 },
8872 {
8873 "include": "source.cpp#template_argument_defaulted"
8874 },
8875 {
8876 "include": "source.cpp#template_call_innards"
8877 },
8878 {
8879 "include": "#evaluation_context"
8880 }
8881 ]
8882 },
8883 "ternary_operator": {
8884 "begin": "\\?",
8885 "end": ":|(?=(?<!\\\\)\n)",
8886 "beginCaptures": {
8887 "0": {
8888 "name": "keyword.operator.ternary.cpp"
8889 }
8890 },
8891 "endCaptures": {
8892 "0": {
8893 "name": "keyword.operator.ternary.cpp"
8894 }
8895 },
8896 "patterns": [
8897 {
8898 "include": "#ever_present_context"
8899 },
8900 {
8901 "include": "#string_context"
8902 },
8903 {
8904 "include": "source.cpp#number_literal"
8905 },
8906 {
8907 "include": "#method_access"
8908 },
8909 {
8910 "include": "source.cpp#member_access"
8911 },
8912 {
8913 "include": "source.cpp#predefined_macros"
8914 },
8915 {
8916 "include": "#operators"
8917 },
8918 {
8919 "include": "source.cpp#memory_operators"
8920 },
8921 {
8922 "include": "source.cpp#wordlike_operators"
8923 },
8924 {
8925 "include": "source.cpp#type_casting_operators"
8926 },
8927 {
8928 "include": "source.cpp#control_flow_keywords"
8929 },
8930 {
8931 "include": "source.cpp#exception_keywords"
8932 },
8933 {
8934 "include": "source.cpp#the_this_keyword"
8935 },
8936 {
8937 "include": "source.cpp#language_constants"
8938 },
8939 {
8940 "include": "#builtin_storage_type_initilizer"
8941 },
8942 {
8943 "include": "source.cpp#qualifiers_and_specifiers_post_parameters"
8944 },
8945 {
8946 "include": "source.cpp#functional_specifiers_pre_parameters"
8947 },
8948 {
8949 "include": "#storage_types"
8950 },
8951 {
8952 "include": "#lambdas"
8953 },
8954 {
8955 "include": "#attributes_context"
8956 },
8957 {
8958 "include": "#parentheses"
8959 },
8960 {
8961 "include": "#function_call"
8962 },
8963 {
8964 "include": "source.cpp#scope_resolution_inner_generated"
8965 },
8966 {
8967 "include": "#square_brackets"
8968 },
8969 {
8970 "include": "source.cpp#semicolon"
8971 },
8972 {
8973 "include": "source.cpp#comma"
8974 }
8975 ],
8976 "applyEndPatternLast": 1
8977 },
8978 "typedef_class": {
8979 "begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)class(?!\\w))",
8980 "end": "(?<=;)|(?=(?<!\\\\)\n)",
8981 "beginCaptures": {
8982 "1": {
8983 "name": "keyword.other.typedef.cpp"
8984 }
8985 },
8986 "endCaptures": {},
8987 "patterns": [
8988 {
8989 "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
8990 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
8991 "beginCaptures": {
8992 "0": {
8993 "name": "meta.head.class.cpp"
8994 },
8995 "1": {
8996 "name": "storage.type.$1.cpp"
8997 },
8998 "2": {
8999 "patterns": [
9000 {
9001 "include": "source.cpp#inline_comment"
9002 }
9003 ]
9004 },
9005 "3": {
9006 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9007 },
9008 "4": {
9009 "name": "comment.block.cpp"
9010 },
9011 "5": {
9012 "patterns": [
9013 {
9014 "match": "\\*\\/",
9015 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9016 },
9017 {
9018 "match": "\\*",
9019 "name": "comment.block.cpp"
9020 }
9021 ]
9022 },
9023 "6": {
9024 "patterns": [
9025 {
9026 "include": "#attributes_context"
9027 },
9028 {
9029 "include": "source.cpp#number_literal"
9030 }
9031 ]
9032 },
9033 "7": {
9034 "patterns": [
9035 {
9036 "include": "source.cpp#inline_comment"
9037 }
9038 ]
9039 },
9040 "8": {
9041 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9042 },
9043 "9": {
9044 "name": "comment.block.cpp"
9045 },
9046 "10": {
9047 "patterns": [
9048 {
9049 "match": "\\*\\/",
9050 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9051 },
9052 {
9053 "match": "\\*",
9054 "name": "comment.block.cpp"
9055 }
9056 ]
9057 },
9058 "11": {
9059 "patterns": [
9060 {
9061 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
9062 "captures": {
9063 "1": {
9064 "name": "storage.type.modifier.final.cpp"
9065 },
9066 "2": {
9067 "patterns": [
9068 {
9069 "include": "source.cpp#inline_comment"
9070 }
9071 ]
9072 },
9073 "3": {
9074 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9075 },
9076 "4": {
9077 "name": "comment.block.cpp"
9078 },
9079 "5": {
9080 "patterns": [
9081 {
9082 "match": "\\*\\/",
9083 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9084 },
9085 {
9086 "match": "\\*",
9087 "name": "comment.block.cpp"
9088 }
9089 ]
9090 }
9091 }
9092 },
9093 {
9094 "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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
9095 "captures": {
9096 "1": {
9097 "name": "entity.name.type.class.cpp"
9098 },
9099 "2": {
9100 "patterns": [
9101 {
9102 "include": "source.cpp#inline_comment"
9103 }
9104 ]
9105 },
9106 "3": {
9107 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9108 },
9109 "4": {
9110 "name": "comment.block.cpp"
9111 },
9112 "5": {
9113 "patterns": [
9114 {
9115 "match": "\\*\\/",
9116 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9117 },
9118 {
9119 "match": "\\*",
9120 "name": "comment.block.cpp"
9121 }
9122 ]
9123 },
9124 "6": {
9125 "name": "storage.type.modifier.final.cpp"
9126 },
9127 "7": {
9128 "patterns": [
9129 {
9130 "include": "source.cpp#inline_comment"
9131 }
9132 ]
9133 },
9134 "8": {
9135 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9136 },
9137 "9": {
9138 "name": "comment.block.cpp"
9139 },
9140 "10": {
9141 "patterns": [
9142 {
9143 "match": "\\*\\/",
9144 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9145 },
9146 {
9147 "match": "\\*",
9148 "name": "comment.block.cpp"
9149 }
9150 ]
9151 }
9152 }
9153 },
9154 {
9155 "match": "DLLEXPORT",
9156 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
9157 },
9158 {
9159 "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}))*",
9160 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
9161 }
9162 ]
9163 },
9164 "12": {
9165 "patterns": [
9166 {
9167 "include": "source.cpp#inline_comment"
9168 }
9169 ]
9170 },
9171 "13": {
9172 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9173 },
9174 "14": {
9175 "name": "comment.block.cpp"
9176 },
9177 "15": {
9178 "patterns": [
9179 {
9180 "match": "\\*\\/",
9181 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9182 },
9183 {
9184 "match": "\\*",
9185 "name": "comment.block.cpp"
9186 }
9187 ]
9188 },
9189 "16": {
9190 "patterns": [
9191 {
9192 "include": "source.cpp#inline_comment"
9193 }
9194 ]
9195 },
9196 "17": {
9197 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9198 },
9199 "18": {
9200 "name": "comment.block.cpp"
9201 },
9202 "19": {
9203 "patterns": [
9204 {
9205 "match": "\\*\\/",
9206 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9207 },
9208 {
9209 "match": "\\*",
9210 "name": "comment.block.cpp"
9211 }
9212 ]
9213 },
9214 "20": {
9215 "name": "punctuation.separator.colon.inheritance.cpp"
9216 }
9217 },
9218 "endCaptures": {
9219 "1": {
9220 "name": "punctuation.terminator.statement.cpp"
9221 },
9222 "2": {
9223 "name": "punctuation.terminator.statement.cpp"
9224 }
9225 },
9226 "name": "meta.block.class.cpp",
9227 "patterns": [
9228 {
9229 "begin": "\\G ?",
9230 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
9231 "beginCaptures": {},
9232 "endCaptures": {
9233 "0": {
9234 "name": "punctuation.section.block.begin.bracket.curly.class.cpp"
9235 }
9236 },
9237 "name": "meta.head.class.cpp",
9238 "patterns": [
9239 {
9240 "include": "#ever_present_context"
9241 },
9242 {
9243 "include": "#inheritance_context"
9244 },
9245 {
9246 "include": "#template_call_range"
9247 }
9248 ]
9249 },
9250 {
9251 "begin": "(?<=\\{|<%|\\?\\?<)",
9252 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
9253 "beginCaptures": {},
9254 "endCaptures": {
9255 "0": {
9256 "name": "punctuation.section.block.end.bracket.curly.class.cpp"
9257 }
9258 },
9259 "name": "meta.body.class.cpp",
9260 "patterns": [
9261 {
9262 "include": "#function_pointer"
9263 },
9264 {
9265 "include": "#static_assert"
9266 },
9267 {
9268 "include": "#constructor_inline"
9269 },
9270 {
9271 "include": "#destructor_inline"
9272 },
9273 {
9274 "include": "$self"
9275 }
9276 ]
9277 },
9278 {
9279 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
9280 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
9281 "beginCaptures": {},
9282 "endCaptures": {},
9283 "name": "meta.tail.class.cpp",
9284 "patterns": [
9285 {
9286 "match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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))",
9287 "captures": {
9288 "1": {
9289 "patterns": [
9290 {
9291 "match": "\\*",
9292 "name": "storage.modifier.pointer.cpp"
9293 },
9294 {
9295 "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
9296 "captures": {
9297 "1": {
9298 "patterns": [
9299 {
9300 "include": "source.cpp#inline_comment"
9301 }
9302 ]
9303 },
9304 "2": {
9305 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9306 },
9307 "3": {
9308 "name": "comment.block.cpp"
9309 },
9310 "4": {
9311 "patterns": [
9312 {
9313 "match": "\\*\\/",
9314 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9315 },
9316 {
9317 "match": "\\*",
9318 "name": "comment.block.cpp"
9319 }
9320 ]
9321 }
9322 },
9323 "name": "invalid.illegal.reference-type.cpp"
9324 },
9325 {
9326 "match": "\\&",
9327 "name": "storage.modifier.reference.cpp"
9328 }
9329 ]
9330 },
9331 "2": {
9332 "patterns": [
9333 {
9334 "include": "source.cpp#inline_comment"
9335 }
9336 ]
9337 },
9338 "3": {
9339 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9340 },
9341 "4": {
9342 "name": "comment.block.cpp"
9343 },
9344 "5": {
9345 "patterns": [
9346 {
9347 "match": "\\*\\/",
9348 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9349 },
9350 {
9351 "match": "\\*",
9352 "name": "comment.block.cpp"
9353 }
9354 ]
9355 },
9356 "6": {
9357 "patterns": [
9358 {
9359 "include": "source.cpp#inline_comment"
9360 }
9361 ]
9362 },
9363 "7": {
9364 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9365 },
9366 "8": {
9367 "name": "comment.block.cpp"
9368 },
9369 "9": {
9370 "patterns": [
9371 {
9372 "match": "\\*\\/",
9373 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9374 },
9375 {
9376 "match": "\\*",
9377 "name": "comment.block.cpp"
9378 }
9379 ]
9380 },
9381 "10": {
9382 "patterns": [
9383 {
9384 "include": "source.cpp#inline_comment"
9385 }
9386 ]
9387 },
9388 "11": {
9389 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9390 },
9391 "12": {
9392 "name": "comment.block.cpp"
9393 },
9394 "13": {
9395 "patterns": [
9396 {
9397 "match": "\\*\\/",
9398 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9399 },
9400 {
9401 "match": "\\*",
9402 "name": "comment.block.cpp"
9403 }
9404 ]
9405 },
9406 "14": {
9407 "name": "entity.name.type.alias.cpp"
9408 }
9409 }
9410 },
9411 {
9412 "match": ","
9413 }
9414 ]
9415 }
9416 ]
9417 }
9418 ]
9419 },
9420 "typedef_function_pointer": {
9421 "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*\\))",
9422 "end": "(?<=;)|(?=(?<!\\\\)\n)",
9423 "beginCaptures": {
9424 "1": {
9425 "name": "keyword.other.typedef.cpp"
9426 }
9427 },
9428 "endCaptures": {},
9429 "patterns": [
9430 {
9431 "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:const_cast)|(?:co_return)|(?:constexpr)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:namespace)|(?:constinit)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:noexcept)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?:if)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)?(\\()",
9432 "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)",
9433 "beginCaptures": {
9434 "1": {
9435 "name": "meta.qualified_type.cpp",
9436 "patterns": [
9437 {
9438 "match": "::",
9439 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
9440 },
9441 {
9442 "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)",
9443 "name": "storage.type.$0.cpp"
9444 },
9445 {
9446 "include": "#attributes_context"
9447 },
9448 {
9449 "include": "#storage_types"
9450 },
9451 {
9452 "include": "source.cpp#number_literal"
9453 },
9454 {
9455 "include": "#string_context"
9456 },
9457 {
9458 "include": "source.cpp#comma"
9459 },
9460 {
9461 "include": "source.cpp#scope_resolution_inner_generated"
9462 },
9463 {
9464 "begin": "<",
9465 "end": ">|(?=(?<!\\\\)\n)",
9466 "beginCaptures": {
9467 "0": {
9468 "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
9469 }
9470 },
9471 "endCaptures": {
9472 "0": {
9473 "name": "punctuation.section.angle-brackets.end.template.call.cpp"
9474 }
9475 },
9476 "name": "meta.template.call.cpp",
9477 "patterns": [
9478 {
9479 "include": "#template_call_context"
9480 }
9481 ]
9482 },
9483 {
9484 "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}))*",
9485 "name": "entity.name.type.cpp"
9486 }
9487 ]
9488 },
9489 "2": {
9490 "patterns": [
9491 {
9492 "include": "#attributes_context"
9493 },
9494 {
9495 "include": "source.cpp#number_literal"
9496 }
9497 ]
9498 },
9499 "3": {
9500 "patterns": [
9501 {
9502 "include": "source.cpp#inline_comment"
9503 }
9504 ]
9505 },
9506 "4": {
9507 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9508 },
9509 "5": {
9510 "name": "comment.block.cpp"
9511 },
9512 "6": {
9513 "patterns": [
9514 {
9515 "match": "\\*\\/",
9516 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9517 },
9518 {
9519 "match": "\\*",
9520 "name": "comment.block.cpp"
9521 }
9522 ]
9523 },
9524 "7": {
9525 "patterns": [
9526 {
9527 "include": "source.cpp#inline_comment"
9528 }
9529 ]
9530 },
9531 "8": {
9532 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9533 },
9534 "9": {
9535 "name": "comment.block.cpp"
9536 },
9537 "10": {
9538 "patterns": [
9539 {
9540 "match": "\\*\\/",
9541 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9542 },
9543 {
9544 "match": "\\*",
9545 "name": "comment.block.cpp"
9546 }
9547 ]
9548 },
9549 "11": {
9550 "patterns": [
9551 {
9552 "match": "::",
9553 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
9554 },
9555 {
9556 "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)",
9557 "name": "entity.name.scope-resolution.type.cpp"
9558 },
9559 {
9560 "include": "#template_call_range"
9561 }
9562 ]
9563 },
9564 "12": {
9565 "patterns": [
9566 {
9567 "include": "#template_call_range"
9568 }
9569 ]
9570 },
9571 "13": {},
9572 "14": {
9573 "patterns": [
9574 {
9575 "include": "source.cpp#inline_comment"
9576 }
9577 ]
9578 },
9579 "15": {
9580 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9581 },
9582 "16": {
9583 "name": "comment.block.cpp"
9584 },
9585 "17": {
9586 "patterns": [
9587 {
9588 "match": "\\*\\/",
9589 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9590 },
9591 {
9592 "match": "\\*",
9593 "name": "comment.block.cpp"
9594 }
9595 ]
9596 },
9597 "18": {},
9598 "19": {
9599 "patterns": [
9600 {
9601 "match": "\\*",
9602 "name": "storage.modifier.pointer.cpp"
9603 },
9604 {
9605 "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
9606 "captures": {
9607 "1": {
9608 "patterns": [
9609 {
9610 "include": "source.cpp#inline_comment"
9611 }
9612 ]
9613 },
9614 "2": {
9615 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9616 },
9617 "3": {
9618 "name": "comment.block.cpp"
9619 },
9620 "4": {
9621 "patterns": [
9622 {
9623 "match": "\\*\\/",
9624 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9625 },
9626 {
9627 "match": "\\*",
9628 "name": "comment.block.cpp"
9629 }
9630 ]
9631 }
9632 },
9633 "name": "invalid.illegal.reference-type.cpp"
9634 },
9635 {
9636 "match": "\\&",
9637 "name": "storage.modifier.reference.cpp"
9638 }
9639 ]
9640 },
9641 "20": {
9642 "patterns": [
9643 {
9644 "include": "source.cpp#inline_comment"
9645 }
9646 ]
9647 },
9648 "21": {
9649 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9650 },
9651 "22": {
9652 "name": "comment.block.cpp"
9653 },
9654 "23": {
9655 "patterns": [
9656 {
9657 "match": "\\*\\/",
9658 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9659 },
9660 {
9661 "match": "\\*",
9662 "name": "comment.block.cpp"
9663 }
9664 ]
9665 },
9666 "24": {
9667 "patterns": [
9668 {
9669 "include": "source.cpp#inline_comment"
9670 }
9671 ]
9672 },
9673 "25": {
9674 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9675 },
9676 "26": {
9677 "name": "comment.block.cpp"
9678 },
9679 "27": {
9680 "patterns": [
9681 {
9682 "match": "\\*\\/",
9683 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9684 },
9685 {
9686 "match": "\\*",
9687 "name": "comment.block.cpp"
9688 }
9689 ]
9690 },
9691 "28": {
9692 "patterns": [
9693 {
9694 "include": "source.cpp#inline_comment"
9695 }
9696 ]
9697 },
9698 "29": {
9699 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9700 },
9701 "30": {
9702 "name": "comment.block.cpp"
9703 },
9704 "31": {
9705 "patterns": [
9706 {
9707 "match": "\\*\\/",
9708 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9709 },
9710 {
9711 "match": "\\*",
9712 "name": "comment.block.cpp"
9713 }
9714 ]
9715 },
9716 "32": {
9717 "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
9718 },
9719 "33": {
9720 "name": "punctuation.definition.function.pointer.dereference.cpp"
9721 },
9722 "34": {
9723 "name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp"
9724 },
9725 "35": {
9726 "name": "punctuation.definition.begin.bracket.square.cpp"
9727 },
9728 "36": {
9729 "patterns": [
9730 {
9731 "include": "#evaluation_context"
9732 }
9733 ]
9734 },
9735 "37": {
9736 "name": "punctuation.definition.end.bracket.square.cpp"
9737 },
9738 "38": {
9739 "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
9740 },
9741 "39": {
9742 "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
9743 }
9744 },
9745 "endCaptures": {
9746 "1": {
9747 "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
9748 },
9749 "2": {
9750 "patterns": [
9751 {
9752 "include": "source.cpp#inline_comment"
9753 }
9754 ]
9755 },
9756 "3": {
9757 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9758 },
9759 "4": {
9760 "name": "comment.block.cpp"
9761 },
9762 "5": {
9763 "patterns": [
9764 {
9765 "match": "\\*\\/",
9766 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9767 },
9768 {
9769 "match": "\\*",
9770 "name": "comment.block.cpp"
9771 }
9772 ]
9773 }
9774 },
9775 "patterns": [
9776 {
9777 "include": "#function_parameter_context"
9778 }
9779 ]
9780 }
9781 ]
9782 },
9783 "typedef_struct": {
9784 "begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)struct(?!\\w))",
9785 "end": "(?<=;)|(?=(?<!\\\\)\n)",
9786 "beginCaptures": {
9787 "1": {
9788 "name": "keyword.other.typedef.cpp"
9789 }
9790 },
9791 "endCaptures": {},
9792 "patterns": [
9793 {
9794 "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
9795 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
9796 "beginCaptures": {
9797 "0": {
9798 "name": "meta.head.struct.cpp"
9799 },
9800 "1": {
9801 "name": "storage.type.$1.cpp"
9802 },
9803 "2": {
9804 "patterns": [
9805 {
9806 "include": "source.cpp#inline_comment"
9807 }
9808 ]
9809 },
9810 "3": {
9811 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9812 },
9813 "4": {
9814 "name": "comment.block.cpp"
9815 },
9816 "5": {
9817 "patterns": [
9818 {
9819 "match": "\\*\\/",
9820 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9821 },
9822 {
9823 "match": "\\*",
9824 "name": "comment.block.cpp"
9825 }
9826 ]
9827 },
9828 "6": {
9829 "patterns": [
9830 {
9831 "include": "#attributes_context"
9832 },
9833 {
9834 "include": "source.cpp#number_literal"
9835 }
9836 ]
9837 },
9838 "7": {
9839 "patterns": [
9840 {
9841 "include": "source.cpp#inline_comment"
9842 }
9843 ]
9844 },
9845 "8": {
9846 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9847 },
9848 "9": {
9849 "name": "comment.block.cpp"
9850 },
9851 "10": {
9852 "patterns": [
9853 {
9854 "match": "\\*\\/",
9855 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9856 },
9857 {
9858 "match": "\\*",
9859 "name": "comment.block.cpp"
9860 }
9861 ]
9862 },
9863 "11": {
9864 "patterns": [
9865 {
9866 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
9867 "captures": {
9868 "1": {
9869 "name": "storage.type.modifier.final.cpp"
9870 },
9871 "2": {
9872 "patterns": [
9873 {
9874 "include": "source.cpp#inline_comment"
9875 }
9876 ]
9877 },
9878 "3": {
9879 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9880 },
9881 "4": {
9882 "name": "comment.block.cpp"
9883 },
9884 "5": {
9885 "patterns": [
9886 {
9887 "match": "\\*\\/",
9888 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9889 },
9890 {
9891 "match": "\\*",
9892 "name": "comment.block.cpp"
9893 }
9894 ]
9895 }
9896 }
9897 },
9898 {
9899 "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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
9900 "captures": {
9901 "1": {
9902 "name": "entity.name.type.struct.cpp"
9903 },
9904 "2": {
9905 "patterns": [
9906 {
9907 "include": "source.cpp#inline_comment"
9908 }
9909 ]
9910 },
9911 "3": {
9912 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9913 },
9914 "4": {
9915 "name": "comment.block.cpp"
9916 },
9917 "5": {
9918 "patterns": [
9919 {
9920 "match": "\\*\\/",
9921 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9922 },
9923 {
9924 "match": "\\*",
9925 "name": "comment.block.cpp"
9926 }
9927 ]
9928 },
9929 "6": {
9930 "name": "storage.type.modifier.final.cpp"
9931 },
9932 "7": {
9933 "patterns": [
9934 {
9935 "include": "source.cpp#inline_comment"
9936 }
9937 ]
9938 },
9939 "8": {
9940 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9941 },
9942 "9": {
9943 "name": "comment.block.cpp"
9944 },
9945 "10": {
9946 "patterns": [
9947 {
9948 "match": "\\*\\/",
9949 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9950 },
9951 {
9952 "match": "\\*",
9953 "name": "comment.block.cpp"
9954 }
9955 ]
9956 }
9957 }
9958 },
9959 {
9960 "match": "DLLEXPORT",
9961 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
9962 },
9963 {
9964 "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}))*",
9965 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
9966 }
9967 ]
9968 },
9969 "12": {
9970 "patterns": [
9971 {
9972 "include": "source.cpp#inline_comment"
9973 }
9974 ]
9975 },
9976 "13": {
9977 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
9978 },
9979 "14": {
9980 "name": "comment.block.cpp"
9981 },
9982 "15": {
9983 "patterns": [
9984 {
9985 "match": "\\*\\/",
9986 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
9987 },
9988 {
9989 "match": "\\*",
9990 "name": "comment.block.cpp"
9991 }
9992 ]
9993 },
9994 "16": {
9995 "patterns": [
9996 {
9997 "include": "source.cpp#inline_comment"
9998 }
9999 ]
10000 },
10001 "17": {
10002 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10003 },
10004 "18": {
10005 "name": "comment.block.cpp"
10006 },
10007 "19": {
10008 "patterns": [
10009 {
10010 "match": "\\*\\/",
10011 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10012 },
10013 {
10014 "match": "\\*",
10015 "name": "comment.block.cpp"
10016 }
10017 ]
10018 },
10019 "20": {
10020 "name": "punctuation.separator.colon.inheritance.cpp"
10021 }
10022 },
10023 "endCaptures": {
10024 "1": {
10025 "name": "punctuation.terminator.statement.cpp"
10026 },
10027 "2": {
10028 "name": "punctuation.terminator.statement.cpp"
10029 }
10030 },
10031 "name": "meta.block.struct.cpp",
10032 "patterns": [
10033 {
10034 "begin": "\\G ?",
10035 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
10036 "beginCaptures": {},
10037 "endCaptures": {
10038 "0": {
10039 "name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
10040 }
10041 },
10042 "name": "meta.head.struct.cpp",
10043 "patterns": [
10044 {
10045 "include": "#ever_present_context"
10046 },
10047 {
10048 "include": "#inheritance_context"
10049 },
10050 {
10051 "include": "#template_call_range"
10052 }
10053 ]
10054 },
10055 {
10056 "begin": "(?<=\\{|<%|\\?\\?<)",
10057 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
10058 "beginCaptures": {},
10059 "endCaptures": {
10060 "0": {
10061 "name": "punctuation.section.block.end.bracket.curly.struct.cpp"
10062 }
10063 },
10064 "name": "meta.body.struct.cpp",
10065 "patterns": [
10066 {
10067 "include": "#function_pointer"
10068 },
10069 {
10070 "include": "#static_assert"
10071 },
10072 {
10073 "include": "#constructor_inline"
10074 },
10075 {
10076 "include": "#destructor_inline"
10077 },
10078 {
10079 "include": "$self"
10080 }
10081 ]
10082 },
10083 {
10084 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
10085 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
10086 "beginCaptures": {},
10087 "endCaptures": {},
10088 "name": "meta.tail.struct.cpp",
10089 "patterns": [
10090 {
10091 "match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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))",
10092 "captures": {
10093 "1": {
10094 "patterns": [
10095 {
10096 "match": "\\*",
10097 "name": "storage.modifier.pointer.cpp"
10098 },
10099 {
10100 "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
10101 "captures": {
10102 "1": {
10103 "patterns": [
10104 {
10105 "include": "source.cpp#inline_comment"
10106 }
10107 ]
10108 },
10109 "2": {
10110 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10111 },
10112 "3": {
10113 "name": "comment.block.cpp"
10114 },
10115 "4": {
10116 "patterns": [
10117 {
10118 "match": "\\*\\/",
10119 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10120 },
10121 {
10122 "match": "\\*",
10123 "name": "comment.block.cpp"
10124 }
10125 ]
10126 }
10127 },
10128 "name": "invalid.illegal.reference-type.cpp"
10129 },
10130 {
10131 "match": "\\&",
10132 "name": "storage.modifier.reference.cpp"
10133 }
10134 ]
10135 },
10136 "2": {
10137 "patterns": [
10138 {
10139 "include": "source.cpp#inline_comment"
10140 }
10141 ]
10142 },
10143 "3": {
10144 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10145 },
10146 "4": {
10147 "name": "comment.block.cpp"
10148 },
10149 "5": {
10150 "patterns": [
10151 {
10152 "match": "\\*\\/",
10153 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10154 },
10155 {
10156 "match": "\\*",
10157 "name": "comment.block.cpp"
10158 }
10159 ]
10160 },
10161 "6": {
10162 "patterns": [
10163 {
10164 "include": "source.cpp#inline_comment"
10165 }
10166 ]
10167 },
10168 "7": {
10169 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10170 },
10171 "8": {
10172 "name": "comment.block.cpp"
10173 },
10174 "9": {
10175 "patterns": [
10176 {
10177 "match": "\\*\\/",
10178 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10179 },
10180 {
10181 "match": "\\*",
10182 "name": "comment.block.cpp"
10183 }
10184 ]
10185 },
10186 "10": {
10187 "patterns": [
10188 {
10189 "include": "source.cpp#inline_comment"
10190 }
10191 ]
10192 },
10193 "11": {
10194 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10195 },
10196 "12": {
10197 "name": "comment.block.cpp"
10198 },
10199 "13": {
10200 "patterns": [
10201 {
10202 "match": "\\*\\/",
10203 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10204 },
10205 {
10206 "match": "\\*",
10207 "name": "comment.block.cpp"
10208 }
10209 ]
10210 },
10211 "14": {
10212 "name": "entity.name.type.alias.cpp"
10213 }
10214 }
10215 },
10216 {
10217 "match": ","
10218 }
10219 ]
10220 }
10221 ]
10222 }
10223 ]
10224 },
10225 "typedef_union": {
10226 "begin": "((?<!\\w)typedef(?!\\w))(?:(?:\\s)+)?(?=(?<!\\w)union(?!\\w))",
10227 "end": "(?<=;)|(?=(?<!\\\\)\n)",
10228 "beginCaptures": {
10229 "1": {
10230 "name": "keyword.other.typedef.cpp"
10231 }
10232 },
10233 "endCaptures": {},
10234 "patterns": [
10235 {
10236 "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
10237 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
10238 "beginCaptures": {
10239 "0": {
10240 "name": "meta.head.union.cpp"
10241 },
10242 "1": {
10243 "name": "storage.type.$1.cpp"
10244 },
10245 "2": {
10246 "patterns": [
10247 {
10248 "include": "source.cpp#inline_comment"
10249 }
10250 ]
10251 },
10252 "3": {
10253 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10254 },
10255 "4": {
10256 "name": "comment.block.cpp"
10257 },
10258 "5": {
10259 "patterns": [
10260 {
10261 "match": "\\*\\/",
10262 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10263 },
10264 {
10265 "match": "\\*",
10266 "name": "comment.block.cpp"
10267 }
10268 ]
10269 },
10270 "6": {
10271 "patterns": [
10272 {
10273 "include": "#attributes_context"
10274 },
10275 {
10276 "include": "source.cpp#number_literal"
10277 }
10278 ]
10279 },
10280 "7": {
10281 "patterns": [
10282 {
10283 "include": "source.cpp#inline_comment"
10284 }
10285 ]
10286 },
10287 "8": {
10288 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10289 },
10290 "9": {
10291 "name": "comment.block.cpp"
10292 },
10293 "10": {
10294 "patterns": [
10295 {
10296 "match": "\\*\\/",
10297 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10298 },
10299 {
10300 "match": "\\*",
10301 "name": "comment.block.cpp"
10302 }
10303 ]
10304 },
10305 "11": {
10306 "patterns": [
10307 {
10308 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
10309 "captures": {
10310 "1": {
10311 "name": "storage.type.modifier.final.cpp"
10312 },
10313 "2": {
10314 "patterns": [
10315 {
10316 "include": "source.cpp#inline_comment"
10317 }
10318 ]
10319 },
10320 "3": {
10321 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10322 },
10323 "4": {
10324 "name": "comment.block.cpp"
10325 },
10326 "5": {
10327 "patterns": [
10328 {
10329 "match": "\\*\\/",
10330 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10331 },
10332 {
10333 "match": "\\*",
10334 "name": "comment.block.cpp"
10335 }
10336 ]
10337 }
10338 }
10339 },
10340 {
10341 "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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
10342 "captures": {
10343 "1": {
10344 "name": "entity.name.type.union.cpp"
10345 },
10346 "2": {
10347 "patterns": [
10348 {
10349 "include": "source.cpp#inline_comment"
10350 }
10351 ]
10352 },
10353 "3": {
10354 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10355 },
10356 "4": {
10357 "name": "comment.block.cpp"
10358 },
10359 "5": {
10360 "patterns": [
10361 {
10362 "match": "\\*\\/",
10363 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10364 },
10365 {
10366 "match": "\\*",
10367 "name": "comment.block.cpp"
10368 }
10369 ]
10370 },
10371 "6": {
10372 "name": "storage.type.modifier.final.cpp"
10373 },
10374 "7": {
10375 "patterns": [
10376 {
10377 "include": "source.cpp#inline_comment"
10378 }
10379 ]
10380 },
10381 "8": {
10382 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10383 },
10384 "9": {
10385 "name": "comment.block.cpp"
10386 },
10387 "10": {
10388 "patterns": [
10389 {
10390 "match": "\\*\\/",
10391 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10392 },
10393 {
10394 "match": "\\*",
10395 "name": "comment.block.cpp"
10396 }
10397 ]
10398 }
10399 }
10400 },
10401 {
10402 "match": "DLLEXPORT",
10403 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
10404 },
10405 {
10406 "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}))*",
10407 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
10408 }
10409 ]
10410 },
10411 "12": {
10412 "patterns": [
10413 {
10414 "include": "source.cpp#inline_comment"
10415 }
10416 ]
10417 },
10418 "13": {
10419 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10420 },
10421 "14": {
10422 "name": "comment.block.cpp"
10423 },
10424 "15": {
10425 "patterns": [
10426 {
10427 "match": "\\*\\/",
10428 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10429 },
10430 {
10431 "match": "\\*",
10432 "name": "comment.block.cpp"
10433 }
10434 ]
10435 },
10436 "16": {
10437 "patterns": [
10438 {
10439 "include": "source.cpp#inline_comment"
10440 }
10441 ]
10442 },
10443 "17": {
10444 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10445 },
10446 "18": {
10447 "name": "comment.block.cpp"
10448 },
10449 "19": {
10450 "patterns": [
10451 {
10452 "match": "\\*\\/",
10453 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10454 },
10455 {
10456 "match": "\\*",
10457 "name": "comment.block.cpp"
10458 }
10459 ]
10460 },
10461 "20": {
10462 "name": "punctuation.separator.colon.inheritance.cpp"
10463 }
10464 },
10465 "endCaptures": {
10466 "1": {
10467 "name": "punctuation.terminator.statement.cpp"
10468 },
10469 "2": {
10470 "name": "punctuation.terminator.statement.cpp"
10471 }
10472 },
10473 "name": "meta.block.union.cpp",
10474 "patterns": [
10475 {
10476 "begin": "\\G ?",
10477 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
10478 "beginCaptures": {},
10479 "endCaptures": {
10480 "0": {
10481 "name": "punctuation.section.block.begin.bracket.curly.union.cpp"
10482 }
10483 },
10484 "name": "meta.head.union.cpp",
10485 "patterns": [
10486 {
10487 "include": "#ever_present_context"
10488 },
10489 {
10490 "include": "#inheritance_context"
10491 },
10492 {
10493 "include": "#template_call_range"
10494 }
10495 ]
10496 },
10497 {
10498 "begin": "(?<=\\{|<%|\\?\\?<)",
10499 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
10500 "beginCaptures": {},
10501 "endCaptures": {
10502 "0": {
10503 "name": "punctuation.section.block.end.bracket.curly.union.cpp"
10504 }
10505 },
10506 "name": "meta.body.union.cpp",
10507 "patterns": [
10508 {
10509 "include": "#function_pointer"
10510 },
10511 {
10512 "include": "#static_assert"
10513 },
10514 {
10515 "include": "#constructor_inline"
10516 },
10517 {
10518 "include": "#destructor_inline"
10519 },
10520 {
10521 "include": "$self"
10522 }
10523 ]
10524 },
10525 {
10526 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
10527 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
10528 "beginCaptures": {},
10529 "endCaptures": {},
10530 "name": "meta.tail.union.cpp",
10531 "patterns": [
10532 {
10533 "match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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))",
10534 "captures": {
10535 "1": {
10536 "patterns": [
10537 {
10538 "match": "\\*",
10539 "name": "storage.modifier.pointer.cpp"
10540 },
10541 {
10542 "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
10543 "captures": {
10544 "1": {
10545 "patterns": [
10546 {
10547 "include": "source.cpp#inline_comment"
10548 }
10549 ]
10550 },
10551 "2": {
10552 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10553 },
10554 "3": {
10555 "name": "comment.block.cpp"
10556 },
10557 "4": {
10558 "patterns": [
10559 {
10560 "match": "\\*\\/",
10561 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10562 },
10563 {
10564 "match": "\\*",
10565 "name": "comment.block.cpp"
10566 }
10567 ]
10568 }
10569 },
10570 "name": "invalid.illegal.reference-type.cpp"
10571 },
10572 {
10573 "match": "\\&",
10574 "name": "storage.modifier.reference.cpp"
10575 }
10576 ]
10577 },
10578 "2": {
10579 "patterns": [
10580 {
10581 "include": "source.cpp#inline_comment"
10582 }
10583 ]
10584 },
10585 "3": {
10586 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10587 },
10588 "4": {
10589 "name": "comment.block.cpp"
10590 },
10591 "5": {
10592 "patterns": [
10593 {
10594 "match": "\\*\\/",
10595 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10596 },
10597 {
10598 "match": "\\*",
10599 "name": "comment.block.cpp"
10600 }
10601 ]
10602 },
10603 "6": {
10604 "patterns": [
10605 {
10606 "include": "source.cpp#inline_comment"
10607 }
10608 ]
10609 },
10610 "7": {
10611 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10612 },
10613 "8": {
10614 "name": "comment.block.cpp"
10615 },
10616 "9": {
10617 "patterns": [
10618 {
10619 "match": "\\*\\/",
10620 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10621 },
10622 {
10623 "match": "\\*",
10624 "name": "comment.block.cpp"
10625 }
10626 ]
10627 },
10628 "10": {
10629 "patterns": [
10630 {
10631 "include": "source.cpp#inline_comment"
10632 }
10633 ]
10634 },
10635 "11": {
10636 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10637 },
10638 "12": {
10639 "name": "comment.block.cpp"
10640 },
10641 "13": {
10642 "patterns": [
10643 {
10644 "match": "\\*\\/",
10645 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10646 },
10647 {
10648 "match": "\\*",
10649 "name": "comment.block.cpp"
10650 }
10651 ]
10652 },
10653 "14": {
10654 "name": "entity.name.type.alias.cpp"
10655 }
10656 }
10657 },
10658 {
10659 "match": ","
10660 }
10661 ]
10662 }
10663 ]
10664 }
10665 ]
10666 },
10667 "typeid_operator": {
10668 "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
10669 "end": "\\)|(?=(?<!\\\\)\n)",
10670 "beginCaptures": {
10671 "1": {
10672 "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"
10673 },
10674 "2": {
10675 "patterns": [
10676 {
10677 "include": "source.cpp#inline_comment"
10678 }
10679 ]
10680 },
10681 "3": {
10682 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10683 },
10684 "4": {
10685 "name": "comment.block.cpp"
10686 },
10687 "5": {
10688 "patterns": [
10689 {
10690 "match": "\\*\\/",
10691 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10692 },
10693 {
10694 "match": "\\*",
10695 "name": "comment.block.cpp"
10696 }
10697 ]
10698 },
10699 "6": {
10700 "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"
10701 }
10702 },
10703 "endCaptures": {
10704 "0": {
10705 "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
10706 }
10707 },
10708 "contentName": "meta.arguments.operator.typeid",
10709 "patterns": [
10710 {
10711 "include": "#evaluation_context"
10712 }
10713 ]
10714 },
10715 "union_block": {
10716 "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
10717 "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)",
10718 "beginCaptures": {
10719 "0": {
10720 "name": "meta.head.union.cpp"
10721 },
10722 "1": {
10723 "name": "storage.type.$1.cpp"
10724 },
10725 "2": {
10726 "patterns": [
10727 {
10728 "include": "source.cpp#inline_comment"
10729 }
10730 ]
10731 },
10732 "3": {
10733 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10734 },
10735 "4": {
10736 "name": "comment.block.cpp"
10737 },
10738 "5": {
10739 "patterns": [
10740 {
10741 "match": "\\*\\/",
10742 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10743 },
10744 {
10745 "match": "\\*",
10746 "name": "comment.block.cpp"
10747 }
10748 ]
10749 },
10750 "6": {
10751 "patterns": [
10752 {
10753 "include": "#attributes_context"
10754 },
10755 {
10756 "include": "source.cpp#number_literal"
10757 }
10758 ]
10759 },
10760 "7": {
10761 "patterns": [
10762 {
10763 "include": "source.cpp#inline_comment"
10764 }
10765 ]
10766 },
10767 "8": {
10768 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10769 },
10770 "9": {
10771 "name": "comment.block.cpp"
10772 },
10773 "10": {
10774 "patterns": [
10775 {
10776 "match": "\\*\\/",
10777 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10778 },
10779 {
10780 "match": "\\*",
10781 "name": "comment.block.cpp"
10782 }
10783 ]
10784 },
10785 "11": {
10786 "patterns": [
10787 {
10788 "match": "((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
10789 "captures": {
10790 "1": {
10791 "name": "storage.type.modifier.final.cpp"
10792 },
10793 "2": {
10794 "patterns": [
10795 {
10796 "include": "source.cpp#inline_comment"
10797 }
10798 ]
10799 },
10800 "3": {
10801 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10802 },
10803 "4": {
10804 "name": "comment.block.cpp"
10805 },
10806 "5": {
10807 "patterns": [
10808 {
10809 "match": "\\*\\/",
10810 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10811 },
10812 {
10813 "match": "\\*",
10814 "name": "comment.block.cpp"
10815 }
10816 ]
10817 }
10818 }
10819 },
10820 {
10821 "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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
10822 "captures": {
10823 "1": {
10824 "name": "entity.name.type.union.cpp"
10825 },
10826 "2": {
10827 "patterns": [
10828 {
10829 "include": "source.cpp#inline_comment"
10830 }
10831 ]
10832 },
10833 "3": {
10834 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10835 },
10836 "4": {
10837 "name": "comment.block.cpp"
10838 },
10839 "5": {
10840 "patterns": [
10841 {
10842 "match": "\\*\\/",
10843 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10844 },
10845 {
10846 "match": "\\*",
10847 "name": "comment.block.cpp"
10848 }
10849 ]
10850 },
10851 "6": {
10852 "name": "storage.type.modifier.final.cpp"
10853 },
10854 "7": {
10855 "patterns": [
10856 {
10857 "include": "source.cpp#inline_comment"
10858 }
10859 ]
10860 },
10861 "8": {
10862 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10863 },
10864 "9": {
10865 "name": "comment.block.cpp"
10866 },
10867 "10": {
10868 "patterns": [
10869 {
10870 "match": "\\*\\/",
10871 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10872 },
10873 {
10874 "match": "\\*",
10875 "name": "comment.block.cpp"
10876 }
10877 ]
10878 }
10879 }
10880 },
10881 {
10882 "match": "DLLEXPORT",
10883 "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
10884 },
10885 {
10886 "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}))*",
10887 "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
10888 }
10889 ]
10890 },
10891 "12": {
10892 "patterns": [
10893 {
10894 "include": "source.cpp#inline_comment"
10895 }
10896 ]
10897 },
10898 "13": {
10899 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10900 },
10901 "14": {
10902 "name": "comment.block.cpp"
10903 },
10904 "15": {
10905 "patterns": [
10906 {
10907 "match": "\\*\\/",
10908 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10909 },
10910 {
10911 "match": "\\*",
10912 "name": "comment.block.cpp"
10913 }
10914 ]
10915 },
10916 "16": {
10917 "patterns": [
10918 {
10919 "include": "source.cpp#inline_comment"
10920 }
10921 ]
10922 },
10923 "17": {
10924 "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
10925 },
10926 "18": {
10927 "name": "comment.block.cpp"
10928 },
10929 "19": {
10930 "patterns": [
10931 {
10932 "match": "\\*\\/",
10933 "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
10934 },
10935 {
10936 "match": "\\*",
10937 "name": "comment.block.cpp"
10938 }
10939 ]
10940 },
10941 "20": {
10942 "name": "punctuation.separator.colon.inheritance.cpp"
10943 }
10944 },
10945 "endCaptures": {
10946 "1": {
10947 "name": "punctuation.terminator.statement.cpp"
10948 },
10949 "2": {
10950 "name": "punctuation.terminator.statement.cpp"
10951 }
10952 },
10953 "name": "meta.block.union.cpp",
10954 "patterns": [
10955 {
10956 "begin": "\\G ?",
10957 "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)",
10958 "beginCaptures": {},
10959 "endCaptures": {
10960 "0": {
10961 "name": "punctuation.section.block.begin.bracket.curly.union.cpp"
10962 }
10963 },
10964 "name": "meta.head.union.cpp",
10965 "patterns": [
10966 {
10967 "include": "#ever_present_context"
10968 },
10969 {
10970 "include": "#inheritance_context"
10971 },
10972 {
10973 "include": "#template_call_range"
10974 }
10975 ]
10976 },
10977 {
10978 "begin": "(?<=\\{|<%|\\?\\?<)",
10979 "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)",
10980 "beginCaptures": {},
10981 "endCaptures": {
10982 "0": {
10983 "name": "punctuation.section.block.end.bracket.curly.union.cpp"
10984 }
10985 },
10986 "name": "meta.body.union.cpp",
10987 "patterns": [
10988 {
10989 "include": "#function_pointer"
10990 },
10991 {
10992 "include": "#static_assert"
10993 },
10994 {
10995 "include": "#constructor_inline"
10996 },
10997 {
10998 "include": "#destructor_inline"
10999 },
11000 {
11001 "include": "$self"
11002 }
11003 ]
11004 },
11005 {
11006 "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
11007 "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)",
11008 "beginCaptures": {},
11009 "endCaptures": {},
11010 "name": "meta.tail.union.cpp",
11011 "patterns": [
11012 {
11013 "include": "$self"
11014 }
11015 ]
11016 }
11017 ]
11018 },
11019 "using_namespace": {
11020 "begin": "(?<!\\w)(using)(?:\\s)+(namespace)(?:\\s)+((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|thread_local|synchronized|static_cast|const_cast|co_return|constexpr|consteval|constexpr|constexpr|consteval|protected|namespace|constinit|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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)",
11021 "end": ";|(?=(?<!\\\\)\n)",
11022 "beginCaptures": {
11023 "1": {
11024 "name": "keyword.other.using.directive.cpp"
11025 },
11026 "2": {
11027 "name": "keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp"
11028 },
11029 "3": {
11030 "patterns": [
11031 {
11032 "include": "source.cpp#scope_resolution_namespace_using_inner_generated"
11033 }
11034 ]
11035 },
11036 "4": {
11037 "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
11038 },
11039 "5": {
11040 "patterns": [
11041 {
11042 "include": "#template_call_range"
11043 }
11044 ]
11045 },
11046 "6": {},
11047 "7": {
11048 "name": "entity.name.namespace.cpp"
11049 }
11050 },
11051 "endCaptures": {
11052 "0": {
11053 "name": "punctuation.terminator.statement.cpp"
11054 }
11055 },
11056 "name": "meta.using-namespace.cpp"
11057 }
11058 }
11059 }
11060