codekingpro/portable-devtools
114k
1"""2 pygments.lexers.numbair3 ~~~~~~~~~~~~~~~~~~~~~~~4 5 Lexer for other Numba Intermediate Representation.6 7 :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.8 :license: BSD, see LICENSE for details.9"""10 11from pygments.lexer import RegexLexer, include, bygroups, words12from pygments.token import Whitespace, Name, String, Punctuation, Keyword, \13 Operator, Number14 15__all__ = ["NumbaIRLexer"]16 17class NumbaIRLexer(RegexLexer):18 """19 Lexer for Numba IR20 """21 name = 'Numba_IR'22 url = "https://numba.readthedocs.io/en/stable/developer/architecture.html#stage-2-generate-the-numba-ir"23 aliases = ['numba_ir', 'numbair']24 filenames = ['*.numba_ir']25 mimetypes = ['text/x-numba_ir', 'text/x-numbair']26 version_added = '2.19'27 28 identifier = r'\$[a-zA-Z0-9._]+'29 fun_or_var = r'([a-zA-Z_]+[a-zA-Z0-9]*)'30 31 tokens = {32 'root' : [33 (r'(label)(\ [0-9]+)(:)$',34 bygroups(Keyword, Name.Label, Punctuation)),35 36 (r'=', Operator),37 include('whitespace'),38 include('keyword'),39 40 (identifier, Name.Variable),41 (fun_or_var + r'(\()',42 bygroups(Name.Function, Punctuation)),43 (fun_or_var + r'(\=)',44 bygroups(Name.Attribute, Punctuation)),45 (fun_or_var, Name.Constant),46 (r'[0-9]+', Number),47 48 # <built-in function some>49 (r'<[^>\n]*>', String),50 51 (r'[=<>{}\[\]()*.,!\':]|x\b', Punctuation)52 ],53 54 'keyword':[55 (words((56 'del', 'jump', 'call', 'branch',57 ), suffix=' '), Keyword),58 ],59 60 'whitespace': [61 (r'(\n|\s)+', Whitespace),62 ],63 }64 