""" pygments.lexers.numbair ~~~~~~~~~~~~~~~~~~~~~~~ Lexer for other Numba Intermediate Representation. :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. """ from pygments.lexer import RegexLexer, include, bygroups, words from pygments.token import Whitespace, Name, String, Punctuation, Keyword, \ Operator, Number __all__ = ["NumbaIRLexer"] class NumbaIRLexer(RegexLexer): """ Lexer for Numba IR """ name = 'Numba_IR' url = "https://numba.readthedocs.io/en/stable/developer/architecture.html#stage-2-generate-the-numba-ir" aliases = ['numba_ir', 'numbair'] filenames = ['*.numba_ir'] mimetypes = ['text/x-numba_ir', 'text/x-numbair'] version_added = '2.19' identifier = r'\$[a-zA-Z0-9._]+' fun_or_var = r'([a-zA-Z_]+[a-zA-Z0-9]*)' tokens = { 'root' : [ (r'(label)(\ [0-9]+)(:)$', bygroups(Keyword, Name.Label, Punctuation)), (r'=', Operator), include('whitespace'), include('keyword'), (identifier, Name.Variable), (fun_or_var + r'(\()', bygroups(Name.Function, Punctuation)), (fun_or_var + r'(\=)', bygroups(Name.Attribute, Punctuation)), (fun_or_var, Name.Constant), (r'[0-9]+', Number), # (r'<[^>\n]*>', String), (r'[=<>{}\[\]()*.,!\':]|x\b', Punctuation) ], 'keyword':[ (words(( 'del', 'jump', 'call', 'branch', ), suffix=' '), Keyword), ], 'whitespace': [ (r'(\n|\s)+', Whitespace), ], }