138 lines
5.3 KiB
JSON
138 lines
5.3 KiB
JSON
|
{
|
||
|
"patterns": [
|
||
|
{
|
||
|
"regex": "#include (<.+?>)",
|
||
|
"is": { "default": "keyword1", "captures": ["string"] }
|
||
|
},
|
||
|
{ "regex": "#[a-zA-Z0-9_]+", "is": "keyword1" },
|
||
|
{ "regex": "\\/\\/.*", "is": "comment" },
|
||
|
{
|
||
|
"regex": "\\/\\*.*?\\*\\/",
|
||
|
"flags": ["dotMatchesNewline"],
|
||
|
"is": "comment"
|
||
|
},
|
||
|
{
|
||
|
"regex": "[a-zA-Z_][a-zA-Z0-9_]*(\\()",
|
||
|
"is": { "default": "function", "captures": ["default"] }
|
||
|
},
|
||
|
{ "regex": "(u8|u|U|L)?'(\\\\'|[^'])'", "is": "string" },
|
||
|
{ "regex": "(u8|u|U|L)?\"(\\\\\"|[^\"])*\"", "is": "string" },
|
||
|
{ "regex": "[a-zA-Z_][a-zA-Z0-9_]*", "is": "identifier" },
|
||
|
{ "regex": "0[bB][01']+[uUlLfFlLdDwWbB]*", "is": "literal" },
|
||
|
{
|
||
|
"regex": "0[xX][0-9a-fA-F']+(\\.[0-9a-fA-F']*([pP][-+]?[0-9a-fA-F']+)?)?+[uUlLwWbB]*",
|
||
|
"is": "literal"
|
||
|
},
|
||
|
{
|
||
|
"regex": "[0-9']+(\\.[0-9']*([eE][-+]?[0-9']+)?)?[uUlLfFlLdDwWbB]*",
|
||
|
"is": "literal"
|
||
|
},
|
||
|
{ "regex": "[+=/*^%<>!~|&\\.?:#-]+", "is": "operator" },
|
||
|
{ "regex": "[,;]", "is": "punct" }
|
||
|
],
|
||
|
"keywords": {
|
||
|
"alignas": { "into": "keyword1" },
|
||
|
"alignof": { "into": "keyword1" },
|
||
|
"and": { "into": "keyword1" },
|
||
|
"and_eq": { "into": "keyword1" },
|
||
|
"asm": { "into": "keyword1" },
|
||
|
"auto": { "into": "keyword1" },
|
||
|
"bitand": { "into": "keyword1" },
|
||
|
"bitor": { "into": "keyword1" },
|
||
|
"break": { "into": "keyword1" },
|
||
|
"case": { "into": "keyword1" },
|
||
|
"catch": { "into": "keyword1" },
|
||
|
"class": { "into": "keyword1" },
|
||
|
"compl": { "into": "keyword1" },
|
||
|
"concept": { "into": "keyword1" },
|
||
|
"const": { "into": "keyword1" },
|
||
|
"consteval": { "into": "keyword1" },
|
||
|
"constexpr": { "into": "keyword1" },
|
||
|
"constinit": { "into": "keyword1" },
|
||
|
"const_cast": { "into": "keyword1" },
|
||
|
"continue": { "into": "keyword1" },
|
||
|
"contract_assert": { "into": "keyword1" },
|
||
|
"co_await": { "into": "keyword1" },
|
||
|
"co_return": { "into": "keyword1" },
|
||
|
"co_yield": { "into": "keyword1" },
|
||
|
"decltype": { "into": "keyword1" },
|
||
|
"default": { "into": "keyword1" },
|
||
|
"delete": { "into": "keyword1" },
|
||
|
"do": { "into": "keyword1" },
|
||
|
"dynamic_cast": { "into": "keyword1" },
|
||
|
"else": { "into": "keyword1" },
|
||
|
"enum": { "into": "keyword1" },
|
||
|
"explicit": { "into": "keyword1" },
|
||
|
"export": { "into": "keyword1" },
|
||
|
"extern": { "into": "keyword1" },
|
||
|
"for": { "into": "keyword1" },
|
||
|
"friend": { "into": "keyword1" },
|
||
|
"goto": { "into": "keyword1" },
|
||
|
"if": { "into": "keyword1" },
|
||
|
"inline": { "into": "keyword1" },
|
||
|
"mutable": { "into": "keyword1" },
|
||
|
"namespace": { "into": "keyword1" },
|
||
|
"new": { "into": "keyword1" },
|
||
|
"noexcept": { "into": "keyword1" },
|
||
|
"not": { "into": "keyword1" },
|
||
|
"not_eq": { "into": "keyword1" },
|
||
|
"operator": { "into": "keyword1" },
|
||
|
"or": { "into": "keyword1" },
|
||
|
"or_eq": { "into": "keyword1" },
|
||
|
"private": { "into": "keyword1" },
|
||
|
"protected": { "into": "keyword1" },
|
||
|
"public": { "into": "keyword1" },
|
||
|
"register": { "into": "keyword1" },
|
||
|
"reinterpret_cast": { "into": "keyword1" },
|
||
|
"requires": { "into": "keyword1" },
|
||
|
"return": { "into": "keyword1" },
|
||
|
"sizeof": { "into": "keyword1" },
|
||
|
"static": { "into": "keyword1" },
|
||
|
"static_assert": { "into": "keyword1" },
|
||
|
"static_cast": { "into": "keyword1" },
|
||
|
"struct": { "into": "keyword1" },
|
||
|
"switch": { "into": "keyword1" },
|
||
|
"template": { "into": "keyword1" },
|
||
|
"this": { "into": "keyword2" },
|
||
|
"thread_local": { "into": "keyword1" },
|
||
|
"throw": { "into": "keyword1" },
|
||
|
"try": { "into": "keyword1" },
|
||
|
"typedef": { "into": "keyword1" },
|
||
|
"typeid": { "into": "keyword1" },
|
||
|
"typename": { "into": "keyword1" },
|
||
|
"union": { "into": "keyword1" },
|
||
|
"using": { "into": "keyword1" },
|
||
|
"virtual": { "into": "keyword1" },
|
||
|
"volatile": { "into": "keyword1" },
|
||
|
"wchar_t": { "into": "keyword1" },
|
||
|
"while": { "into": "keyword1" },
|
||
|
"xor": { "into": "keyword1" },
|
||
|
"xor_eq": { "into": "keyword1" },
|
||
|
|
||
|
"bool": { "into": "keyword2" },
|
||
|
"char": { "into": "keyword2" },
|
||
|
"char8_t": { "into": "keyword2" },
|
||
|
"char16_t": { "into": "keyword2" },
|
||
|
"char32_t": { "into": "keyword2" },
|
||
|
"double": { "into": "keyword2" },
|
||
|
"float": { "into": "keyword2" },
|
||
|
"int": { "into": "keyword2" },
|
||
|
"long": { "into": "keyword2" },
|
||
|
"short": { "into": "keyword2" },
|
||
|
"signed": { "into": "keyword2" },
|
||
|
"unsigned": { "into": "keyword2" },
|
||
|
"void": { "into": "keyword2" },
|
||
|
"_Atomic": { "into": "keyword2" },
|
||
|
"_BitInt": { "into": "keyword2" },
|
||
|
"_Complex": { "into": "keyword2" },
|
||
|
"_Decimal128": { "into": "keyword2" },
|
||
|
"_Decimal32": { "into": "keyword2" },
|
||
|
"_Decimal64": { "into": "keyword2" },
|
||
|
"_Imaginary": { "into": "keyword2" },
|
||
|
|
||
|
"nullptr": { "into": "literal" },
|
||
|
"false": { "into": "literal" },
|
||
|
"true": { "into": "literal" }
|
||
|
}
|
||
|
}
|