diff options
author | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:10:44 -0400 |
---|---|---|
committer | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:10:44 -0400 |
commit | 6d7ba58f880be618ade07f8ea080fe8c4bf8a896 (patch) | |
tree | b1c931051ffcebd2bd9d61d98d6233ffa289bbce /venv/lib/python3.11/site-packages/pygments/lexers/yara.py | |
parent | 4f884c9abc32990b4061a1bb6997b4b37e58ea0b (diff) |
venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/pygments/lexers/yara.py')
-rw-r--r-- | venv/lib/python3.11/site-packages/pygments/lexers/yara.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/pygments/lexers/yara.py b/venv/lib/python3.11/site-packages/pygments/lexers/yara.py new file mode 100644 index 0000000..1a84e4a --- /dev/null +++ b/venv/lib/python3.11/site-packages/pygments/lexers/yara.py @@ -0,0 +1,70 @@ +""" + pygments.lexers.yara + ~~~~~~~~~~~~~~~~~~~~ + + Lexers for YARA. + + :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +from pygments.lexer import RegexLexer, words +from pygments.token import Comment, String, Name, Text, Punctuation, \ + Operator, Keyword, Whitespace, Number + +__all__ = ['YaraLexer'] + + +class YaraLexer(RegexLexer): + """ + For YARA rules + + .. versionadded:: 2.16 + """ + + name = 'YARA' + url = 'https://virustotal.github.io/yara/' + aliases = ['yara', 'yar'] + filenames = ['*.yar'] + mimetypes = ['text/x-yara'] + + tokens = { + 'root': [ + (r'\s+', Whitespace), + (r'//.*?$', Comment.Single), + (r'\#.*?$', Comment.Single), + (r'/\*', Comment.Multiline, 'comment'), + (words(('rule', 'private', 'global', 'import', 'include'), + prefix=r'\b', suffix=r'\b'), + Keyword.Declaration), + (words(('strings', 'condition', 'meta'), prefix=r'\b', suffix=r'\b'), + Keyword), + (words(('ascii', 'at', 'base64', 'base64wide', 'condition', + 'contains', 'endswith', 'entrypoint', 'filesize', 'for', + 'fullword', 'icontains', 'iendswith', 'iequals', 'in', + 'include', 'int16', 'int16be', 'int32', 'int32be', 'int8', + 'int8be', 'istartswith', 'matches', 'meta', 'nocase', + 'none', 'of', 'startswith', 'strings', 'them', 'uint16', + 'uint16be', 'uint32', 'uint32be', 'uint8', 'uint8be', + 'wide', 'xor', 'defined'), + prefix=r'\b', suffix=r'\b'), + Name.Builtin), + (r'(true|false)\b', Keyword.Constant), + (r'(and|or|not|any|all)\b', Operator.Word), + (r'(\$\w+)', Name.Variable), + (r'"[^"]*"', String.Double), + (r'\'[^\']*\'', String.Single), + (r'\{.*?\}$', Number.Hex), + (r'(/.*?/)', String.Regex), + (r'[a-z_]\w*', Name), + (r'[$(){}[\].?+*|]', Punctuation), + (r'[:=,;]', Punctuation), + (r'.', Text) + ], + 'comment': [ + (r'[^*/]+', Comment.Multiline), + (r'/\*', Comment.Multiline, '#push'), + (r'\*/', Comment.Multiline, '#pop'), + (r'[*/]', Comment.Multiline) + ] + } |