Path: blob/main/extensions/cpp/syntaxes/c.tmLanguage.json
3314 views
{1"information_for_contributors": [2"This file has been converted from https://github.com/jeff-hykin/better-c-syntax/blob/master/autogenerated/c.tmLanguage.json",3"If you want to provide a fix or improvement, please create a pull request against the original repository.",4"Once accepted there, we are happy to receive an update request."5],6"version": "https://github.com/jeff-hykin/better-c-syntax/commit/34712a6106a4ffb0a04d2fa836fd28ff6c5849a4",7"name": "C",8"scopeName": "source.c",9"patterns": [10{11"include": "#preprocessor-rule-enabled"12},13{14"include": "#preprocessor-rule-disabled"15},16{17"include": "#preprocessor-rule-conditional"18},19{20"include": "#predefined_macros"21},22{23"include": "#comments"24},25{26"include": "#switch_statement"27},28{29"include": "#anon_pattern_1"30},31{32"include": "#storage_types"33},34{35"include": "#anon_pattern_2"36},37{38"include": "#anon_pattern_3"39},40{41"include": "#anon_pattern_4"42},43{44"include": "#anon_pattern_5"45},46{47"include": "#anon_pattern_6"48},49{50"include": "#anon_pattern_7"51},52{53"include": "#operators"54},55{56"include": "#numbers"57},58{59"include": "#strings"60},61{62"include": "#anon_pattern_range_1"63},64{65"include": "#anon_pattern_range_2"66},67{68"include": "#anon_pattern_range_3"69},70{71"include": "#pragma-mark"72},73{74"include": "#anon_pattern_range_4"75},76{77"include": "#anon_pattern_range_5"78},79{80"include": "#anon_pattern_range_6"81},82{83"include": "#anon_pattern_8"84},85{86"include": "#anon_pattern_9"87},88{89"include": "#anon_pattern_10"90},91{92"include": "#anon_pattern_11"93},94{95"include": "#anon_pattern_12"96},97{98"include": "#anon_pattern_13"99},100{101"include": "#block"102},103{104"include": "#parens"105},106{107"include": "#anon_pattern_range_7"108},109{110"include": "#line_continuation_character"111},112{113"include": "#anon_pattern_range_8"114},115{116"include": "#anon_pattern_range_9"117},118{119"include": "#anon_pattern_14"120},121{122"include": "#anon_pattern_15"123}124],125"repository": {126"access-method": {127"name": "meta.function-call.member.c",128"begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",129"beginCaptures": {130"1": {131"name": "variable.object.c"132},133"2": {134"name": "punctuation.separator.dot-access.c"135},136"3": {137"name": "punctuation.separator.pointer-access.c"138},139"4": {140"patterns": [141{142"match": "\\.",143"name": "punctuation.separator.dot-access.c"144},145{146"match": "->",147"name": "punctuation.separator.pointer-access.c"148},149{150"match": "[a-zA-Z_][a-zA-Z_0-9]*",151"name": "variable.object.c"152},153{154"name": "everything.else.c",155"match": ".+"156}157]158},159"5": {160"name": "entity.name.function.member.c"161},162"6": {163"name": "punctuation.section.arguments.begin.bracket.round.function.member.c"164}165},166"end": "\\)",167"endCaptures": {168"0": {169"name": "punctuation.section.arguments.end.bracket.round.function.member.c"170}171},172"patterns": [173{174"include": "#function-call-innards"175}176]177},178"anon_pattern_1": {179"match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",180"name": "keyword.control.c"181},182"anon_pattern_10": {183"match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",184"name": "support.type.stdint.c"185},186"anon_pattern_11": {187"match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",188"name": "support.constant.mac-classic.c"189},190"anon_pattern_12": {191"match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b",192"name": "support.type.mac-classic.c"193},194"anon_pattern_13": {195"match": "\\b([A-Za-z0-9_]+_t)\\b",196"name": "support.type.posix-reserved.c"197},198"anon_pattern_14": {199"match": ";",200"name": "punctuation.terminator.statement.c"201},202"anon_pattern_15": {203"match": ",",204"name": "punctuation.separator.delimiter.c"205},206"anon_pattern_2": {207"match": "typedef",208"name": "keyword.other.typedef.c"209},210"anon_pattern_3": {211"match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b",212"name": "storage.modifier.c"213},214"anon_pattern_4": {215"match": "\\bk[A-Z]\\w*\\b",216"name": "constant.other.variable.mac-classic.c"217},218"anon_pattern_5": {219"match": "\\bg[A-Z]\\w*\\b",220"name": "variable.other.readwrite.global.mac-classic.c"221},222"anon_pattern_6": {223"match": "\\bs[A-Z]\\w*\\b",224"name": "variable.other.readwrite.static.mac-classic.c"225},226"anon_pattern_7": {227"match": "\\b(NULL|true|false|TRUE|FALSE)\\b",228"name": "constant.language.c"229},230"anon_pattern_8": {231"match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",232"name": "support.type.sys-types.c"233},234"anon_pattern_9": {235"match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",236"name": "support.type.pthread.c"237},238"anon_pattern_range_1": {239"name": "meta.preprocessor.macro.c",240"begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?<!\\w)[a-zA-Z_]\\w*(?!\\w))(?:(\\()([^()\\\\]+)(\\)))?",241"beginCaptures": {242"1": {243"patterns": [244{245"include": "#inline_comment"246}247]248},249"2": {250"name": "comment.block.c punctuation.definition.comment.begin.c"251},252"3": {253"name": "comment.block.c"254},255"4": {256"patterns": [257{258"match": "\\*\\/",259"name": "comment.block.c punctuation.definition.comment.end.c"260},261{262"match": "\\*",263"name": "comment.block.c"264}265]266},267"5": {268"name": "keyword.control.directive.define.c"269},270"6": {271"name": "punctuation.definition.directive.c"272},273"7": {274"name": "entity.name.function.preprocessor.c"275},276"8": {277"name": "punctuation.definition.parameters.begin.c"278},279"9": {280"patterns": [281{282"match": "(?<=[(,])\\s*((?<!\\w)[a-zA-Z_]\\w*(?!\\w))\\s*",283"captures": {284"1": {285"name": "variable.parameter.preprocessor.c"286}287}288},289{290"match": ",",291"name": "punctuation.separator.parameters.c"292},293{294"match": "\\.\\.\\.",295"name": "ellipses.c punctuation.vararg-ellipses.variable.parameter.preprocessor.c"296}297]298},299"10": {300"name": "punctuation.definition.parameters.end.c"301}302},303"end": "(?<!\\\\)(?=\\n)",304"patterns": [305{306"include": "#preprocessor-rule-define-line-contents"307}308]309},310"anon_pattern_range_2": {311"begin": "^\\s*((#)\\s*(error|warning))\\b\\s*",312"beginCaptures": {313"1": {314"name": "keyword.control.directive.diagnostic.$3.c"315},316"2": {317"name": "punctuation.definition.directive.c"318}319},320"end": "(?<!\\\\)(?=\\n)",321"name": "meta.preprocessor.diagnostic.c",322"patterns": [323{324"begin": "\"",325"beginCaptures": {326"0": {327"name": "punctuation.definition.string.begin.c"328}329},330"end": "\"|(?<!\\\\)(?=\\s*\\n)",331"endCaptures": {332"0": {333"name": "punctuation.definition.string.end.c"334}335},336"name": "string.quoted.double.c",337"patterns": [338{339"include": "#line_continuation_character"340}341]342},343{344"begin": "'",345"beginCaptures": {346"0": {347"name": "punctuation.definition.string.begin.c"348}349},350"end": "'|(?<!\\\\)(?=\\s*\\n)",351"endCaptures": {352"0": {353"name": "punctuation.definition.string.end.c"354}355},356"name": "string.quoted.single.c",357"patterns": [358{359"include": "#line_continuation_character"360}361]362},363{364"begin": "[^'\"]",365"end": "(?<!\\\\)(?=\\s*\\n)",366"name": "string.unquoted.single.c",367"patterns": [368{369"include": "#line_continuation_character"370},371{372"include": "#comments"373}374]375}376]377},378"anon_pattern_range_3": {379"begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",380"beginCaptures": {381"1": {382"name": "keyword.control.directive.$3.c"383},384"2": {385"name": "punctuation.definition.directive.c"386}387},388"end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",389"name": "meta.preprocessor.include.c",390"patterns": [391{392"include": "#line_continuation_character"393},394{395"begin": "\"",396"beginCaptures": {397"0": {398"name": "punctuation.definition.string.begin.c"399}400},401"end": "\"",402"endCaptures": {403"0": {404"name": "punctuation.definition.string.end.c"405}406},407"name": "string.quoted.double.include.c"408},409{410"begin": "<",411"beginCaptures": {412"0": {413"name": "punctuation.definition.string.begin.c"414}415},416"end": ">",417"endCaptures": {418"0": {419"name": "punctuation.definition.string.end.c"420}421},422"name": "string.quoted.other.lt-gt.include.c"423}424]425},426"anon_pattern_range_4": {427"begin": "^\\s*((#)\\s*line)\\b",428"beginCaptures": {429"1": {430"name": "keyword.control.directive.line.c"431},432"2": {433"name": "punctuation.definition.directive.c"434}435},436"end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",437"name": "meta.preprocessor.c",438"patterns": [439{440"include": "#strings"441},442{443"include": "#numbers"444},445{446"include": "#line_continuation_character"447}448]449},450"anon_pattern_range_5": {451"begin": "^\\s*(?:((#)\\s*undef))\\b",452"beginCaptures": {453"1": {454"name": "keyword.control.directive.undef.c"455},456"2": {457"name": "punctuation.definition.directive.c"458}459},460"end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",461"name": "meta.preprocessor.c",462"patterns": [463{464"match": "[a-zA-Z_$][\\w$]*",465"name": "entity.name.function.preprocessor.c"466},467{468"include": "#line_continuation_character"469}470]471},472"anon_pattern_range_6": {473"begin": "^\\s*(?:((#)\\s*pragma))\\b",474"beginCaptures": {475"1": {476"name": "keyword.control.directive.pragma.c"477},478"2": {479"name": "punctuation.definition.directive.c"480}481},482"end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",483"name": "meta.preprocessor.pragma.c",484"patterns": [485{486"include": "#strings"487},488{489"match": "[a-zA-Z_$][\\w\\-$]*",490"name": "entity.other.attribute-name.pragma.preprocessor.c"491},492{493"include": "#numbers"494},495{496"include": "#line_continuation_character"497}498]499},500"anon_pattern_range_7": {501"name": "meta.function.c",502"begin": "(?<!\\w)(?!\\s*(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|pthread_rwlock_t|atomic_uintptr_t|atomic_ptrdiff_t|atomic_uintmax_t|atomic_intmax_t|atomic_char32_t|atomic_intptr_t|atomic_char16_t|pthread_mutex_t|pthread_cond_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_once_t|pthread_attr_t|uint_least8_t|int_least32_t|int_least16_t|pthread_key_t|uint_fast32_t|uint_fast64_t|uint_fast16_t|atomic_size_t|atomic_ushort|atomic_ullong|int_least64_t|atomic_ulong|int_least8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|memory_order|atomic_schar|atomic_uchar|atomic_short|atomic_llong|thread_local|atomic_bool|atomic_uint|atomic_long|int_fast8_t|suseconds_t|atomic_char|atomic_int|useconds_t|_Imaginary|uintmax_t|uintmax_t|in_addr_t|in_port_t|_Noreturn|blksize_t|pthread_t|uintptr_t|volatile|u_quad_t|blkcnt_t|intmax_t|intptr_t|_Complex|uint16_t|uint32_t|uint64_t|_Alignof|_Alignas|continue|unsigned|restrict|intmax_t|register|int64_t|qaddr_t|segsz_t|_Atomic|alignas|default|caddr_t|nlink_t|typedef|u_short|fixpt_t|clock_t|swblk_t|ssize_t|alignof|daddr_t|int16_t|int32_t|uint8_t|struct|mode_t|size_t|time_t|ushort|u_long|u_char|int8_t|double|signed|static|extern|inline|return|switch|xor_eq|and_eq|bitand|not_eq|sizeof|quad_t|uid_t|bitor|union|off_t|key_t|ino_t|compl|u_int|short|const|false|while|float|pid_t|break|_Bool|or_eq|div_t|dev_t|gid_t|id_t|long|case|goto|else|bool|auto|id_t|enum|uint|true|NULL|void|char|for|not|int|and|xor|do|or|if)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",503"end": "(?!\\G)(?<=\\))",504"patterns": [505{506"include": "#function-innards"507}508]509},510"anon_pattern_range_8": {511"name": "meta.bracket.square.access.c",512"begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",513"beginCaptures": {514"1": {515"name": "variable.object.c"516},517"2": {518"name": "punctuation.definition.begin.bracket.square.c"519}520},521"end": "\\]",522"endCaptures": {523"0": {524"name": "punctuation.definition.end.bracket.square.c"525}526},527"patterns": [528{529"include": "#function-call-innards"530}531]532},533"anon_pattern_range_9": {534"name": "storage.modifier.array.bracket.square.c",535"match": "\\[\\s*\\]"536},537"backslash_escapes": {538"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} )",539"name": "constant.character.escape.c"540},541"block": {542"patterns": [543{544"begin": "{",545"beginCaptures": {546"0": {547"name": "punctuation.section.block.begin.bracket.curly.c"548}549},550"end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",551"endCaptures": {552"0": {553"name": "punctuation.section.block.end.bracket.curly.c"554}555},556"name": "meta.block.c",557"patterns": [558{559"include": "#block_innards"560}561]562}563]564},565"block_comment": {566"patterns": [567{568"begin": "\\s*+(\\/\\*)",569"end": "\\*\\/",570"beginCaptures": {571"1": {572"name": "punctuation.definition.comment.begin.c"573}574},575"endCaptures": {576"0": {577"name": "punctuation.definition.comment.end.c"578}579},580"name": "comment.block.c"581},582{583"begin": "\\s*+(\\/\\*)",584"end": "\\*\\/",585"beginCaptures": {586"1": {587"name": "punctuation.definition.comment.begin.c"588}589},590"endCaptures": {591"0": {592"name": "punctuation.definition.comment.end.c"593}594},595"name": "comment.block.c"596}597]598},599"block_innards": {600"patterns": [601{602"include": "#preprocessor-rule-enabled-block"603},604{605"include": "#preprocessor-rule-disabled-block"606},607{608"include": "#preprocessor-rule-conditional-block"609},610{611"include": "#method_access"612},613{614"include": "#member_access"615},616{617"include": "#c_function_call"618},619{620"name": "meta.initialization.c",621"begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",622"beginCaptures": {623"1": {624"name": "variable.other.c"625},626"2": {627"name": "punctuation.section.parens.begin.bracket.round.initialization.c"628}629},630"end": "\\)",631"endCaptures": {632"0": {633"name": "punctuation.section.parens.end.bracket.round.initialization.c"634}635},636"patterns": [637{638"include": "#function-call-innards"639}640]641},642{643"begin": "{",644"beginCaptures": {645"0": {646"name": "punctuation.section.block.begin.bracket.curly.c"647}648},649"end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",650"endCaptures": {651"0": {652"name": "punctuation.section.block.end.bracket.curly.c"653}654},655"patterns": [656{657"include": "#block_innards"658}659]660},661{662"include": "#parens-block"663},664{665"include": "$self"666}667]668},669"c_conditional_context": {670"patterns": [671{672"include": "$self"673},674{675"include": "#block_innards"676}677]678},679"c_function_call": {680"begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",681"end": "(?<=\\))(?!\\w)",682"name": "meta.function-call.c",683"patterns": [684{685"include": "#function-call-innards"686}687]688},689"case_statement": {690"name": "meta.conditional.case.c",691"begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)case(?!\\w))",692"beginCaptures": {693"1": {694"patterns": [695{696"include": "#inline_comment"697}698]699},700"2": {701"name": "comment.block.c punctuation.definition.comment.begin.c"702},703"3": {704"name": "comment.block.c"705},706"4": {707"patterns": [708{709"match": "\\*\\/",710"name": "comment.block.c punctuation.definition.comment.end.c"711},712{713"match": "\\*",714"name": "comment.block.c"715}716]717},718"5": {719"name": "keyword.control.case.c"720}721},722"end": "(:)",723"endCaptures": {724"1": {725"name": "punctuation.separator.colon.case.c"726}727},728"patterns": [729{730"include": "#evaluation_context"731},732{733"include": "#c_conditional_context"734}735]736},737"comments": {738"patterns": [739{740"patterns": [741{742"patterns": [743{744"name": "comment.line.double-slash.documentation.c",745"begin": "(?:^)(?>\\s*)(\\/\\/[!\\/]+)",746"beginCaptures": {747"1": {748"name": "punctuation.definition.comment.documentation.c"749}750},751"end": "(?<=\\n)(?<!\\\\\\n)",752"patterns": [753{754"include": "#line_continuation_character"755},756{757"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(?:\\{[^}]*\\})?",758"name": "storage.type.class.doxygen.c"759},760{761"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",762"captures": {763"1": {764"name": "storage.type.class.doxygen.c"765},766"2": {767"name": "markup.italic.doxygen.c"768}769}770},771{772"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",773"captures": {774"1": {775"name": "storage.type.class.doxygen.c"776},777"2": {778"name": "markup.bold.doxygen.c"779}780}781},782{783"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",784"captures": {785"1": {786"name": "storage.type.class.doxygen.c"787},788"2": {789"name": "markup.inline.raw.string.c"790}791}792},793{794"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(?:\\{[^}]*\\})?",795"name": "storage.type.class.doxygen.c"796},797{798"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(?:\\{[^}]*\\})?",799"name": "storage.type.class.doxygen.c"800},801{802"match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",803"captures": {804"1": {805"name": "storage.type.class.doxygen.c"806},807"2": {808"patterns": [809{810"match": "in|out",811"name": "keyword.other.parameter.direction.$0.c"812}813]814},815"3": {816"name": "variable.parameter.c"817}818}819},820{821"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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",822"name": "storage.type.class.doxygen.c"823},824{825"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",826"name": "storage.type.class.doxygen.c"827},828{829"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",830"name": "storage.type.class.gtkdoc"831}832]833},834{835"match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",836"captures": {837"1": {838"name": "punctuation.definition.comment.begin.documentation.c"839},840"2": {841"patterns": [842{843"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(?:\\{[^}]*\\})?",844"name": "storage.type.class.doxygen.c"845},846{847"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",848"captures": {849"1": {850"name": "storage.type.class.doxygen.c"851},852"2": {853"name": "markup.italic.doxygen.c"854}855}856},857{858"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",859"captures": {860"1": {861"name": "storage.type.class.doxygen.c"862},863"2": {864"name": "markup.bold.doxygen.c"865}866}867},868{869"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",870"captures": {871"1": {872"name": "storage.type.class.doxygen.c"873},874"2": {875"name": "markup.inline.raw.string.c"876}877}878},879{880"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(?:\\{[^}]*\\})?",881"name": "storage.type.class.doxygen.c"882},883{884"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(?:\\{[^}]*\\})?",885"name": "storage.type.class.doxygen.c"886},887{888"match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",889"captures": {890"1": {891"name": "storage.type.class.doxygen.c"892},893"2": {894"patterns": [895{896"match": "in|out",897"name": "keyword.other.parameter.direction.$0.c"898}899]900},901"3": {902"name": "variable.parameter.c"903}904}905},906{907"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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",908"name": "storage.type.class.doxygen.c"909},910{911"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",912"name": "storage.type.class.doxygen.c"913},914{915"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",916"name": "storage.type.class.gtkdoc"917}918]919},920"3": {921"name": "punctuation.definition.comment.end.documentation.c"922}923},924"name": "comment.block.documentation.c"925},926{927"name": "comment.block.documentation.c",928"begin": "((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))",929"beginCaptures": {930"1": {931"name": "punctuation.definition.comment.begin.documentation.c"932}933},934"end": "([!*]*\\*\\/)",935"endCaptures": {936"1": {937"name": "punctuation.definition.comment.end.documentation.c"938}939},940"patterns": [941{942"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(?:\\{[^}]*\\})?",943"name": "storage.type.class.doxygen.c"944},945{946"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",947"captures": {948"1": {949"name": "storage.type.class.doxygen.c"950},951"2": {952"name": "markup.italic.doxygen.c"953}954}955},956{957"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",958"captures": {959"1": {960"name": "storage.type.class.doxygen.c"961},962"2": {963"name": "markup.bold.doxygen.c"964}965}966},967{968"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",969"captures": {970"1": {971"name": "storage.type.class.doxygen.c"972},973"2": {974"name": "markup.inline.raw.string.c"975}976}977},978{979"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(?:\\{[^}]*\\})?",980"name": "storage.type.class.doxygen.c"981},982{983"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(?:\\{[^}]*\\})?",984"name": "storage.type.class.doxygen.c"985},986{987"match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",988"captures": {989"1": {990"name": "storage.type.class.doxygen.c"991},992"2": {993"patterns": [994{995"match": "in|out",996"name": "keyword.other.parameter.direction.$0.c"997}998]999},1000"3": {1001"name": "variable.parameter.c"1002}1003}1004},1005{1006"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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",1007"name": "storage.type.class.doxygen.c"1008},1009{1010"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",1011"name": "storage.type.class.doxygen.c"1012},1013{1014"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",1015"name": "storage.type.class.gtkdoc"1016}1017]1018},1019{1020"match": "^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?",1021"captures": {1022"1": {1023"name": "meta.toc-list.banner.block.c"1024}1025},1026"name": "comment.block.banner.c"1027},1028{1029"name": "comment.block.c",1030"begin": "(\\/\\*)",1031"beginCaptures": {1032"1": {1033"name": "punctuation.definition.comment.begin.c"1034}1035},1036"end": "(\\*\\/)",1037"endCaptures": {1038"1": {1039"name": "punctuation.definition.comment.end.c"1040}1041}1042},1043{1044"match": "^\\/\\/ =(\\s*.*?)\\s*=$\\n?",1045"captures": {1046"1": {1047"name": "meta.toc-list.banner.line.c"1048}1049},1050"name": "comment.line.banner.c"1051},1052{1053"begin": "((?:^[ \\t]+)?)(?=\\/\\/)",1054"beginCaptures": {1055"1": {1056"name": "punctuation.whitespace.comment.leading.c"1057}1058},1059"end": "(?!\\G)",1060"patterns": [1061{1062"name": "comment.line.double-slash.c",1063"begin": "(\\/\\/)",1064"beginCaptures": {1065"1": {1066"name": "punctuation.definition.comment.c"1067}1068},1069"end": "(?=\\n)",1070"patterns": [1071{1072"include": "#line_continuation_character"1073}1074]1075}1076]1077}1078]1079},1080{1081"include": "#block_comment"1082},1083{1084"include": "#line_comment"1085}1086]1087},1088{1089"include": "#block_comment"1090},1091{1092"include": "#line_comment"1093}1094]1095},1096"default_statement": {1097"name": "meta.conditional.case.c",1098"begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)default(?!\\w))",1099"beginCaptures": {1100"1": {1101"patterns": [1102{1103"include": "#inline_comment"1104}1105]1106},1107"2": {1108"name": "comment.block.c punctuation.definition.comment.begin.c"1109},1110"3": {1111"name": "comment.block.c"1112},1113"4": {1114"patterns": [1115{1116"match": "\\*\\/",1117"name": "comment.block.c punctuation.definition.comment.end.c"1118},1119{1120"match": "\\*",1121"name": "comment.block.c"1122}1123]1124},1125"5": {1126"name": "keyword.control.default.c"1127}1128},1129"end": "(:)",1130"endCaptures": {1131"1": {1132"name": "punctuation.separator.colon.case.default.c"1133}1134},1135"patterns": [1136{1137"include": "#evaluation_context"1138},1139{1140"include": "#c_conditional_context"1141}1142]1143},1144"disabled": {1145"begin": "^\\s*#\\s*if(n?def)?\\b.*$",1146"end": "^\\s*#\\s*endif\\b",1147"patterns": [1148{1149"include": "#disabled"1150},1151{1152"include": "#pragma-mark"1153}1154]1155},1156"evaluation_context": {1157"patterns": [1158{1159"include": "#function-call-innards"1160},1161{1162"include": "$self"1163}1164]1165},1166"function-call-innards": {1167"patterns": [1168{1169"include": "#comments"1170},1171{1172"include": "#storage_types"1173},1174{1175"include": "#method_access"1176},1177{1178"include": "#member_access"1179},1180{1181"include": "#operators"1182},1183{1184"begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",1185"beginCaptures": {1186"1": {1187"name": "entity.name.function.c"1188},1189"2": {1190"name": "punctuation.section.arguments.begin.bracket.round.c"1191}1192},1193"end": "\\)",1194"endCaptures": {1195"0": {1196"name": "punctuation.section.arguments.end.bracket.round.c"1197}1198},1199"patterns": [1200{1201"include": "#function-call-innards"1202}1203]1204},1205{1206"begin": "\\(",1207"beginCaptures": {1208"0": {1209"name": "punctuation.section.parens.begin.bracket.round.c"1210}1211},1212"end": "\\)",1213"endCaptures": {1214"0": {1215"name": "punctuation.section.parens.end.bracket.round.c"1216}1217},1218"patterns": [1219{1220"include": "#function-call-innards"1221}1222]1223},1224{1225"include": "#block_innards"1226}1227]1228},1229"function-innards": {1230"patterns": [1231{1232"include": "#comments"1233},1234{1235"include": "#storage_types"1236},1237{1238"include": "#operators"1239},1240{1241"include": "#vararg_ellipses"1242},1243{1244"name": "meta.function.definition.parameters.c",1245"begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",1246"beginCaptures": {1247"1": {1248"name": "entity.name.function.c"1249},1250"2": {1251"name": "punctuation.section.parameters.begin.bracket.round.c"1252}1253},1254"end": "\\)",1255"endCaptures": {1256"0": {1257"name": "punctuation.section.parameters.end.bracket.round.c"1258}1259},1260"patterns": [1261{1262"include": "#probably_a_parameter"1263},1264{1265"include": "#function-innards"1266}1267]1268},1269{1270"begin": "\\(",1271"beginCaptures": {1272"0": {1273"name": "punctuation.section.parens.begin.bracket.round.c"1274}1275},1276"end": "\\)",1277"endCaptures": {1278"0": {1279"name": "punctuation.section.parens.end.bracket.round.c"1280}1281},1282"patterns": [1283{1284"include": "#function-innards"1285}1286]1287},1288{1289"include": "$self"1290}1291]1292},1293"inline_comment": {1294"patterns": [1295{1296"patterns": [1297{1298"match": "(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))",1299"captures": {1300"1": {1301"name": "comment.block.c punctuation.definition.comment.begin.c"1302},1303"2": {1304"name": "comment.block.c"1305},1306"3": {1307"patterns": [1308{1309"match": "\\*\\/",1310"name": "comment.block.c punctuation.definition.comment.end.c"1311},1312{1313"match": "\\*",1314"name": "comment.block.c"1315}1316]1317}1318}1319},1320{1321"match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",1322"captures": {1323"1": {1324"name": "comment.block.c punctuation.definition.comment.begin.c"1325},1326"2": {1327"name": "comment.block.c"1328},1329"3": {1330"patterns": [1331{1332"match": "\\*\\/",1333"name": "comment.block.c punctuation.definition.comment.end.c"1334},1335{1336"match": "\\*",1337"name": "comment.block.c"1338}1339]1340}1341}1342}1343]1344},1345{1346"match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",1347"captures": {1348"1": {1349"name": "comment.block.c punctuation.definition.comment.begin.c"1350},1351"2": {1352"name": "comment.block.c"1353},1354"3": {1355"patterns": [1356{1357"match": "\\*\\/",1358"name": "comment.block.c punctuation.definition.comment.end.c"1359},1360{1361"match": "\\*",1362"name": "comment.block.c"1363}1364]1365}1366}1367}1368]1369},1370"line_comment": {1371"patterns": [1372{1373"begin": "\\s*+(\\/\\/)",1374"end": "(?<=\\n)(?<!\\\\\\n)",1375"beginCaptures": {1376"1": {1377"name": "punctuation.definition.comment.c"1378}1379},1380"endCaptures": {},1381"name": "comment.line.double-slash.c",1382"patterns": [1383{1384"include": "#line_continuation_character"1385}1386]1387},1388{1389"begin": "\\s*+(\\/\\/)",1390"end": "(?<=\\n)(?<!\\\\\\n)",1391"beginCaptures": {1392"1": {1393"name": "punctuation.definition.comment.c"1394}1395},1396"endCaptures": {},1397"name": "comment.line.double-slash.c",1398"patterns": [1399{1400"include": "#line_continuation_character"1401}1402]1403}1404]1405},1406"line_continuation_character": {1407"patterns": [1408{1409"match": "(\\\\)\\n",1410"captures": {1411"1": {1412"name": "constant.character.escape.line-continuation.c"1413}1414}1415}1416]1417},1418"member_access": {1419"match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())",1420"captures": {1421"1": {1422"name": "variable.other.object.access.c"1423},1424"2": {1425"name": "punctuation.separator.dot-access.c"1426},1427"3": {1428"name": "punctuation.separator.pointer-access.c"1429},1430"4": {1431"patterns": [1432{1433"include": "#member_access"1434},1435{1436"include": "#method_access"1437},1438{1439"match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",1440"captures": {1441"1": {1442"name": "variable.other.object.access.c"1443},1444"2": {1445"name": "punctuation.separator.dot-access.c"1446},1447"3": {1448"name": "punctuation.separator.pointer-access.c"1449}1450}1451}1452]1453},1454"5": {1455"name": "variable.other.member.c"1456}1457}1458},1459"method_access": {1460"contentName": "meta.function-call.member.c",1461"begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",1462"beginCaptures": {1463"1": {1464"name": "variable.other.object.access.c"1465},1466"2": {1467"name": "punctuation.separator.dot-access.c"1468},1469"3": {1470"name": "punctuation.separator.pointer-access.c"1471},1472"4": {1473"patterns": [1474{1475"include": "#member_access"1476},1477{1478"include": "#method_access"1479},1480{1481"match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",1482"captures": {1483"1": {1484"name": "variable.other.object.access.c"1485},1486"2": {1487"name": "punctuation.separator.dot-access.c"1488},1489"3": {1490"name": "punctuation.separator.pointer-access.c"1491}1492}1493}1494]1495},1496"5": {1497"name": "entity.name.function.member.c"1498},1499"6": {1500"name": "punctuation.section.arguments.begin.bracket.round.function.member.c"1501}1502},1503"end": "(\\))",1504"endCaptures": {1505"1": {1506"name": "punctuation.section.arguments.end.bracket.round.function.member.c"1507}1508},1509"patterns": [1510{1511"include": "#function-call-innards"1512}1513]1514},1515"numbers": {1516"match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*",1517"captures": {1518"0": {1519"patterns": [1520{1521"begin": "(?=.)",1522"end": "$",1523"patterns": [1524{1525"match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?<!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?$",1526"captures": {1527"1": {1528"name": "keyword.other.unit.hexadecimal.c"1529},1530"2": {1531"name": "constant.numeric.hexadecimal.c",1532"patterns": [1533{1534"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1535"name": "punctuation.separator.constant.numeric"1536}1537]1538},1539"3": {1540"name": "punctuation.separator.constant.numeric"1541},1542"4": {1543"name": "constant.numeric.hexadecimal.c"1544},1545"5": {1546"name": "constant.numeric.hexadecimal.c",1547"patterns": [1548{1549"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1550"name": "punctuation.separator.constant.numeric"1551}1552]1553},1554"6": {1555"name": "punctuation.separator.constant.numeric"1556},1557"8": {1558"name": "keyword.other.unit.exponent.hexadecimal.c"1559},1560"9": {1561"name": "keyword.operator.plus.exponent.hexadecimal.c"1562},1563"10": {1564"name": "keyword.operator.minus.exponent.hexadecimal.c"1565},1566"11": {1567"name": "constant.numeric.exponent.hexadecimal.c",1568"patterns": [1569{1570"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1571"name": "punctuation.separator.constant.numeric"1572}1573]1574},1575"12": {1576"name": "keyword.other.unit.suffix.floating-point.c"1577}1578}1579},1580{1581"match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?<!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?$",1582"captures": {1583"2": {1584"name": "constant.numeric.decimal.c",1585"patterns": [1586{1587"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1588"name": "punctuation.separator.constant.numeric"1589}1590]1591},1592"3": {1593"name": "punctuation.separator.constant.numeric"1594},1595"4": {1596"name": "constant.numeric.decimal.point.c"1597},1598"5": {1599"name": "constant.numeric.decimal.c",1600"patterns": [1601{1602"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1603"name": "punctuation.separator.constant.numeric"1604}1605]1606},1607"6": {1608"name": "punctuation.separator.constant.numeric"1609},1610"8": {1611"name": "keyword.other.unit.exponent.decimal.c"1612},1613"9": {1614"name": "keyword.operator.plus.exponent.decimal.c"1615},1616"10": {1617"name": "keyword.operator.minus.exponent.decimal.c"1618},1619"11": {1620"name": "constant.numeric.exponent.decimal.c",1621"patterns": [1622{1623"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1624"name": "punctuation.separator.constant.numeric"1625}1626]1627},1628"12": {1629"name": "keyword.other.unit.suffix.floating-point.c"1630}1631}1632},1633{1634"match": "(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$",1635"captures": {1636"1": {1637"name": "keyword.other.unit.binary.c"1638},1639"2": {1640"name": "constant.numeric.binary.c",1641"patterns": [1642{1643"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1644"name": "punctuation.separator.constant.numeric"1645}1646]1647},1648"3": {1649"name": "punctuation.separator.constant.numeric"1650},1651"4": {1652"name": "keyword.other.unit.suffix.integer.c"1653}1654}1655},1656{1657"match": "(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$",1658"captures": {1659"1": {1660"name": "keyword.other.unit.octal.c"1661},1662"2": {1663"name": "constant.numeric.octal.c",1664"patterns": [1665{1666"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1667"name": "punctuation.separator.constant.numeric"1668}1669]1670},1671"3": {1672"name": "punctuation.separator.constant.numeric"1673},1674"4": {1675"name": "keyword.other.unit.suffix.integer.c"1676}1677}1678},1679{1680"match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?<!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$",1681"captures": {1682"1": {1683"name": "keyword.other.unit.hexadecimal.c"1684},1685"2": {1686"name": "constant.numeric.hexadecimal.c",1687"patterns": [1688{1689"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1690"name": "punctuation.separator.constant.numeric"1691}1692]1693},1694"3": {1695"name": "punctuation.separator.constant.numeric"1696},1697"5": {1698"name": "keyword.other.unit.exponent.hexadecimal.c"1699},1700"6": {1701"name": "keyword.operator.plus.exponent.hexadecimal.c"1702},1703"7": {1704"name": "keyword.operator.minus.exponent.hexadecimal.c"1705},1706"8": {1707"name": "constant.numeric.exponent.hexadecimal.c",1708"patterns": [1709{1710"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1711"name": "punctuation.separator.constant.numeric"1712}1713]1714},1715"9": {1716"name": "keyword.other.unit.suffix.integer.c"1717}1718}1719},1720{1721"match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?<!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$",1722"captures": {1723"2": {1724"name": "constant.numeric.decimal.c",1725"patterns": [1726{1727"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1728"name": "punctuation.separator.constant.numeric"1729}1730]1731},1732"3": {1733"name": "punctuation.separator.constant.numeric"1734},1735"5": {1736"name": "keyword.other.unit.exponent.decimal.c"1737},1738"6": {1739"name": "keyword.operator.plus.exponent.decimal.c"1740},1741"7": {1742"name": "keyword.operator.minus.exponent.decimal.c"1743},1744"8": {1745"name": "constant.numeric.exponent.decimal.c",1746"patterns": [1747{1748"match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",1749"name": "punctuation.separator.constant.numeric"1750}1751]1752},1753"9": {1754"name": "keyword.other.unit.suffix.integer.c"1755}1756}1757},1758{1759"match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+",1760"name": "invalid.illegal.constant.numeric"1761}1762]1763}1764]1765}1766}1767},1768"operators": {1769"patterns": [1770{1771"match": "(?<![\\w$])(sizeof)(?![\\w$])",1772"name": "keyword.operator.sizeof.c"1773},1774{1775"match": "--",1776"name": "keyword.operator.decrement.c"1777},1778{1779"match": "\\+\\+",1780"name": "keyword.operator.increment.c"1781},1782{1783"match": "%=|\\+=|-=|\\*=|(?<!\\()/=",1784"name": "keyword.operator.assignment.compound.c"1785},1786{1787"match": "&=|\\^=|<<=|>>=|\\|=",1788"name": "keyword.operator.assignment.compound.bitwise.c"1789},1790{1791"match": "<<|>>",1792"name": "keyword.operator.bitwise.shift.c"1793},1794{1795"match": "!=|<=|>=|==|<|>",1796"name": "keyword.operator.comparison.c"1797},1798{1799"match": "&&|!|\\|\\|",1800"name": "keyword.operator.logical.c"1801},1802{1803"match": "&|\\||\\^|~",1804"name": "keyword.operator.c"1805},1806{1807"match": "=",1808"name": "keyword.operator.assignment.c"1809},1810{1811"match": "%|\\*|/|-|\\+",1812"name": "keyword.operator.c"1813},1814{1815"begin": "(\\?)",1816"beginCaptures": {1817"1": {1818"name": "keyword.operator.ternary.c"1819}1820},1821"end": "(:)",1822"endCaptures": {1823"1": {1824"name": "keyword.operator.ternary.c"1825}1826},1827"patterns": [1828{1829"include": "#function-call-innards"1830},1831{1832"include": "$self"1833}1834]1835}1836]1837},1838"parens": {1839"name": "meta.parens.c",1840"begin": "\\(",1841"beginCaptures": {1842"0": {1843"name": "punctuation.section.parens.begin.bracket.round.c"1844}1845},1846"end": "\\)",1847"endCaptures": {1848"0": {1849"name": "punctuation.section.parens.end.bracket.round.c"1850}1851},1852"patterns": [1853{1854"include": "$self"1855}1856]1857},1858"parens-block": {1859"name": "meta.parens.block.c",1860"begin": "\\(",1861"beginCaptures": {1862"0": {1863"name": "punctuation.section.parens.begin.bracket.round.c"1864}1865},1866"end": "\\)",1867"endCaptures": {1868"0": {1869"name": "punctuation.section.parens.end.bracket.round.c"1870}1871},1872"patterns": [1873{1874"include": "#block_innards"1875},1876{1877"match": "(?-mix:(?<!:):(?!:))",1878"name": "punctuation.range-based.c"1879}1880]1881},1882"pragma-mark": {1883"captures": {1884"1": {1885"name": "meta.preprocessor.pragma.c"1886},1887"2": {1888"name": "keyword.control.directive.pragma.pragma-mark.c"1889},1890"3": {1891"name": "punctuation.definition.directive.c"1892},1893"4": {1894"name": "entity.name.tag.pragma-mark.c"1895}1896},1897"match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",1898"name": "meta.section.c"1899},1900"predefined_macros": {1901"patterns": [1902{1903"match": "\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b",1904"captures": {1905"1": {1906"name": "entity.name.other.preprocessor.macro.predefined.$1.c"1907}1908}1909},1910{1911"match": "\\b__([A-Z_]+)__\\b",1912"name": "entity.name.other.preprocessor.macro.predefined.probably.$1.c"1913}1914]1915},1916"preprocessor-rule-conditional": {1917"patterns": [1918{1919"begin": "^\\s*((#)\\s*if(?:n?def)?\\b)",1920"beginCaptures": {1921"0": {1922"name": "meta.preprocessor.c"1923},1924"1": {1925"name": "keyword.control.directive.conditional.c"1926},1927"2": {1928"name": "punctuation.definition.directive.c"1929}1930},1931"end": "^\\s*((#)\\s*endif\\b)",1932"endCaptures": {1933"0": {1934"name": "meta.preprocessor.c"1935},1936"1": {1937"name": "keyword.control.directive.conditional.c"1938},1939"2": {1940"name": "punctuation.definition.directive.c"1941}1942},1943"patterns": [1944{1945"begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",1946"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",1947"name": "meta.preprocessor.c",1948"patterns": [1949{1950"include": "#preprocessor-rule-conditional-line"1951}1952]1953},1954{1955"include": "#preprocessor-rule-enabled-elif"1956},1957{1958"include": "#preprocessor-rule-enabled-else"1959},1960{1961"include": "#preprocessor-rule-disabled-elif"1962},1963{1964"begin": "^\\s*((#)\\s*elif\\b)",1965"beginCaptures": {1966"1": {1967"name": "keyword.control.directive.conditional.c"1968},1969"2": {1970"name": "punctuation.definition.directive.c"1971}1972},1973"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",1974"name": "meta.preprocessor.c",1975"patterns": [1976{1977"include": "#preprocessor-rule-conditional-line"1978}1979]1980},1981{1982"include": "$self"1983}1984]1985},1986{1987"match": "^\\s*#\\s*(else|elif|endif)\\b",1988"captures": {1989"0": {1990"name": "invalid.illegal.stray-$1.c"1991}1992}1993}1994]1995},1996"preprocessor-rule-conditional-block": {1997"patterns": [1998{1999"begin": "^\\s*((#)\\s*if(?:n?def)?\\b)",2000"beginCaptures": {2001"0": {2002"name": "meta.preprocessor.c"2003},2004"1": {2005"name": "keyword.control.directive.conditional.c"2006},2007"2": {2008"name": "punctuation.definition.directive.c"2009}2010},2011"end": "^\\s*((#)\\s*endif\\b)",2012"endCaptures": {2013"0": {2014"name": "meta.preprocessor.c"2015},2016"1": {2017"name": "keyword.control.directive.conditional.c"2018},2019"2": {2020"name": "punctuation.definition.directive.c"2021}2022},2023"patterns": [2024{2025"begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",2026"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",2027"name": "meta.preprocessor.c",2028"patterns": [2029{2030"include": "#preprocessor-rule-conditional-line"2031}2032]2033},2034{2035"include": "#preprocessor-rule-enabled-elif-block"2036},2037{2038"include": "#preprocessor-rule-enabled-else-block"2039},2040{2041"include": "#preprocessor-rule-disabled-elif"2042},2043{2044"begin": "^\\s*((#)\\s*elif\\b)",2045"beginCaptures": {2046"1": {2047"name": "keyword.control.directive.conditional.c"2048},2049"2": {2050"name": "punctuation.definition.directive.c"2051}2052},2053"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",2054"name": "meta.preprocessor.c",2055"patterns": [2056{2057"include": "#preprocessor-rule-conditional-line"2058}2059]2060},2061{2062"include": "#block_innards"2063}2064]2065},2066{2067"match": "^\\s*#\\s*(else|elif|endif)\\b",2068"captures": {2069"0": {2070"name": "invalid.illegal.stray-$1.c"2071}2072}2073}2074]2075},2076"preprocessor-rule-conditional-line": {2077"patterns": [2078{2079"match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",2080"name": "keyword.control.directive.conditional.c"2081},2082{2083"match": "\\bdefined\\b",2084"name": "invalid.illegal.macro-name.c"2085},2086{2087"include": "#comments"2088},2089{2090"include": "#strings"2091},2092{2093"include": "#numbers"2094},2095{2096"begin": "\\?",2097"beginCaptures": {2098"0": {2099"name": "keyword.operator.ternary.c"2100}2101},2102"end": ":",2103"endCaptures": {2104"0": {2105"name": "keyword.operator.ternary.c"2106}2107},2108"patterns": [2109{2110"include": "#preprocessor-rule-conditional-line"2111}2112]2113},2114{2115"include": "#operators"2116},2117{2118"match": "\\b(NULL|true|false|TRUE|FALSE)\\b",2119"name": "constant.language.c"2120},2121{2122"match": "[a-zA-Z_$][\\w$]*",2123"name": "entity.name.function.preprocessor.c"2124},2125{2126"include": "#line_continuation_character"2127},2128{2129"begin": "\\(",2130"beginCaptures": {2131"0": {2132"name": "punctuation.section.parens.begin.bracket.round.c"2133}2134},2135"end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",2136"endCaptures": {2137"0": {2138"name": "punctuation.section.parens.end.bracket.round.c"2139}2140},2141"patterns": [2142{2143"include": "#preprocessor-rule-conditional-line"2144}2145]2146}2147]2148},2149"preprocessor-rule-define-line-blocks": {2150"patterns": [2151{2152"begin": "{",2153"beginCaptures": {2154"0": {2155"name": "punctuation.section.block.begin.bracket.curly.c"2156}2157},2158"end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",2159"endCaptures": {2160"0": {2161"name": "punctuation.section.block.end.bracket.curly.c"2162}2163},2164"patterns": [2165{2166"include": "#preprocessor-rule-define-line-blocks"2167},2168{2169"include": "#preprocessor-rule-define-line-contents"2170}2171]2172},2173{2174"include": "#preprocessor-rule-define-line-contents"2175}2176]2177},2178"preprocessor-rule-define-line-contents": {2179"patterns": [2180{2181"include": "#vararg_ellipses"2182},2183{2184"begin": "{",2185"beginCaptures": {2186"0": {2187"name": "punctuation.section.block.begin.bracket.curly.c"2188}2189},2190"end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",2191"endCaptures": {2192"0": {2193"name": "punctuation.section.block.end.bracket.curly.c"2194}2195},2196"name": "meta.block.c",2197"patterns": [2198{2199"include": "#preprocessor-rule-define-line-blocks"2200}2201]2202},2203{2204"match": "\\(",2205"name": "punctuation.section.parens.begin.bracket.round.c"2206},2207{2208"match": "\\)",2209"name": "punctuation.section.parens.end.bracket.round.c"2210},2211{2212"begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",2213"end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",2214"name": "meta.function.c",2215"patterns": [2216{2217"include": "#preprocessor-rule-define-line-functions"2218}2219]2220},2221{2222"begin": "\"",2223"beginCaptures": {2224"0": {2225"name": "punctuation.definition.string.begin.c"2226}2227},2228"end": "\"|(?<!\\\\)(?=\\s*\\n)",2229"endCaptures": {2230"0": {2231"name": "punctuation.definition.string.end.c"2232}2233},2234"name": "string.quoted.double.c",2235"patterns": [2236{2237"include": "#string_escaped_char"2238},2239{2240"include": "#string_placeholder"2241},2242{2243"include": "#line_continuation_character"2244}2245]2246},2247{2248"begin": "'",2249"beginCaptures": {2250"0": {2251"name": "punctuation.definition.string.begin.c"2252}2253},2254"end": "'|(?<!\\\\)(?=\\s*\\n)",2255"endCaptures": {2256"0": {2257"name": "punctuation.definition.string.end.c"2258}2259},2260"name": "string.quoted.single.c",2261"patterns": [2262{2263"include": "#string_escaped_char"2264},2265{2266"include": "#line_continuation_character"2267}2268]2269},2270{2271"include": "#method_access"2272},2273{2274"include": "#member_access"2275},2276{2277"include": "$self"2278}2279]2280},2281"preprocessor-rule-define-line-functions": {2282"patterns": [2283{2284"include": "#comments"2285},2286{2287"include": "#storage_types"2288},2289{2290"include": "#vararg_ellipses"2291},2292{2293"include": "#method_access"2294},2295{2296"include": "#member_access"2297},2298{2299"include": "#operators"2300},2301{2302"begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",2303"beginCaptures": {2304"1": {2305"name": "entity.name.function.c"2306},2307"2": {2308"name": "punctuation.section.arguments.begin.bracket.round.c"2309}2310},2311"end": "(\\))|(?<!\\\\)(?=\\s*\\n)",2312"endCaptures": {2313"1": {2314"name": "punctuation.section.arguments.end.bracket.round.c"2315}2316},2317"patterns": [2318{2319"include": "#preprocessor-rule-define-line-functions"2320}2321]2322},2323{2324"begin": "\\(",2325"beginCaptures": {2326"0": {2327"name": "punctuation.section.parens.begin.bracket.round.c"2328}2329},2330"end": "(\\))|(?<!\\\\)(?=\\s*\\n)",2331"endCaptures": {2332"1": {2333"name": "punctuation.section.parens.end.bracket.round.c"2334}2335},2336"patterns": [2337{2338"include": "#preprocessor-rule-define-line-functions"2339}2340]2341},2342{2343"include": "#preprocessor-rule-define-line-contents"2344}2345]2346},2347"preprocessor-rule-disabled": {2348"patterns": [2349{2350"begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",2351"beginCaptures": {2352"0": {2353"name": "meta.preprocessor.c"2354},2355"1": {2356"name": "keyword.control.directive.conditional.c"2357},2358"2": {2359"name": "punctuation.definition.directive.c"2360}2361},2362"end": "^\\s*((#)\\s*endif\\b)",2363"endCaptures": {2364"0": {2365"name": "meta.preprocessor.c"2366},2367"1": {2368"name": "keyword.control.directive.conditional.c"2369},2370"2": {2371"name": "punctuation.definition.directive.c"2372}2373},2374"patterns": [2375{2376"begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",2377"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",2378"name": "meta.preprocessor.c",2379"patterns": [2380{2381"include": "#preprocessor-rule-conditional-line"2382}2383]2384},2385{2386"include": "#comments"2387},2388{2389"include": "#preprocessor-rule-enabled-elif"2390},2391{2392"include": "#preprocessor-rule-enabled-else"2393},2394{2395"include": "#preprocessor-rule-disabled-elif"2396},2397{2398"begin": "^\\s*((#)\\s*elif\\b)",2399"beginCaptures": {2400"0": {2401"name": "meta.preprocessor.c"2402},2403"1": {2404"name": "keyword.control.directive.conditional.c"2405},2406"2": {2407"name": "punctuation.definition.directive.c"2408}2409},2410"end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",2411"patterns": [2412{2413"begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",2414"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",2415"name": "meta.preprocessor.c",2416"patterns": [2417{2418"include": "#preprocessor-rule-conditional-line"2419}2420]2421},2422{2423"include": "$self"2424}2425]2426},2427{2428"begin": "\\n",2429"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",2430"contentName": "comment.block.preprocessor.if-branch.c",2431"patterns": [2432{2433"include": "#disabled"2434},2435{2436"include": "#pragma-mark"2437}2438]2439}2440]2441}2442]2443},2444"preprocessor-rule-disabled-block": {2445"patterns": [2446{2447"begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",2448"beginCaptures": {2449"0": {2450"name": "meta.preprocessor.c"2451},2452"1": {2453"name": "keyword.control.directive.conditional.c"2454},2455"2": {2456"name": "punctuation.definition.directive.c"2457}2458},2459"end": "^\\s*((#)\\s*endif\\b)",2460"endCaptures": {2461"0": {2462"name": "meta.preprocessor.c"2463},2464"1": {2465"name": "keyword.control.directive.conditional.c"2466},2467"2": {2468"name": "punctuation.definition.directive.c"2469}2470},2471"patterns": [2472{2473"begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",2474"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",2475"name": "meta.preprocessor.c",2476"patterns": [2477{2478"include": "#preprocessor-rule-conditional-line"2479}2480]2481},2482{2483"include": "#comments"2484},2485{2486"include": "#preprocessor-rule-enabled-elif-block"2487},2488{2489"include": "#preprocessor-rule-enabled-else-block"2490},2491{2492"include": "#preprocessor-rule-disabled-elif"2493},2494{2495"begin": "^\\s*((#)\\s*elif\\b)",2496"beginCaptures": {2497"0": {2498"name": "meta.preprocessor.c"2499},2500"1": {2501"name": "keyword.control.directive.conditional.c"2502},2503"2": {2504"name": "punctuation.definition.directive.c"2505}2506},2507"end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",2508"patterns": [2509{2510"begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",2511"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",2512"name": "meta.preprocessor.c",2513"patterns": [2514{2515"include": "#preprocessor-rule-conditional-line"2516}2517]2518},2519{2520"include": "#block_innards"2521}2522]2523},2524{2525"begin": "\\n",2526"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",2527"contentName": "comment.block.preprocessor.if-branch.in-block.c",2528"patterns": [2529{2530"include": "#disabled"2531},2532{2533"include": "#pragma-mark"2534}2535]2536}2537]2538}2539]2540},2541"preprocessor-rule-disabled-elif": {2542"begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",2543"beginCaptures": {2544"0": {2545"name": "meta.preprocessor.c"2546},2547"1": {2548"name": "keyword.control.directive.conditional.c"2549},2550"2": {2551"name": "punctuation.definition.directive.c"2552}2553},2554"end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",2555"patterns": [2556{2557"begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",2558"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",2559"name": "meta.preprocessor.c",2560"patterns": [2561{2562"include": "#preprocessor-rule-conditional-line"2563}2564]2565},2566{2567"include": "#comments"2568},2569{2570"begin": "\\n",2571"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",2572"contentName": "comment.block.preprocessor.elif-branch.c",2573"patterns": [2574{2575"include": "#disabled"2576},2577{2578"include": "#pragma-mark"2579}2580]2581}2582]2583},2584"preprocessor-rule-enabled": {2585"patterns": [2586{2587"begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",2588"beginCaptures": {2589"0": {2590"name": "meta.preprocessor.c"2591},2592"1": {2593"name": "keyword.control.directive.conditional.c"2594},2595"2": {2596"name": "punctuation.definition.directive.c"2597},2598"3": {2599"name": "constant.numeric.preprocessor.c"2600}2601},2602"end": "^\\s*((#)\\s*endif\\b)",2603"endCaptures": {2604"0": {2605"name": "meta.preprocessor.c"2606},2607"1": {2608"name": "keyword.control.directive.conditional.c"2609},2610"2": {2611"name": "punctuation.definition.directive.c"2612}2613},2614"patterns": [2615{2616"begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",2617"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",2618"name": "meta.preprocessor.c",2619"patterns": [2620{2621"include": "#preprocessor-rule-conditional-line"2622}2623]2624},2625{2626"include": "#comments"2627},2628{2629"begin": "^\\s*((#)\\s*else\\b)",2630"beginCaptures": {2631"0": {2632"name": "meta.preprocessor.c"2633},2634"1": {2635"name": "keyword.control.directive.conditional.c"2636},2637"2": {2638"name": "punctuation.definition.directive.c"2639}2640},2641"end": "(?=^\\s*((#)\\s*endif\\b))",2642"contentName": "comment.block.preprocessor.else-branch.c",2643"patterns": [2644{2645"include": "#disabled"2646},2647{2648"include": "#pragma-mark"2649}2650]2651},2652{2653"begin": "^\\s*((#)\\s*elif\\b)",2654"beginCaptures": {2655"0": {2656"name": "meta.preprocessor.c"2657},2658"1": {2659"name": "keyword.control.directive.conditional.c"2660},2661"2": {2662"name": "punctuation.definition.directive.c"2663}2664},2665"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",2666"contentName": "comment.block.preprocessor.if-branch.c",2667"patterns": [2668{2669"include": "#disabled"2670},2671{2672"include": "#pragma-mark"2673}2674]2675},2676{2677"begin": "\\n",2678"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",2679"patterns": [2680{2681"include": "$self"2682}2683]2684}2685]2686}2687]2688},2689"preprocessor-rule-enabled-block": {2690"patterns": [2691{2692"begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",2693"beginCaptures": {2694"0": {2695"name": "meta.preprocessor.c"2696},2697"1": {2698"name": "keyword.control.directive.conditional.c"2699},2700"2": {2701"name": "punctuation.definition.directive.c"2702}2703},2704"end": "^\\s*((#)\\s*endif\\b)",2705"endCaptures": {2706"0": {2707"name": "meta.preprocessor.c"2708},2709"1": {2710"name": "keyword.control.directive.conditional.c"2711},2712"2": {2713"name": "punctuation.definition.directive.c"2714}2715},2716"patterns": [2717{2718"begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",2719"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",2720"name": "meta.preprocessor.c",2721"patterns": [2722{2723"include": "#preprocessor-rule-conditional-line"2724}2725]2726},2727{2728"include": "#comments"2729},2730{2731"begin": "^\\s*((#)\\s*else\\b)",2732"beginCaptures": {2733"0": {2734"name": "meta.preprocessor.c"2735},2736"1": {2737"name": "keyword.control.directive.conditional.c"2738},2739"2": {2740"name": "punctuation.definition.directive.c"2741}2742},2743"end": "(?=^\\s*((#)\\s*endif\\b))",2744"contentName": "comment.block.preprocessor.else-branch.in-block.c",2745"patterns": [2746{2747"include": "#disabled"2748},2749{2750"include": "#pragma-mark"2751}2752]2753},2754{2755"begin": "^\\s*((#)\\s*elif\\b)",2756"beginCaptures": {2757"0": {2758"name": "meta.preprocessor.c"2759},2760"1": {2761"name": "keyword.control.directive.conditional.c"2762},2763"2": {2764"name": "punctuation.definition.directive.c"2765}2766},2767"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",2768"contentName": "comment.block.preprocessor.if-branch.in-block.c",2769"patterns": [2770{2771"include": "#disabled"2772},2773{2774"include": "#pragma-mark"2775}2776]2777},2778{2779"begin": "\\n",2780"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",2781"patterns": [2782{2783"include": "#block_innards"2784}2785]2786}2787]2788}2789]2790},2791"preprocessor-rule-enabled-elif": {2792"begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",2793"beginCaptures": {2794"0": {2795"name": "meta.preprocessor.c"2796},2797"1": {2798"name": "keyword.control.directive.conditional.c"2799},2800"2": {2801"name": "punctuation.definition.directive.c"2802}2803},2804"end": "(?=^\\s*((#)\\s*endif\\b))",2805"patterns": [2806{2807"begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",2808"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",2809"name": "meta.preprocessor.c",2810"patterns": [2811{2812"include": "#preprocessor-rule-conditional-line"2813}2814]2815},2816{2817"include": "#comments"2818},2819{2820"begin": "\\n",2821"end": "(?=^\\s*((#)\\s*(?:endif)\\b))",2822"patterns": [2823{2824"begin": "^\\s*((#)\\s*(else)\\b)",2825"beginCaptures": {2826"0": {2827"name": "meta.preprocessor.c"2828},2829"1": {2830"name": "keyword.control.directive.conditional.c"2831},2832"2": {2833"name": "punctuation.definition.directive.c"2834}2835},2836"end": "(?=^\\s*((#)\\s*endif\\b))",2837"contentName": "comment.block.preprocessor.elif-branch.c",2838"patterns": [2839{2840"include": "#disabled"2841},2842{2843"include": "#pragma-mark"2844}2845]2846},2847{2848"begin": "^\\s*((#)\\s*(elif)\\b)",2849"beginCaptures": {2850"0": {2851"name": "meta.preprocessor.c"2852},2853"1": {2854"name": "keyword.control.directive.conditional.c"2855},2856"2": {2857"name": "punctuation.definition.directive.c"2858}2859},2860"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",2861"contentName": "comment.block.preprocessor.elif-branch.c",2862"patterns": [2863{2864"include": "#disabled"2865},2866{2867"include": "#pragma-mark"2868}2869]2870},2871{2872"include": "$self"2873}2874]2875}2876]2877},2878"preprocessor-rule-enabled-elif-block": {2879"begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",2880"beginCaptures": {2881"0": {2882"name": "meta.preprocessor.c"2883},2884"1": {2885"name": "keyword.control.directive.conditional.c"2886},2887"2": {2888"name": "punctuation.definition.directive.c"2889}2890},2891"end": "(?=^\\s*((#)\\s*endif\\b))",2892"patterns": [2893{2894"begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",2895"end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",2896"name": "meta.preprocessor.c",2897"patterns": [2898{2899"include": "#preprocessor-rule-conditional-line"2900}2901]2902},2903{2904"include": "#comments"2905},2906{2907"begin": "\\n",2908"end": "(?=^\\s*((#)\\s*(?:endif)\\b))",2909"patterns": [2910{2911"begin": "^\\s*((#)\\s*(else)\\b)",2912"beginCaptures": {2913"0": {2914"name": "meta.preprocessor.c"2915},2916"1": {2917"name": "keyword.control.directive.conditional.c"2918},2919"2": {2920"name": "punctuation.definition.directive.c"2921}2922},2923"end": "(?=^\\s*((#)\\s*endif\\b))",2924"contentName": "comment.block.preprocessor.elif-branch.in-block.c",2925"patterns": [2926{2927"include": "#disabled"2928},2929{2930"include": "#pragma-mark"2931}2932]2933},2934{2935"begin": "^\\s*((#)\\s*(elif)\\b)",2936"beginCaptures": {2937"0": {2938"name": "meta.preprocessor.c"2939},2940"1": {2941"name": "keyword.control.directive.conditional.c"2942},2943"2": {2944"name": "punctuation.definition.directive.c"2945}2946},2947"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",2948"contentName": "comment.block.preprocessor.elif-branch.c",2949"patterns": [2950{2951"include": "#disabled"2952},2953{2954"include": "#pragma-mark"2955}2956]2957},2958{2959"include": "#block_innards"2960}2961]2962}2963]2964},2965"preprocessor-rule-enabled-else": {2966"begin": "^\\s*((#)\\s*else\\b)",2967"beginCaptures": {2968"0": {2969"name": "meta.preprocessor.c"2970},2971"1": {2972"name": "keyword.control.directive.conditional.c"2973},2974"2": {2975"name": "punctuation.definition.directive.c"2976}2977},2978"end": "(?=^\\s*((#)\\s*endif\\b))",2979"patterns": [2980{2981"include": "$self"2982}2983]2984},2985"preprocessor-rule-enabled-else-block": {2986"begin": "^\\s*((#)\\s*else\\b)",2987"beginCaptures": {2988"0": {2989"name": "meta.preprocessor.c"2990},2991"1": {2992"name": "keyword.control.directive.conditional.c"2993},2994"2": {2995"name": "punctuation.definition.directive.c"2996}2997},2998"end": "(?=^\\s*((#)\\s*endif\\b))",2999"patterns": [3000{3001"include": "#block_innards"3002}3003]3004},3005"probably_a_parameter": {3006"match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))",3007"captures": {3008"1": {3009"name": "variable.parameter.probably.c"3010}3011}3012},3013"static_assert": {3014"begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)static_assert|_Static_assert(?!\\w))((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",3015"beginCaptures": {3016"1": {3017"patterns": [3018{3019"include": "#inline_comment"3020}3021]3022},3023"2": {3024"name": "comment.block.c punctuation.definition.comment.begin.c"3025},3026"3": {3027"name": "comment.block.c"3028},3029"4": {3030"patterns": [3031{3032"match": "\\*\\/",3033"name": "comment.block.c punctuation.definition.comment.end.c"3034},3035{3036"match": "\\*",3037"name": "comment.block.c"3038}3039]3040},3041"5": {3042"name": "keyword.other.static_assert.c"3043},3044"6": {3045"patterns": [3046{3047"include": "#inline_comment"3048}3049]3050},3051"7": {3052"name": "comment.block.c punctuation.definition.comment.begin.c"3053},3054"8": {3055"name": "comment.block.c"3056},3057"9": {3058"patterns": [3059{3060"match": "\\*\\/",3061"name": "comment.block.c punctuation.definition.comment.end.c"3062},3063{3064"match": "\\*",3065"name": "comment.block.c"3066}3067]3068},3069"10": {3070"name": "punctuation.section.arguments.begin.bracket.round.static_assert.c"3071}3072},3073"end": "(\\))",3074"endCaptures": {3075"1": {3076"name": "punctuation.section.arguments.end.bracket.round.static_assert.c"3077}3078},3079"patterns": [3080{3081"name": "meta.static_assert.message.c",3082"begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",3083"beginCaptures": {3084"1": {3085"name": "punctuation.separator.delimiter.comma.c"3086}3087},3088"end": "(?=\\))",3089"patterns": [3090{3091"include": "#string_context"3092}3093]3094},3095{3096"include": "#evaluation_context"3097}3098]3099},3100"storage_types": {3101"patterns": [3102{3103"match": "(?-mix:(?<!\\w)(?:unsigned|signed|double|_Bool|short|float|long|void|char|bool|int)(?!\\w))",3104"name": "storage.type.built-in.primitive.c"3105},3106{3107"match": "(?-mix:(?<!\\w)(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|pthread_rwlockattr_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_uint_fast16_t|atomic_int_least64_t|atomic_int_least32_t|atomic_int_least16_t|atomic_uint_least8_t|atomic_uint_fast8_t|atomic_int_least8_t|atomic_int_fast16_t|pthread_mutexattr_t|atomic_int_fast32_t|atomic_int_fast64_t|atomic_int_fast8_t|pthread_condattr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintptr_t|atomic_uintmax_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_mutex_t|pthread_cond_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_once_t|pthread_attr_t|int_least32_t|pthread_key_t|int_least16_t|int_least64_t|uint_least8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|atomic_ushort|atomic_ullong|atomic_size_t|int_fast16_t|int_fast64_t|uint_fast8_t|atomic_short|atomic_uchar|atomic_schar|int_least8_t|memory_order|atomic_llong|atomic_ulong|int_fast32_t|atomic_long|atomic_uint|atomic_char|int_fast8_t|suseconds_t|atomic_bool|atomic_int|_Imaginary|useconds_t|in_port_t|uintmax_t|uintmax_t|pthread_t|blksize_t|in_addr_t|uintptr_t|blkcnt_t|uint16_t|uint32_t|uint64_t|u_quad_t|_Complex|intptr_t|intmax_t|intmax_t|segsz_t|u_short|nlink_t|uint8_t|int64_t|int32_t|int16_t|fixpt_t|daddr_t|caddr_t|qaddr_t|ssize_t|clock_t|swblk_t|u_long|mode_t|int8_t|time_t|ushort|u_char|quad_t|size_t|pid_t|gid_t|uid_t|dev_t|div_t|off_t|u_int|key_t|ino_t|uint|id_t|id_t)(?!\\w))",3108"name": "storage.type.built-in.c"3109},3110{3111"match": "(?-mix:\\b(enum|struct|union)\\b)",3112"name": "storage.type.$1.c"3113},3114{3115"name": "meta.asm.c",3116"begin": "(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)",3117"beginCaptures": {3118"1": {3119"name": "storage.type.asm.c"3120},3121"2": {3122"name": "storage.modifier.c"3123}3124},3125"end": "(?!\\G)",3126"patterns": [3127{3128"match": "(?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)",3129"captures": {3130"1": {3131"patterns": [3132{3133"include": "#inline_comment"3134}3135]3136},3137"2": {3138"name": "comment.block.c punctuation.definition.comment.begin.c"3139},3140"3": {3141"name": "comment.block.c"3142},3143"4": {3144"patterns": [3145{3146"match": "\\*\\/",3147"name": "comment.block.c punctuation.definition.comment.end.c"3148},3149{3150"match": "\\*",3151"name": "comment.block.c"3152}3153]3154}3155}3156},3157{3158"include": "#comments"3159},3160{3161"begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\()",3162"beginCaptures": {3163"1": {3164"name": "punctuation.section.parens.begin.bracket.round.assembly.c"3165},3166"2": {3167"patterns": [3168{3169"include": "#inline_comment"3170}3171]3172},3173"3": {3174"name": "comment.block.c punctuation.definition.comment.begin.c"3175},3176"4": {3177"name": "comment.block.c"3178},3179"5": {3180"patterns": [3181{3182"match": "\\*\\/",3183"name": "comment.block.c punctuation.definition.comment.end.c"3184},3185{3186"match": "\\*",3187"name": "comment.block.c"3188}3189]3190}3191},3192"end": "(\\))",3193"endCaptures": {3194"1": {3195"name": "punctuation.section.parens.end.bracket.round.assembly.c"3196}3197},3198"patterns": [3199{3200"name": "string.quoted.double.c",3201"contentName": "meta.embedded.assembly.c",3202"begin": "(R?)(\")",3203"beginCaptures": {3204"1": {3205"name": "meta.encoding.c"3206},3207"2": {3208"name": "punctuation.definition.string.begin.assembly.c"3209}3210},3211"end": "(\")",3212"endCaptures": {3213"1": {3214"name": "punctuation.definition.string.end.assembly.c"3215}3216},3217"patterns": [3218{3219"include": "source.asm"3220},3221{3222"include": "source.x86"3223},3224{3225"include": "source.x86_64"3226},3227{3228"include": "source.arm"3229},3230{3231"include": "#backslash_escapes"3232},3233{3234"include": "#string_escaped_char"3235}3236]3237},3238{3239"begin": "(\\()",3240"beginCaptures": {3241"1": {3242"name": "punctuation.section.parens.begin.bracket.round.assembly.inner.c"3243}3244},3245"end": "(\\))",3246"endCaptures": {3247"1": {3248"name": "punctuation.section.parens.end.bracket.round.assembly.inner.c"3249}3250},3251"patterns": [3252{3253"include": "#evaluation_context"3254}3255]3256},3257{3258"match": "\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]",3259"captures": {3260"1": {3261"patterns": [3262{3263"include": "#inline_comment"3264}3265]3266},3267"2": {3268"name": "comment.block.c punctuation.definition.comment.begin.c"3269},3270"3": {3271"name": "comment.block.c"3272},3273"4": {3274"patterns": [3275{3276"match": "\\*\\/",3277"name": "comment.block.c punctuation.definition.comment.end.c"3278},3279{3280"match": "\\*",3281"name": "comment.block.c"3282}3283]3284},3285"5": {3286"name": "variable.other.asm.label.c"3287},3288"6": {3289"patterns": [3290{3291"include": "#inline_comment"3292}3293]3294},3295"7": {3296"name": "comment.block.c punctuation.definition.comment.begin.c"3297},3298"8": {3299"name": "comment.block.c"3300},3301"9": {3302"patterns": [3303{3304"match": "\\*\\/",3305"name": "comment.block.c punctuation.definition.comment.end.c"3306},3307{3308"match": "\\*",3309"name": "comment.block.c"3310}3311]3312}3313}3314},3315{3316"match": ":",3317"name": "punctuation.separator.delimiter.colon.assembly.c"3318},3319{3320"include": "#comments"3321}3322]3323}3324]3325}3326]3327},3328"string_escaped_char": {3329"patterns": [3330{3331"match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,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} )",3332"name": "constant.character.escape.c"3333},3334{3335"match": "\\\\.",3336"name": "invalid.illegal.unknown-escape.c"3337}3338]3339},3340"string_placeholder": {3341"patterns": [3342{3343"match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",3344"name": "constant.other.placeholder.c"3345},3346{3347"match": "(%)(?!\"\\s*(PRI|SCN))",3348"captures": {3349"1": {3350"name": "invalid.illegal.placeholder.c"3351}3352}3353}3354]3355},3356"strings": {3357"patterns": [3358{3359"begin": "\"",3360"beginCaptures": {3361"0": {3362"name": "punctuation.definition.string.begin.c"3363}3364},3365"end": "\"",3366"endCaptures": {3367"0": {3368"name": "punctuation.definition.string.end.c"3369}3370},3371"name": "string.quoted.double.c",3372"patterns": [3373{3374"include": "#string_escaped_char"3375},3376{3377"include": "#string_placeholder"3378},3379{3380"include": "#line_continuation_character"3381}3382]3383},3384{3385"begin": "'",3386"beginCaptures": {3387"0": {3388"name": "punctuation.definition.string.begin.c"3389}3390},3391"end": "'",3392"endCaptures": {3393"0": {3394"name": "punctuation.definition.string.end.c"3395}3396},3397"name": "string.quoted.single.c",3398"patterns": [3399{3400"include": "#string_escaped_char"3401},3402{3403"include": "#line_continuation_character"3404}3405]3406}3407]3408},3409"switch_conditional_parentheses": {3410"name": "meta.conditional.switch.c",3411"begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",3412"beginCaptures": {3413"1": {3414"patterns": [3415{3416"include": "#inline_comment"3417}3418]3419},3420"2": {3421"name": "comment.block.c punctuation.definition.comment.begin.c"3422},3423"3": {3424"name": "comment.block.c"3425},3426"4": {3427"patterns": [3428{3429"match": "\\*\\/",3430"name": "comment.block.c punctuation.definition.comment.end.c"3431},3432{3433"match": "\\*",3434"name": "comment.block.c"3435}3436]3437},3438"5": {3439"name": "punctuation.section.parens.begin.bracket.round.conditional.switch.c"3440}3441},3442"end": "(\\))",3443"endCaptures": {3444"1": {3445"name": "punctuation.section.parens.end.bracket.round.conditional.switch.c"3446}3447},3448"patterns": [3449{3450"include": "#evaluation_context"3451},3452{3453"include": "#c_conditional_context"3454}3455]3456},3457"switch_statement": {3458"name": "meta.block.switch.c",3459"begin": "(((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)switch(?!\\w)))",3460"beginCaptures": {3461"1": {3462"name": "meta.head.switch.c"3463},3464"2": {3465"patterns": [3466{3467"include": "#inline_comment"3468}3469]3470},3471"3": {3472"name": "comment.block.c punctuation.definition.comment.begin.c"3473},3474"4": {3475"name": "comment.block.c"3476},3477"5": {3478"patterns": [3479{3480"match": "\\*\\/",3481"name": "comment.block.c punctuation.definition.comment.end.c"3482},3483{3484"match": "\\*",3485"name": "comment.block.c"3486}3487]3488},3489"6": {3490"name": "keyword.control.switch.c"3491}3492},3493"end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",3494"patterns": [3495{3496"name": "meta.head.switch.c",3497"begin": "\\G ?",3498"end": "((?:\\{|<%|\\?\\?<|(?=;)))",3499"endCaptures": {3500"1": {3501"name": "punctuation.section.block.begin.bracket.curly.switch.c"3502}3503},3504"patterns": [3505{3506"include": "#switch_conditional_parentheses"3507},3508{3509"include": "$self"3510}3511]3512},3513{3514"name": "meta.body.switch.c",3515"begin": "(?<=\\{|<%|\\?\\?<)",3516"end": "(\\}|%>|\\?\\?>)",3517"endCaptures": {3518"1": {3519"name": "punctuation.section.block.end.bracket.curly.switch.c"3520}3521},3522"patterns": [3523{3524"include": "#default_statement"3525},3526{3527"include": "#case_statement"3528},3529{3530"include": "$self"3531},3532{3533"include": "#block_innards"3534}3535]3536},3537{3538"name": "meta.tail.switch.c",3539"begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",3540"end": "[\\s\\n]*(?=;)",3541"patterns": [3542{3543"include": "$self"3544}3545]3546}3547]3548},3549"vararg_ellipses": {3550"match": "(?<!\\.)\\.\\.\\.(?!\\.)",3551"name": "punctuation.vararg-ellipses.c"3552}3553}3554}35553556