summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/pygments/lexers/yara.py
diff options
context:
space:
mode:
authorcyfraeviolae <cyfraeviolae>2024-04-03 03:10:44 -0400
committercyfraeviolae <cyfraeviolae>2024-04-03 03:10:44 -0400
commit6d7ba58f880be618ade07f8ea080fe8c4bf8a896 (patch)
treeb1c931051ffcebd2bd9d61d98d6233ffa289bbce /venv/lib/python3.11/site-packages/pygments/lexers/yara.py
parent4f884c9abc32990b4061a1bb6997b4b37e58ea0b (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.py70
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)
+ ]
+ }