@jsjoeio/code-server
Version:
Run VS Code on a remote server.
1 lines • 484 kB
JSON
{"information_for_contributors":["This file has been converted from https://github.com/NVIDIA/cuda-cpp-grammar/blob/master/syntaxes/cuda-cpp.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],"version":"https://github.com/NVIDIA/cuda-cpp-grammar/commit/81e88eaec5170aa8585736c63627c73e3589998c","name":"CUDA C++","scopeName":"source.cuda-cpp","patterns":[{"include":"#ever_present_context"},{"include":"#constructor_root"},{"include":"#destructor_root"},{"include":"#function_definition"},{"include":"#operator_overload"},{"include":"#using_namespace"},{"include":"#type_alias"},{"include":"#using_name"},{"include":"#namespace_alias"},{"include":"#namespace_block"},{"include":"#extern_block"},{"include":"#typedef_class"},{"include":"#typedef_struct"},{"include":"#typedef_union"},{"include":"#misc_keywords"},{"include":"#standard_declares"},{"include":"#class_block"},{"include":"#struct_block"},{"include":"#union_block"},{"include":"#enum_block"},{"include":"#template_isolated_definition"},{"include":"#template_definition"},{"include":"#access_control_keywords"},{"include":"#block"},{"include":"#static_assert"},{"include":"#assembly"},{"include":"#function_pointer"},{"include":"#evaluation_context"}],"repository":{"access_control_keywords":{"match":"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?:(?:protected)|(?:private)|(?:public)))(?:(?:\\s)+)?(:))","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"patterns":[{"match":"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))","captures":{"1":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"2":{"name":"comment.block.cuda-cpp"},"3":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}}}]},"3":{"name":"storage.type.modifier.access.control.$4.cuda-cpp"},"4":{},"5":{"name":"punctuation.separator.colon.access.control.cuda-cpp"}}},"alignas_attribute":{"begin":"alignas\\(","end":"\\)","beginCaptures":{"0":{"name":"punctuation.section.attribute.begin.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.attribute.end.cuda-cpp"}},"name":"support.other.attribute.cuda-cpp","patterns":[{"include":"#attributes_context"},{"begin":"\\(","end":"\\)","beginCaptures":{},"endCaptures":{},"patterns":[{"include":"#attributes_context"},{"include":"#string_context"}]},{"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))","captures":{"1":{"name":"keyword.other.using.directive.cuda-cpp"},"2":{"name":"entity.name.namespace.cuda-cpp"}}},{"match":",","name":"punctuation.separator.attribute.cuda-cpp"},{"match":":","name":"punctuation.accessor.attribute.cuda-cpp"},{"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)(?=::)","name":"entity.name.namespace.cuda-cpp"},{"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)","name":"entity.other.attribute.$0.cuda-cpp"},{"include":"#number_literal"}]},"alignas_operator":{"begin":"((?<!\\w)alignas(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()","end":"\\)","beginCaptures":{"1":{"name":"keyword.operator.functionlike.cuda-cpp keyword.operator.alignas.cuda-cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"4":{"name":"comment.block.cuda-cpp"},"5":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"6":{"name":"punctuation.section.arguments.begin.bracket.round.operator.alignas.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.operator.alignas.cuda-cpp"}},"contentName":"meta.arguments.operator.alignas","patterns":[{"include":"#evaluation_context"}]},"alignof_operator":{"begin":"((?<!\\w)alignof(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()","end":"\\)","beginCaptures":{"1":{"name":"keyword.operator.functionlike.cuda-cpp keyword.operator.alignof.cuda-cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"4":{"name":"comment.block.cuda-cpp"},"5":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"6":{"name":"punctuation.section.arguments.begin.bracket.round.operator.alignof.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.operator.alignof.cuda-cpp"}},"contentName":"meta.arguments.operator.alignof","patterns":[{"include":"#evaluation_context"}]},"assembly":{"begin":"(\\b(?:__asm__|asm)\\b)(?:(?:\\s)+)?((?:volatile)?)","end":"(?!\\G)","beginCaptures":{"1":{"name":"storage.type.asm.cuda-cpp"},"2":{"name":"storage.modifier.cuda-cpp"}},"endCaptures":{},"name":"meta.asm.cuda-cpp","patterns":[{"match":"^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\n)|$)","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"3":{"name":"comment.block.cuda-cpp"},"4":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}}},{"include":"#comments"},{"begin":"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\(","end":"\\)","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.assembly.cuda-cpp"},"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"3":{"name":"comment.block.cuda-cpp"},"4":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.assembly.cuda-cpp"}},"patterns":[{"begin":"(R?)(\")","end":"\"","beginCaptures":{"1":{"name":"meta.encoding.cuda-cpp"},"2":{"name":"punctuation.definition.string.begin.assembly.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.assembly.cuda-cpp"}},"name":"string.quoted.double.cuda-cpp","contentName":"meta.embedded.assembly","patterns":[{"include":"source.asm"},{"include":"source.x86"},{"include":"source.x86_64"},{"include":"source.arm"},{"include":"#backslash_escapes"},{"include":"#string_escaped_char"}]},{"begin":"\\(","end":"\\)","beginCaptures":{"0":{"name":"punctuation.section.parens.begin.bracket.round.assembly.inner.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.parens.end.bracket.round.assembly.inner.cuda-cpp"}},"patterns":[{"include":"#evaluation_context"}]},{"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)))\\]","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"3":{"name":"comment.block.cuda-cpp"},"4":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"5":{"name":"variable.other.asm.label.cuda-cpp"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"8":{"name":"comment.block.cuda-cpp"},"9":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}}},{"match":":","name":"punctuation.separator.delimiter.colon.assembly.cuda-cpp"},{"include":"#comments"}]}]},"assignment_operator":{"match":"\\=","name":"keyword.operator.assignment.cuda-cpp"},"attributes_context":{"patterns":[{"include":"#cpp_attributes"},{"include":"#gcc_attributes"},{"include":"#ms_attributes"},{"include":"#alignas_attribute"}]},"backslash_escapes":{"match":"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )","name":"constant.character.escape"},"block":{"begin":"{","end":"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)","beginCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.cuda-cpp"}},"name":"meta.block.cuda-cpp","patterns":[{"include":"#function_body_context"}]},"block_comment":{"begin":"\\s*+(\\/\\*)","end":"\\*\\/","beginCaptures":{"1":{"name":"punctuation.definition.comment.begin.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.cuda-cpp"}},"name":"comment.block.cuda-cpp"},"builtin_storage_type_initilizer":{"begin":"(?:\\s)*+(?<!\\w)(?:(?:(?:((?:(?:threadIdx)|(?:unsigned)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:wchar_t)|(?:gridDim)|(?: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)|(?:ulonglong1)|(?:ulonglong2)|(?:ulonglong3)|(?:ulonglong4)|(?:blksize_t)|(?:in_addr_t)|(?:in_port_t)|(?:uintptr_t)|(?:uintmax_t)|(?:uintmax_t)|(?:uintmax_t)|(?:longlong1)|(?:longlong2)|(?:longlong3)|(?:longlong4)|(?: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)|(?:ushort1)|(?:ushort2)|(?:ushort3)|(?:ushort4)|(?:double1)|(?:double2)|(?:double3)|(?:double4)|(?:u_char)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:time_t)|(?:int8_t)|(?:uchar1)|(?:uchar2)|(?:uchar3)|(?:uchar4)|(?:short1)|(?:short2)|(?:short3)|(?:short4)|(?:ulong4)|(?:ulong1)|(?:ulong2)|(?:ulong3)|(?:ulong4)|(?:float1)|(?:float2)|(?:float3)|(?:float4)|(?:u_int)|(?:div_t)|(?:dev_t)|(?:gid_t)|(?:ino_t)|(?:key_t)|(?:pid_t)|(?:off_t)|(?:uid_t)|(?:char1)|(?:char2)|(?:char3)|(?:char4)|(?:uint1)|(?:uint2)|(?:uint3)|(?:uint4)|(?:long1)|(?:long2)|(?:long3)|(?:uint)|(?:id_t)|(?:id_t)|(?:int1)|(?:int2)|(?:int3)|(?:int4)|(?:dim3))))|((?:(?: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)(\\()","end":"\\)","beginCaptures":{"1":{"name":"storage.type.primitive.cuda-cpp storage.type.built-in.primitive.cuda-cpp"},"2":{"name":"storage.type.cuda-cpp storage.type.built-in.cuda-cpp"},"3":{"name":"support.type.posix-reserved.pthread.cuda-cpp support.type.built-in.posix-reserved.pthread.cuda-cpp"},"4":{"name":"support.type.posix-reserved.cuda-cpp support.type.built-in.posix-reserved.cuda-cpp"},"5":{"name":"punctuation.section.arguments.begin.bracket.round.initializer.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.initializer.cuda-cpp"}},"patterns":[{"include":"#evaluation_context"}]},"case_statement":{"begin":"((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)case(?!\\w))","end":":","beginCaptures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"3":{"name":"comment.block.cuda-cpp"},"4":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"5":{"name":"keyword.control.case.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.separator.colon.case.cuda-cpp"}},"name":"meta.conditional.case.cuda-cpp","patterns":[{"include":"#evaluation_context"},{"include":"#c_conditional_context"}]},"class_block":{"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)))(:(?!:)))?)","end":"(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))","beginCaptures":{"0":{"name":"meta.head.class.cuda-cpp"},"1":{"name":"storage.type.$1.cuda-cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"4":{"name":"comment.block.cuda-cpp"},"5":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"6":{"patterns":[{"include":"#attributes_context"},{"include":"#number_literal"}]},"7":{"patterns":[{"include":"#inline_comment"}]},"8":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"9":{"name":"comment.block.cuda-cpp"},"10":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"11":{"patterns":[{"match":"((?<!\\w)final(?!\\w))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))","captures":{"1":{"name":"storage.type.modifier.final.cuda-cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"4":{"name":"comment.block.cuda-cpp"},"5":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}}},{"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))))?(?=:|{|$)","captures":{"1":{"name":"entity.name.type.class.cuda-cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"4":{"name":"comment.block.cuda-cpp"},"5":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"6":{"name":"storage.type.modifier.final.cuda-cpp"},"7":{"patterns":[{"include":"#inline_comment"}]},"8":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"9":{"name":"comment.block.cuda-cpp"},"10":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}}},{"match":"DLLEXPORT","name":"entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-cpp"},{"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}))*","name":"entity.name.other.preprocessor.macro.predefined.probably.$0.cuda-cpp"}]},"12":{"patterns":[{"include":"#inline_comment"}]},"13":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"14":{"name":"comment.block.cuda-cpp"},"15":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"16":{"patterns":[{"include":"#inline_comment"}]},"17":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"18":{"name":"comment.block.cuda-cpp"},"19":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"20":{"name":"punctuation.separator.colon.inheritance.cuda-cpp"}},"endCaptures":{"1":{"name":"punctuation.terminator.statement.cuda-cpp"},"2":{"name":"punctuation.terminator.statement.cuda-cpp"}},"name":"meta.block.class.cuda-cpp","patterns":[{"begin":"\\G ?","end":"(?:\\{|<%|\\?\\?<|(?=;))","beginCaptures":{},"endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.class.cuda-cpp"}},"name":"meta.head.class.cuda-cpp","patterns":[{"include":"#ever_present_context"},{"include":"#inheritance_context"},{"include":"#template_call_range"}]},{"begin":"(?<=\\{|<%|\\?\\?<)","end":"\\}|%>|\\?\\?>","beginCaptures":{},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.class.cuda-cpp"}},"name":"meta.body.class.cuda-cpp","patterns":[{"include":"#function_pointer"},{"include":"#static_assert"},{"include":"#constructor_inline"},{"include":"#destructor_inline"},{"include":"$self"}]},{"begin":"(?<=\\}|%>|\\?\\?>)[\\s]*","end":"[\\s]*(?=;)","beginCaptures":{},"endCaptures":{},"name":"meta.tail.class.cuda-cpp","patterns":[{"include":"$self"}]}]},"class_declare":{"match":"((?<!\\w)class(?!\\w))((?:((?:(?>(?:\\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))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\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)(?![:{a-zA-Z])","captures":{"1":{"name":"storage.type.class.declare.cuda-cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"patterns":[{"match":"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))","captures":{"1":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"2":{"name":"comment.block.cuda-cpp"},"3":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}}}]},"4":{"name":"entity.name.type.class.cuda-cpp"},"5":{"patterns":[{"match":"\\*","name":"storage.modifier.pointer.cuda-cpp"},{"match":"(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"3":{"name":"comment.block.cuda-cpp"},"4":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}},"name":"invalid.illegal.reference-type.cuda-cpp"},{"match":"\\&","name":"storage.modifier.reference.cuda-cpp"}]},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"patterns":[{"match":"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))","captures":{"1":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"2":{"name":"comment.block.cuda-cpp"},"3":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}}}]},"8":{"patterns":[{"include":"#inline_comment"}]},"9":{"patterns":[{"match":"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))","captures":{"1":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"2":{"name":"comment.block.cuda-cpp"},"3":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}}}]},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"patterns":[{"match":"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))","captures":{"1":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"2":{"name":"comment.block.cuda-cpp"},"3":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}}}]},"12":{"name":"variable.other.object.declare.cuda-cpp"},"13":{"patterns":[{"include":"#inline_comment"}]},"14":{"patterns":[{"match":"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))","captures":{"1":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"2":{"name":"comment.block.cuda-cpp"},"3":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}}}]}}},"comma":{"match":",","name":"punctuation.separator.delimiter.comma.cuda-cpp"},"comma_in_template_argument":{"match":",","name":"punctuation.separator.delimiter.comma.template.argument.cuda-cpp"},"comments":{"patterns":[{"begin":"^(?:(?:\\s)+)?+(\\/\\/[!\\/]+)","end":"(?<=\\n)(?<!\\\\\\n)","beginCaptures":{"1":{"name":"punctuation.definition.comment.documentation.cuda-cpp"}},"endCaptures":{},"name":"comment.line.double-slash.documentation.cuda-cpp","patterns":[{"include":"#line_continuation_character"},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"match":"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"name":"markup.italic.doxygen.cuda-cpp"}}},{"match":"((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"name":"markup.bold.doxygen.cuda-cpp"}}},{"match":"((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"name":"markup.inline.raw.string.cuda-cpp"}}},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"match":"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"patterns":[{"match":"in|out","name":"keyword.other.parameter.direction.$0.cuda-cpp"}]},"3":{"name":"variable.parameter.cuda-cpp"}}},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"match":"(?:\\b[A-Z]+:|@[a-z_]+:)","name":"storage.type.class.gtkdoc.cuda-cpp"}]},{"match":"(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)","captures":{"1":{"name":"punctuation.definition.comment.begin.documentation.cuda-cpp"},"2":{"patterns":[{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"match":"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"name":"markup.italic.doxygen.cuda-cpp"}}},{"match":"((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"name":"markup.bold.doxygen.cuda-cpp"}}},{"match":"((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"name":"markup.inline.raw.string.cuda-cpp"}}},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"match":"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"patterns":[{"match":"in|out","name":"keyword.other.parameter.direction.$0.cuda-cpp"}]},"3":{"name":"variable.parameter.cuda-cpp"}}},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"match":"(?:\\b[A-Z]+:|@[a-z_]+:)","name":"storage.type.class.gtkdoc.cuda-cpp"}]},"3":{"name":"punctuation.definition.comment.end.documentation.cuda-cpp"}},"name":"comment.block.documentation.cuda-cpp"},{"begin":"(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))","end":"[!*]*\\*\\/","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.documentation.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.documentation.cuda-cpp"}},"name":"comment.block.documentation.cuda-cpp","patterns":[{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"match":"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"name":"markup.italic.doxygen.cuda-cpp"}}},{"match":"((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"name":"markup.bold.doxygen.cuda-cpp"}}},{"match":"((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"name":"markup.inline.raw.string.cuda-cpp"}}},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"match":"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)","captures":{"1":{"name":"storage.type.class.doxygen.cuda-cpp"},"2":{"patterns":[{"match":"in|out","name":"keyword.other.parameter.direction.$0.cuda-cpp"}]},"3":{"name":"variable.parameter.cuda-cpp"}}},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"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(?:\\{[^}]*\\})?","name":"storage.type.class.doxygen.cuda-cpp"},{"match":"(?:\\b[A-Z]+:|@[a-z_]+:)","name":"storage.type.class.gtkdoc.cuda-cpp"}]},{"include":"#emacs_file_banner"},{"include":"#block_comment"},{"include":"#line_comment"},{"include":"#invalid_comment_end"}]},"constructor_inline":{"begin":"^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:__forceinline__)|(?:__noinline__)|(?:__global__)|(?:__device__)|(?:constexpr)|(?:explicit)|(?:__host__)|(?: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)(?=\\())","end":"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))","beginCaptures":{"0":{"name":"meta.head.function.definition.special.constructor.cuda-cpp"},"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"3":{"name":"comment.block.cuda-cpp"},"4":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"5":{"patterns":[{"include":"#functional_specifiers_pre_parameters"}]},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"8":{"name":"comment.block.cuda-cpp"},"9":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"10":{"patterns":[{"include":"#inline_comment"}]},"11":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"12":{"name":"comment.block.cuda-cpp"},"13":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"14":{"name":"storage.type.modifier.calling-convention.cuda-cpp"},"15":{"patterns":[{"include":"#inline_comment"}]},"16":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"17":{"name":"comment.block.cuda-cpp"},"18":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"19":{"name":"entity.name.function.constructor.cuda-cpp entity.name.function.definition.special.constructor.cuda-cpp"}},"endCaptures":{},"name":"meta.function.definition.special.constructor.cuda-cpp","patterns":[{"begin":"\\G ?","end":"(?:\\{|<%|\\?\\?<|(?=;))","beginCaptures":{},"endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cuda-cpp"}},"name":"meta.head.function.definition.special.constructor.cuda-cpp","patterns":[{"include":"#ever_present_context"},{"match":"(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))","captures":{"1":{"name":"keyword.operator.assignment.cuda-cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"4":{"name":"comment.block.cuda-cpp"},"5":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"6":{"name":"keyword.other.default.constructor.cuda-cpp"},"7":{"name":"keyword.other.delete.constructor.cuda-cpp"}}},{"include":"#functional_specifiers_pre_parameters"},{"begin":":","end":"(?=\\{)","beginCaptures":{"0":{"name":"punctuation.separator.initializers.cuda-cpp"}},"endCaptures":{},"patterns":[{"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)*+)?(\\()","end":"\\)","beginCaptures":{"1":{"name":"entity.name.function.call.initializer.cuda-cpp"},"2":{"name":"meta.template.call.cuda-cpp","patterns":[{"include":"#template_call_range"}]},"3":{},"4":{"name":"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cuda-cpp"}},"contentName":"meta.parameter.initialization","patterns":[{"include":"#evaluation_context"}]},{"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))(\\{)","end":"\\}","beginCaptures":{"1":{"name":"entity.name.function.call.initializer.cuda-cpp"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cuda-cpp"}},"contentName":"meta.parameter.initialization","patterns":[{"include":"#evaluation_context"}]},{"match":",","name":"punctuation.separator.delimiter.comma.cuda-cpp"},{"include":"#comments"}]},{"begin":"\\(","end":"\\)","beginCaptures":{"0":{"name":"punctuation.section.parameters.begin.bracket.round.special.constructor.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.special.constructor.cuda-cpp"}},"contentName":"meta.function.definition.parameters.special.constructor","patterns":[{"include":"#function_parameter_context"},{"include":"#evaluation_context"}]},{"match":"((?:(?:final)|(?:override)))+","captures":{"1":{"name":"keyword.operator.$1.cuda-cpp"}}},{"include":"$self"}]},{"begin":"(?<=\\{|<%|\\?\\?<)","end":"\\}|%>|\\?\\?>","beginCaptures":{},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cuda-cpp"}},"name":"meta.body.function.definition.special.constructor.cuda-cpp","patterns":[{"include":"#function_body_context"}]},{"begin":"(?<=\\}|%>|\\?\\?>)[\\s]*","end":"[\\s]*(?=;)","beginCaptures":{},"endCaptures":{},"name":"meta.tail.function.definition.special.constructor.cuda-cpp","patterns":[{"include":"$self"}]}]},"constructor_root":{"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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|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)))(?=\\())","end":"(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))","beginCaptures":{"0":{"name":"meta.head.function.definition.special.constructor.cuda-cpp"},"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"3":{"name":"comment.block.cuda-cpp"},"4":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"5":{"name":"storage.type.modifier.calling-convention.cuda-cpp"},"6":{"patterns":[{"include":"#inline_comment"}]},"7":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"8":{"name":"comment.block.cuda-cpp"},"9":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"10":{"patterns":[{"match":"::","name":"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.constructor.cuda-cpp"},{"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)","name":"entity.name.scope-resolution.constructor.cuda-cpp"},{"include":"#template_call_range"}]},"11":{"patterns":[{"include":"#template_call_range"}]},"12":{},"13":{"patterns":[{"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}))*(?=:)","name":"entity.name.type.constructor.cuda-cpp"},{"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}))*","name":"entity.name.function.definition.special.constructor.cuda-cpp"},{"match":"::","name":"punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.constructor.cuda-cpp"}]},"14":{},"15":{"patterns":[{"include":"#inline_comment"}]},"16":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"17":{"name":"comment.block.cuda-cpp"},"18":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"19":{"patterns":[{"include":"#inline_comment"}]},"20":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"21":{"name":"comment.block.cuda-cpp"},"22":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"23":{"patterns":[{"include":"#inline_comment"}]},"24":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"25":{"name":"comment.block.cuda-cpp"},"26":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}},"endCaptures":{},"name":"meta.function.definition.special.constructor.cuda-cpp","patterns":[{"begin":"\\G ?","end":"(?:\\{|<%|\\?\\?<|(?=;))","beginCaptures":{},"endCaptures":{"0":{"name":"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cuda-cpp"}},"name":"meta.head.function.definition.special.constructor.cuda-cpp","patterns":[{"include":"#ever_present_context"},{"match":"(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))","captures":{"1":{"name":"keyword.operator.assignment.cuda-cpp"},"2":{"patterns":[{"include":"#inline_comment"}]},"3":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"4":{"name":"comment.block.cuda-cpp"},"5":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]},"6":{"name":"keyword.other.default.constructor.cuda-cpp"},"7":{"name":"keyword.other.delete.constructor.cuda-cpp"}}},{"include":"#functional_specifiers_pre_parameters"},{"begin":":","end":"(?=\\{)","beginCaptures":{"0":{"name":"punctuation.separator.initializers.cuda-cpp"}},"endCaptures":{},"patterns":[{"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)*+)?(\\()","end":"\\)","beginCaptures":{"1":{"name":"entity.name.function.call.initializer.cuda-cpp"},"2":{"name":"meta.template.call.cuda-cpp","patterns":[{"include":"#template_call_range"}]},"3":{},"4":{"name":"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cuda-cpp"}},"contentName":"meta.parameter.initialization","patterns":[{"include":"#evaluation_context"}]},{"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))(\\{)","end":"\\}","beginCaptures":{"1":{"name":"entity.name.function.call.initializer.cuda-cpp"},"2":{"name":"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.arguments.end.bracket.round.function.call.initializer.cuda-cpp"}},"contentName":"meta.parameter.initialization","patterns":[{"include":"#evaluation_context"}]},{"match":",","name":"punctuation.separator.delimiter.comma.cuda-cpp"},{"include":"#comments"}]},{"begin":"\\(","end":"\\)","beginCaptures":{"0":{"name":"punctuation.section.parameters.begin.bracket.round.special.constructor.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.parameters.end.bracket.round.special.constructor.cuda-cpp"}},"contentName":"meta.function.definition.parameters.special.constructor","patterns":[{"include":"#function_parameter_context"},{"include":"#evaluation_context"}]},{"match":"((?:(?:final)|(?:override)))+","captures":{"1":{"name":"keyword.operator.$1.cuda-cpp"}}},{"include":"$self"}]},{"begin":"(?<=\\{|<%|\\?\\?<)","end":"\\}|%>|\\?\\?>","beginCaptures":{},"endCaptures":{"0":{"name":"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cuda-cpp"}},"name":"meta.body.function.definition.special.constructor.cuda-cpp","patterns":[{"include":"#function_body_context"}]},{"begin":"(?<=\\}|%>|\\?\\?>)[\\s]*","end":"[\\s]*(?=;)","beginCaptures":{},"endCaptures":{},"name":"meta.tail.function.definition.special.constructor.cuda-cpp","patterns":[{"include":"$self"}]}]},"control_flow_keywords":{"match":"((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?<!\\w)(?:(?:co_return)|(?:continue)|(?:co_await)|(?:co_yield)|(?:default)|(?:switch)|(?:return)|(?:throw)|(?:while)|(?:catch)|(?:break)|(?:else)|(?:goto)|(?:case)|(?:for)|(?:try)|(?:do)|(?:if))(?!\\w))","captures":{"1":{"patterns":[{"include":"#inline_comment"}]},"2":{"patterns":[{"match":"(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))","captures":{"1":{"name":"comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"},"2":{"name":"comment.block.cuda-cpp"},"3":{"patterns":[{"match":"\\*\\/","name":"comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"},{"match":"\\*","name":"comment.block.cuda-cpp"}]}}}]},"3":{"name":"keyword.control.$3.cuda-cpp"}}},"cpp_attributes":{"begin":"\\[\\[","end":"\\]\\]","beginCaptures":{"0":{"name":"punctuation.section.attribute.begin.cuda-cpp"}},"endCaptures":{"0":{"name":"punctuation.section.attribute.end.cuda-cpp"}},"name":"support.other.attribute.cuda-cpp","patterns":[{"include":"#attributes_context"},{"begin":"\\(","end":"\\)","beginCaptures":{},"endCaptures":{},"patterns":[{"include":"#attributes_context"},{"include":"#string_context"}]},{"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))","captures":{"1":{"name":"keyword.other.using.directive.cuda-cpp"},"2":{"name":"entity.name.namespace.cuda-cpp"}}},{"match":",","name":"punctuation.separator.attribute.cuda-cpp"},{"match":":","name":"punctuation.accessor.attribute.cuda-cpp"},{"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)(?=::)","name":"entity.name.namespace.cuda-cpp"},{"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)","name":"entity.other.attribute.$0.cuda-cpp"},{"include":"#number_literal"}]},"curly_initializer":{"begin":"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:st