Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
rego.py58 linesDownload Raw Back to lexers
1"""2    pygments.lexers.rego3    ~~~~~~~~~~~~~~~~~~~~4 5    Lexers for the Rego policy languages.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, words12from pygments.token import Comment, Operator, Keyword, Name, String, Number, Punctuation, Whitespace13 14class RegoLexer(RegexLexer):15    """16    For Rego source.17    """18    name = 'Rego'19    url = 'https://www.openpolicyagent.org/docs/latest/policy-language/'20    filenames = ['*.rego']21    aliases = ['rego']22    mimetypes = ['text/x-rego']23    version_added = '2.19'24 25    reserved_words = (26        'as', 'contains', 'data', 'default', 'else', 'every', 'false',27        'if', 'in', 'import', 'package', 'not', 'null',28        'some', 'true', 'with'29    )30 31    builtins = (32        # https://www.openpolicyagent.org/docs/latest/philosophy/#the-opa-document-model33        'data',  # Global variable for accessing base and virtual documents34        'input', # Represents synchronously pushed base documents35    )36 37    tokens = {38        'root': [39            (r'\n', Whitespace),40            (r'\s+', Whitespace),41            (r'#.*?$', Comment.Single),42            (words(reserved_words, suffix=r'\b'), Keyword),43            (words(builtins, suffix=r'\b'), Name.Builtin),44            (r'[a-zA-Z_][a-zA-Z0-9_]*', Name),45            (r'"(\\\\|\\"|[^"])*"', String.Double),46            (r'`[^`]*`', String.Backtick),47            (r'-?\d+(\.\d+)?', Number),48            (r'(==|!=|<=|>=|:=)', Operator),  # Compound operators49            (r'[=<>+\-*/%&|]', Operator),     # Single-character operators50            (r'[\[\]{}(),.:;]', Punctuation),51        ]52    }53 54__all__ = ['RegoLexer']55 56 57 58 
codekingpro/portable-devtools · Team Ai