forked from OSchip/llvm-project
452 lines
9.6 KiB
JSON
452 lines
9.6 KiB
JSON
{
|
|
"name": "TableGen",
|
|
"fileTypes": [
|
|
"td"
|
|
],
|
|
"patterns": [
|
|
{
|
|
"include": "#comments"
|
|
},
|
|
{
|
|
"include": "#preprocessor"
|
|
},
|
|
{
|
|
"include": "#strings"
|
|
},
|
|
{
|
|
"include": "#integer"
|
|
},
|
|
{
|
|
"include": "#builtin_types"
|
|
},
|
|
{
|
|
"include": "#keywords"
|
|
},
|
|
{
|
|
"include": "#classes"
|
|
},
|
|
{
|
|
"include": "#defs"
|
|
},
|
|
{
|
|
"include": "#values"
|
|
}
|
|
],
|
|
"repository": {
|
|
"comments": {
|
|
"patterns": [
|
|
{
|
|
"match": "\/\/.*$",
|
|
"name": "comment.line.double-slash.tablegen"
|
|
},
|
|
{
|
|
"begin": "/\\*",
|
|
"end": "\\*/",
|
|
"captures": {
|
|
"0": {
|
|
"name": "comment.block.tablegen"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#comments"
|
|
}
|
|
],
|
|
"name": "comment.block.tablegen"
|
|
}
|
|
]
|
|
},
|
|
"preprocessor": {
|
|
"patterns": [
|
|
{
|
|
"match": "^#ifdef\\s+(\\w+)",
|
|
"name": "keyword.control.ifdef.tablegen",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.name.function.preprocessor.tablegen"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": "^#ifndef\\s+(\\w+)",
|
|
"name": "keyword.control.ifndef.tablegen",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.name.function.preprocessor.tablegen"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": "^#else",
|
|
"name": "keyword.control.else.tablegen"
|
|
},
|
|
{
|
|
"match": "#endif",
|
|
"name": "keyword.control.endif.tablegen"
|
|
},
|
|
{
|
|
"match": "#define\\s+(\\w+)",
|
|
"name": "keyword.control.ifndef.tablegen",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.name.function.preprocessor.tablegen"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"match": "^include\\s+",
|
|
"name": "keyword.control.include.tablegen"
|
|
}
|
|
]
|
|
},
|
|
"strings": {
|
|
"patterns": [
|
|
{
|
|
"name": "string.quoted.double.tablegen",
|
|
"begin": "\"",
|
|
"end": "\"",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.begin.tablegen"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"match": "\\\\['nt\"]",
|
|
"name": "constant.character.escape.tablegen"
|
|
}
|
|
],
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.end.tablegen"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "string.quoted.triple.tablegen",
|
|
"begin": "\\[{",
|
|
"end": "}]",
|
|
"beginCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.begin.tablegen"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"match": "\\\\[nt\"]",
|
|
"name": "constant.character.escape.tablegen"
|
|
}
|
|
],
|
|
"endCaptures": {
|
|
"0": {
|
|
"name": "punctuation.definition.string.end.tablegen"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"integer": {
|
|
"patterns": [
|
|
{
|
|
"match": "\\b\\d+\\b",
|
|
"name": "constant.numeric.tablegen"
|
|
},
|
|
{
|
|
"match": "\\b0[xX][a-fA-F0-9]+\\b",
|
|
"name": "constant.numeric.hex.tablegen"
|
|
},
|
|
{
|
|
"match": "\\b0b[01]+\\b",
|
|
"name": "constant.numeric.binary.tablegen"
|
|
}
|
|
]
|
|
},
|
|
"builtin_types": {
|
|
"patterns": [
|
|
{
|
|
"match": "\\b(?:bit|code|dag|int|string)\\b",
|
|
"name": "entity.name.type.tablegen"
|
|
},
|
|
{
|
|
"begin": "\\b(bits)\\<",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "entity.name.type.tablegen"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#integer"
|
|
}
|
|
],
|
|
"end": "\\>"
|
|
},
|
|
{
|
|
"begin": "\\b(list)\\<",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "entity.name.type.tablegen"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#types"
|
|
}
|
|
],
|
|
"end": "\\>"
|
|
}
|
|
]
|
|
},
|
|
"types": {
|
|
"patterns": [
|
|
{
|
|
"include": "#builtin_types"
|
|
},
|
|
{
|
|
"match": "\\b(\\w+)\\b",
|
|
"name": "entity.name.type.tablegen"
|
|
}
|
|
]
|
|
},
|
|
"bang_operators": {
|
|
"patterns": [
|
|
{
|
|
"begin": "(\\!cast|\\!getdagop|\\!isa)\\<",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "entity.name.function"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#types"
|
|
}
|
|
],
|
|
"end": "\\>"
|
|
},
|
|
{
|
|
"match": "(\\!\\w+)\\b",
|
|
"name": "entity.name.function"
|
|
}
|
|
]
|
|
},
|
|
"keywords": {
|
|
"patterns": [
|
|
{
|
|
"match": "\\b(assert|else|foreach|defset|defvar|field|if|in|let|then)\\b",
|
|
"name": "keyword.other.tablegen"
|
|
}
|
|
]
|
|
},
|
|
"record_body": {
|
|
"patterns": [
|
|
{
|
|
"begin": "\\:",
|
|
"patterns": [
|
|
{
|
|
"match": "\\b(\\w+)\\b",
|
|
"name": "entity.name.type.tablegen"
|
|
},
|
|
{
|
|
"begin": "\\<",
|
|
"patterns": [
|
|
{
|
|
"include": "#values"
|
|
}
|
|
],
|
|
"end": "\\>"
|
|
}
|
|
],
|
|
"end": "(?=\\;|\\{)"
|
|
},
|
|
{
|
|
"begin": "\\{",
|
|
"patterns": [
|
|
{
|
|
"include": "#keywords"
|
|
},
|
|
{
|
|
"include": "#builtin_types"
|
|
},
|
|
{
|
|
"match": "\\b(\\w+\\s+)?\\b(\\w+)\\b\\s+\\=",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.name.type.tablegen"
|
|
},
|
|
"2": {
|
|
"name": "variable.other.tablegen"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"include": "#values"
|
|
}
|
|
],
|
|
"end": "(?=\\})"
|
|
}
|
|
]
|
|
},
|
|
"classes": {
|
|
"begin": "\\b(multiclass|class)\\b\\s+(\\w+)\\b",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "keyword.other.class.tablegen"
|
|
},
|
|
"2": {
|
|
"name": "entity.name.type.tablegen"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"begin": "\\<",
|
|
"patterns": [
|
|
{
|
|
"include": "#builtin_types"
|
|
},
|
|
{
|
|
"match": "\\b(\\w+\\s+)?\\b(\\w+)\\b",
|
|
"captures": {
|
|
"1": {
|
|
"name": "entity.name.type.tablegen"
|
|
},
|
|
"2": {
|
|
"name": "variable.other.tablegen"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"begin": "=",
|
|
"patterns": [
|
|
{
|
|
"include": "#values"
|
|
}
|
|
],
|
|
"end": "(?=\\>|\\,)"
|
|
}
|
|
],
|
|
"end": "\\>"
|
|
},
|
|
{
|
|
"include": "#record_body"
|
|
}
|
|
],
|
|
"end": "(\\;|\\})"
|
|
},
|
|
"defs": {
|
|
"begin": "\\b(defm|def)\\b",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "keyword.other.def.tablegen"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#record_body"
|
|
},
|
|
{
|
|
"include": "#values"
|
|
}
|
|
],
|
|
"end": "(\\;|\\})"
|
|
},
|
|
"values": {
|
|
"patterns": [
|
|
{
|
|
"include": "#builtin_types"
|
|
},
|
|
{
|
|
"include": "#bang_operators"
|
|
},
|
|
{
|
|
"include": "#classes"
|
|
},
|
|
{
|
|
"include": "#defs"
|
|
},
|
|
{
|
|
"include": "#comments"
|
|
},
|
|
{
|
|
"include": "#integer"
|
|
},
|
|
{
|
|
"include": "#strings"
|
|
},
|
|
{
|
|
"match": "\\b(?:false|true)\\b",
|
|
"name": "keyword.other.tablegen"
|
|
},
|
|
{
|
|
"match": "(\\?)",
|
|
"name": "keyword.other.tablegen"
|
|
},
|
|
{
|
|
"begin": "\\{",
|
|
"patterns": [
|
|
{
|
|
"include": "#values"
|
|
}
|
|
],
|
|
"end": "\\}"
|
|
},
|
|
{
|
|
"begin": "\\[",
|
|
"patterns": [
|
|
{
|
|
"include": "#values"
|
|
}
|
|
],
|
|
"end": "(?=\\])"
|
|
},
|
|
{
|
|
"begin": "\\]\\s*\\<",
|
|
"patterns": [
|
|
{
|
|
"include": "#types"
|
|
}
|
|
],
|
|
"end": "\\>"
|
|
},
|
|
{
|
|
"begin": "\\(",
|
|
"patterns": [
|
|
{
|
|
"include": "#values"
|
|
}
|
|
],
|
|
"end": "\\)"
|
|
},
|
|
{
|
|
"include": "#keywords"
|
|
},
|
|
{
|
|
"begin": "\\b(\\w+)\\<",
|
|
"beginCaptures": {
|
|
"1": {
|
|
"name": "entity.name.type.tablegen"
|
|
}
|
|
},
|
|
"patterns": [
|
|
{
|
|
"include": "#values"
|
|
}
|
|
],
|
|
"end": "\\>"
|
|
},
|
|
{
|
|
"match": "(\\$\\w+)\\b",
|
|
"name": "variable.other.enummember.tablegen"
|
|
},
|
|
{
|
|
"match": "\\b(\\w+)\\b",
|
|
"name": "variable.other.tablegen"
|
|
},
|
|
{
|
|
"include": "#preprocessor"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"scopeName": "source.tablegen"
|
|
} |