1*c7d23708SOleksandr "Alex" Zinenko# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 2*c7d23708SOleksandr "Alex" Zinenko# See https://llvm.org/LICENSE.txt for license information. 3*c7d23708SOleksandr "Alex" Zinenko# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 4*c7d23708SOleksandr "Alex" Zinenko 5*c7d23708SOleksandr "Alex" Zinenkofrom pygments.lexer import RegexLexer 6*c7d23708SOleksandr "Alex" Zinenkofrom pygments.token import * 7*c7d23708SOleksandr "Alex" Zinenko 8*c7d23708SOleksandr "Alex" Zinenko 9*c7d23708SOleksandr "Alex" Zinenkoclass MlirLexer(RegexLexer): 10*c7d23708SOleksandr "Alex" Zinenko name = "MLIR" 11*c7d23708SOleksandr "Alex" Zinenko aliases = ["mlir"] 12*c7d23708SOleksandr "Alex" Zinenko filenames = ["*.mlir"] 13*c7d23708SOleksandr "Alex" Zinenko 14*c7d23708SOleksandr "Alex" Zinenko tokens = { 15*c7d23708SOleksandr "Alex" Zinenko "root": [ 16*c7d23708SOleksandr "Alex" Zinenko (r"%[a-zA-Z0-9_]+", Name.Variable), 17*c7d23708SOleksandr "Alex" Zinenko (r"@[a-zA-Z_][a-zA-Z0-9_]+", Name.Function), 18*c7d23708SOleksandr "Alex" Zinenko (r"\^[a-zA-Z0-9_]+", Name.Label), 19*c7d23708SOleksandr "Alex" Zinenko (r"#[a-zA-Z0-9_]+", Name.Constant), 20*c7d23708SOleksandr "Alex" Zinenko (r"![a-zA-Z0-9_]+", Keyword.Type), 21*c7d23708SOleksandr "Alex" Zinenko (r"[a-zA-Z_][a-zA-Z0-9_]*\.", Name.Entity), 22*c7d23708SOleksandr "Alex" Zinenko (r"memref[^.]", Keyword.Type), 23*c7d23708SOleksandr "Alex" Zinenko (r"index", Keyword.Type), 24*c7d23708SOleksandr "Alex" Zinenko (r"i[0-9]+", Keyword.Type), 25*c7d23708SOleksandr "Alex" Zinenko (r"f[0-9]+", Keyword.Type), 26*c7d23708SOleksandr "Alex" Zinenko (r"[0-9]+", Number.Integer), 27*c7d23708SOleksandr "Alex" Zinenko (r"[0-9]*\.[0-9]*", Number.Float), 28*c7d23708SOleksandr "Alex" Zinenko (r'"[^"]*"', String.Double), 29*c7d23708SOleksandr "Alex" Zinenko (r"affine_map", Keyword.Reserved), 30*c7d23708SOleksandr "Alex" Zinenko # TODO: this should be within affine maps only 31*c7d23708SOleksandr "Alex" Zinenko (r"\+-\*\/", Operator), 32*c7d23708SOleksandr "Alex" Zinenko (r"floordiv", Operator.Word), 33*c7d23708SOleksandr "Alex" Zinenko (r"ceildiv", Operator.Word), 34*c7d23708SOleksandr "Alex" Zinenko (r"mod", Operator.Word), 35*c7d23708SOleksandr "Alex" Zinenko (r"()\[\]<>,{}", Punctuation), 36*c7d23708SOleksandr "Alex" Zinenko (r"\/\/.*\n", Comment.Single), 37*c7d23708SOleksandr "Alex" Zinenko ] 38*c7d23708SOleksandr "Alex" Zinenko } 39