{
  "fileTypes": [
    "mlir"
  ],
  "repository": {
    "attribute": {
      "match": "\\W[\\w_][\\w\\d_.$]*\\s*=",
      "name": "meta.attribute.mlir"
    },
    "branch_target": {
      "match": "\\^bb[\\w\\d_$\\.-]+",
      "name": "entity.name.label.mlir"
    },
    "comment": {
      "match": "\/\/.*$",
      "name": "comment.line.double-slash.mlir"
    },
    "identifier": {
      "match": "[\\%#@][\\w_][\\w\\d_.$]*",
      "captures": {
        "0": {
          "name": "variable.mlir"
        }
      },
      "name": "meta.identifier.mlir"
    },
    "integer": {
      "match": "[\\Wx]([0-9]+)",
      "captures": {
        "1": {
          "name": "constant.numeric.mlir"
        }
      },
      "name": "meta.identifier.mlir"
    },
    "string": {
      "end": "\"",
      "begin": "\"",
      "beginCaptures": {
        "0": {
          "name": "punctuation.definition.string.begin.mlir"
        }
      },
      "patterns": [
        {
          "match": "\\\\[nt\"]",
          "name": "constant.character.escape.mlir"
        },
        {
          "match": "\\\\.",
          "name": "invalid.illegal.mlir"
        }
      ],
      "endCaptures": {
        "0": {
          "name": "punctuation.definition.string.end.mlir"
        }
      },
      "name": "string.quoted.double.mlir"
    },
    "types": {
      "match": "[\\Wx](index|i[1-9][0-9]*|f16|bf16|f32|f64|memref|tensor|vector)\\b",
      "captures": {
        "1": {
          "name": "storage.type.mlir"
        }
      },
      "name": "meta.types.simple.mlir"
    }
  },
  "patterns": [
    {
      "include": "#comment"
    },
    {
      "include": "#string"
    },
    {
      "match": "\\b(func)\\b\\s*(|private|public)\\s*(@[\\w_][\\w\\d_.$]*)",
      "captures": {
        "1": {
          "name": "keyword.function.mlir"
        },
        "2": {
          "name": "keyword.function.mlir"
        },
        "3": {
          "name": "entity.name.function.mlir"
        }
      },
      "name": "support.function.mlir"
    },
    {
      "match": "\\b(attributes|br|call|constant|loc|return)\\b",
      "name": "keyword.module.mlir"
    },
    {
      "include": "#identifier"
    },
    {
      "include": "#branch_target"
    },
    {
      "include": "#attribute"
    },
    {
      "include": "#types"
    },
    {
      "include": "#integer"
    }
  ],
  "name": "MLIR",
  "scopeName": "source.mlir"
}
