bachelors-thesis/d.json

119 lines
3.8 KiB
JSON
Executable File

{
"displayName": "D",
"name": "d",
"mimeTypes": ["text/d"],
"fileExtensions": ["d","di"],
"lineComment": "//",
"blockCommentStart": "/*",
"blockCommentEnd": "*/",
"keywords": [
"alignas", "alignof", "and", "and_eq", "asm", "auto", "bitand", "bitor", "bool", "break", "case",
"catch", "char", "wchar", "dchar", "class", "shared", "const", "immutable", "cast",
"continue", "default", "do", "double", "else", "foreach",
"enum", "export", "extern", "false", "float", "for", "goto", "if", "pragma",
"int", "long", "import", "module", "new", "nothrow", "not", "null", "private", "protected", "public", "register", "reinterpret_cast",
"return", "short", "static", "assert", "struct",
"switch", "template", "this", "__gshared", "true", "try", "alias", "typeof", "union", "virtual", "void", "volatile", "while", "final", "uint", "ulong", "ushort", "ubyte", "byte", "cent", "is", "string", "dstring", "wstring"
],
"extraKeywords": [],
"typeKeywords": [
"bool", "double", "cent", "byte", "int", "short", "char", "void", "long", "float", "ulong", "ushort", "uint", "ubyte", "byte", "wchar", "dchar", "string", "dstring", "wstring"
],
"extraTypeKeywords": [],
"directives": [
"include","if","endif","ifdef","define","line","warning","error"
],
"operators": [
"=", ">", "<", "!", "~", "?", ":",
"==", "<=", ">=", "!=", "&&", "||", "++", "--",
"+", "-", "*", "/", "&", "|", "^", "%", "<<",
">>", ">>>", "+=", "-=", "*=", "/=", "&=", "|=",
"^=", "%=", "<<=", ">>=", ">>>="
],
"extraOperators": [],
"symbols": "[=><!~?:&|+\\-*\\/\\^%]+",
"escapes": "\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",
"tokenizer": {
"root": [
["__\\w+", "identifier.predefined"],
["\\w+::(?=\\w)", "namespace" ],
["(namespace)(\\s*)((?:\\w+::)*\\w+)", ["keyword","white","namespace"] ],
["[a-z_$][\\w]*", { "cases": {
"@typeKeywords": "keyword.type",
"@extraTypeKeywords": "keyword.type.extra",
"@keywords": "keyword",
"@extraKeywords": "keyword.extra",
"@default": "identifier" } }],
["(\\.|\\->)([A-Z][\\w]*)", ["keyword", "identifier"] ],
["[A-Z][\\w]*(?!\\s*[\\w\\(])", "type.identifier" ],
["[A-Z][A-Z0-9_]*(?![\\w\\(])", "type.identifier" ],
["^(\\s*#)(\\w+)(.*)", { "cases": {
"$2@directives": ["namespace","namespace","string"],
"@default": ["meta","meta","string"]
}}],
{ "include": "@whitespace" },
["[{}()\\[\\]]", "@brackets"],
["[<>](?!@symbols)", "@brackets"],
["@symbols", { "cases": {
"@operators": "operator",
"@extraOperators": "operator.extra",
"@default" : "" } } ],
["\\d*\\.\\d+([eE][\\-+]?\\d+)?[fFdD]?", "number.float"],
["0[xX][0-9a-fA-F_]*[0-9a-fA-F][Ll]?", "number.hex"],
["0[0-7_]*[0-7][Ll]?", "number.octal"],
["0[bB][0-1_]*[0-1][Ll]?", "number.binary"],
["\\d+[lL]?", "number"],
["[;,.]", "delimiter"],
["[lL]\"([^\"\\\\]|\\\\.)*$", "string.invalid" ],
["\"", "string", "@string" ],
["'[^\\\\']'", "string"],
["(')(@escapes)(')", ["string","string.escape","string"]],
["'", "string.invalid"]
],
"whitespace": [
["[ \\t\\r\\n]+", "white"],
["\\/\\*", "comment", "@comment" ],
["\\/\\/.*$", "comment"]
],
"comment": [
["[^\\/*]+", "comment" ],
["\\/\\*", "comment.invalid" ],
["\\*/", "comment", "@pop" ],
["[\\/*]", "comment" ]
],
"string": [
["[^\\\\\"]+", "string"],
["@escapes", "string.escape"],
["\\\\.", "string.escape.invalid"],
["\"", "string", "@pop" ]
]
}
}