| { |
| "name": "MLIR", |
| "fileTypes": [ |
| "mlir" |
| ], |
| "patterns": [ |
| { |
| "include": "#comment" |
| }, |
| { |
| "include": "#string" |
| }, |
| { |
| "include": "#top_level_entity" |
| } |
| ], |
| "repository": { |
| "comment": { |
| "match": "\/\/.*$", |
| "name": "comment.line.double-slash.mlir" |
| }, |
| "number": { |
| "patterns": [ |
| { |
| "match": "(\\W)?([0-9]+\\.[0-9]*)([eE][+-]?[0-9]+)?", |
| "name": "constant.numeric.mlir" |
| }, |
| { |
| "match": "([\\W])?(0x[0-9a-zA-Z]+)", |
| "captures": { |
| "2": { |
| "name": "constant.numeric.mlir" |
| } |
| } |
| }, |
| { |
| "match": "([\\Wx])?([0-9]+)", |
| "captures": { |
| "2": { |
| "name": "constant.numeric.mlir" |
| } |
| } |
| } |
| ] |
| }, |
| "string": { |
| "begin": "\"", |
| "beginCaptures": { |
| "0": { |
| "name": "punctuation.definition.string.begin.mlir" |
| } |
| }, |
| "patterns": [ |
| { |
| "match": "\\\\[nt\"]", |
| "name": "constant.character.escape.mlir" |
| } |
| ], |
| "end": "\"", |
| "endCaptures": { |
| "0": { |
| "name": "punctuation.definition.string.end.mlir" |
| } |
| }, |
| "name": "string.quoted.double.mlir" |
| }, |
| "top_level_entity": { |
| "patterns": [ |
| { |
| "include": "#attribute_alias_def" |
| }, |
| { |
| "include": "#type_alias_def" |
| }, |
| { |
| "include": "#operation_body" |
| } |
| ] |
| }, |
| "attribute_alias_def": { |
| "match": "^\\s*(\\#\\w+)\\b\\s+\\=", |
| "captures": { |
| "1": { |
| "name": "constant.language.mlir" |
| } |
| } |
| }, |
| "type_alias_def": { |
| "match": "^\\s*(\\!\\w+)\\b\\s+\\=", |
| "captures": { |
| "1": { |
| "name": "entity.name.type.mlir" |
| } |
| } |
| }, |
| "operation": { |
| "patterns": [ |
| { |
| "match": "^\\s*(\\%[\\%\\w\\:\\,\\s]+)\\s+\\=\\s+([\\w\\.\\$\\-]+)\\b", |
| "captures": { |
| "1": { |
| "patterns": [ |
| { |
| "include": "#ssa_value" |
| } |
| ] |
| }, |
| "2": { |
| "name": "variable.other.enummember.mlir" |
| } |
| } |
| }, |
| { |
| "match": "^\\s*([\\w\\.\\$\\-]+)\\b(?=[^\\<\\:])", |
| "name": "variable.other.enummember.mlir" |
| } |
| ] |
| }, |
| "operation_body": { |
| "patterns": [ |
| { |
| "include": "#operation" |
| }, |
| { |
| "include": "#region_body_or_attr_dict" |
| }, |
| { |
| "include": "#comment" |
| }, |
| { |
| "include": "#ssa_value" |
| }, |
| { |
| "include": "#block" |
| }, |
| { |
| "include": "#attribute_value" |
| }, |
| { |
| "include": "#bare_identifier" |
| } |
| ] |
| }, |
| "region_body_or_attr_dict": { |
| "patterns": [ |
| { |
| "begin": "\\{\\s*(?=\\%|\\/|\\^)", |
| "patterns": [ |
| { |
| "include": "#operation_body" |
| } |
| ], |
| "end": "\\}" |
| }, |
| { |
| "begin": "\\{\\s*(?=[^\\}]*$)", |
| "patterns": [ |
| { |
| "include": "#operation_body" |
| } |
| ], |
| "end": "\\}" |
| }, |
| { |
| "begin": "\\{\\s*(?=\\%)", |
| "patterns": [ |
| { |
| "include": "#operation_body" |
| } |
| ], |
| "end": "\\}" |
| }, |
| { |
| "begin": "\\{\\s*(?=.*$)", |
| "patterns": [ |
| { |
| "include": "#attribute_dictionary_body" |
| } |
| ], |
| "end": "\\}" |
| } |
| ] |
| }, |
| "attribute_value": { |
| "patterns": [ |
| { |
| "include": "#string" |
| }, |
| { |
| "include": "#comment" |
| }, |
| { |
| "include": "#number" |
| }, |
| { |
| "match": "\\b(false|true|unit)\\b", |
| "name": "constant.language.mlir" |
| }, |
| { |
| "begin": "\\b(affine_map|affine_set)\\s*\\<", |
| "beginCaptures": { |
| "1": { |
| "name": "constant.language.mlir" |
| } |
| }, |
| "patterns": [ |
| { |
| "match": "\\b(ceildiv|floordiv|mod|symbol)\\b", |
| "name": "entity.name.function.mlir" |
| }, |
| { |
| "match": "\\b([\\w\\.\\$\\-]+)\\b", |
| "name": "variable.mlir" |
| }, |
| { |
| "include": "#number" |
| } |
| ], |
| "end": "\\)\\>" |
| }, |
| { |
| "begin": "\\b(dense|opaque|sparse)\\s*\\<", |
| "beginCaptures": { |
| "1": { |
| "name": "constant.language.mlir" |
| } |
| }, |
| "patterns": [ |
| { |
| "include": "#attribute_value" |
| } |
| ], |
| "end": "\\>" |
| }, |
| { |
| "begin": "\\[", |
| "patterns": [ |
| { |
| "include": "#attribute_value" |
| }, |
| { |
| "include": "#operation_body" |
| } |
| ], |
| "end": "\\]" |
| }, |
| { |
| "begin": "\\{", |
| "patterns": [ |
| { |
| "include": "#attribute_dictionary_body" |
| } |
| ], |
| "end": "\\}" |
| }, |
| { |
| "match": "(\\@[\\w+\\$\\-\\.]*)", |
| "name": "entity.name.function.mlir" |
| }, |
| { |
| "begin": "(\\#[\\w\\$\\-\\.]+)\\<", |
| "beginCaptures": { |
| "1": { |
| "name": "constant.language.mlir" |
| } |
| }, |
| "patterns": [ |
| { |
| "include": "#attribute_value" |
| }, |
| { |
| "match": "\\-\\>|\\>\\=" |
| }, |
| { |
| "include": "#bare_identifier" |
| } |
| ], |
| "end": "\\>" |
| }, |
| { |
| "match": "\\#[\\w\\$\\-\\.]+\\b", |
| "name": "constant.language.mlir" |
| }, |
| { |
| "include": "#type_value" |
| }, |
| { |
| "begin": "\\<", |
| "patterns": [ |
| { |
| "include": "#attribute_value" |
| }, |
| { |
| "include": "#bare_identifier" |
| } |
| ], |
| "end": "\\>" |
| } |
| ] |
| }, |
| "attribute_dictionary_body": { |
| "patterns": [ |
| { |
| "include": "#comment" |
| }, |
| { |
| "include": "#string" |
| }, |
| { |
| "include": "#attribute_value" |
| }, |
| { |
| "match": "(\\%)?\\b([\\w\\.\\-\\$\\:0-9]+)\\b\\s*(?=\\=|\\,|\\})", |
| "name": "variable.other.mlir" |
| } |
| ] |
| }, |
| "type_value": { |
| "patterns": [ |
| { |
| "begin": "(\\![\\w\\$\\-\\.]+)\\<", |
| "beginCaptures": { |
| "1": { |
| "name": "entity.name.type.mlir" |
| } |
| }, |
| "patterns": [ |
| { |
| "include": "#attribute_value" |
| }, |
| { |
| "match": "\\-\\>|\\>\\=", |
| "name": "punctuation.other.mlir" |
| }, |
| { |
| "include": "#bare_identifier" |
| } |
| ], |
| "end": "\\>" |
| }, |
| { |
| "match": "\\![\\w\\$\\-\\.]+\\b", |
| "name": "entity.name.type.mlir" |
| }, |
| { |
| "begin": "(complex|memref|tensor|tuple|vector)\\<", |
| "beginCaptures": { |
| "1": { |
| "name": "entity.name.type.mlir" |
| } |
| }, |
| "patterns": [ |
| { |
| "match": "[\\?x0-9\\[\\]]+", |
| "captures": { |
| "0": { |
| "patterns": [ |
| { |
| "include": "#number" |
| } |
| ] |
| } |
| } |
| }, |
| { |
| "include": "#attribute_value" |
| }, |
| { |
| "match": "\\-\\>|\\>\\=", |
| "name": "punctuation.other.mlir" |
| }, |
| { |
| "include": "#bare_identifier" |
| } |
| ], |
| "end": "\\>" |
| }, |
| { |
| "match": "bf16|f16|f32|f64|f80|f128|index|none|(u|s)?i[0-9]+", |
| "name": "entity.name.type.mlir" |
| } |
| ] |
| }, |
| "bare_identifier": { |
| "match": "\\b([\\w\\.\\$\\-]+)\\b", |
| "name": "keyword.other.mlir" |
| }, |
| "ssa_value": { |
| "match": "\\%[\\w\\.\\$\\:\\#]+", |
| "name": "variable.other.mlir" |
| }, |
| "block": { |
| "match": "\\^[\\w\\d_$\\.-]+", |
| "name": "keyword.control.mlir" |
| } |
| }, |
| "scopeName": "source.mlir" |
| } |