diff options
Diffstat (limited to 'mlir/utils/pygments/mlir_lexer.py')
-rw-r--r-- | mlir/utils/pygments/mlir_lexer.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/mlir/utils/pygments/mlir_lexer.py b/mlir/utils/pygments/mlir_lexer.py new file mode 100644 index 0000000..179a058 --- /dev/null +++ b/mlir/utils/pygments/mlir_lexer.py @@ -0,0 +1,38 @@ +# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +# See https://llvm.org/LICENSE.txt for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +from pygments.lexer import RegexLexer +from pygments.token import * + + +class MlirLexer(RegexLexer): + name = "MLIR" + aliases = ["mlir"] + filenames = ["*.mlir"] + + tokens = { + "root": [ + (r"%[a-zA-Z0-9_]+", Name.Variable), + (r"@[a-zA-Z_][a-zA-Z0-9_]+", Name.Function), + (r"\^[a-zA-Z0-9_]+", Name.Label), + (r"#[a-zA-Z0-9_]+", Name.Constant), + (r"![a-zA-Z0-9_]+", Keyword.Type), + (r"[a-zA-Z_][a-zA-Z0-9_]*\.", Name.Entity), + (r"memref[^.]", Keyword.Type), + (r"index", Keyword.Type), + (r"i[0-9]+", Keyword.Type), + (r"f[0-9]+", Keyword.Type), + (r"[0-9]+", Number.Integer), + (r"[0-9]*\.[0-9]*", Number.Float), + (r'"[^"]*"', String.Double), + (r"affine_map", Keyword.Reserved), + # TODO: this should be within affine maps only + (r"\+-\*\/", Operator), + (r"floordiv", Operator.Word), + (r"ceildiv", Operator.Word), + (r"mod", Operator.Word), + (r"()\[\]<>,{}", Punctuation), + (r"\/\/.*\n", Comment.Single), + ] + } |