diff options
author | nkozlovskiy <nmk@ydb.tech> | 2023-09-29 12:24:06 +0300 |
---|---|---|
committer | nkozlovskiy <nmk@ydb.tech> | 2023-09-29 12:41:34 +0300 |
commit | e0e3e1717e3d33762ce61950504f9637a6e669ed (patch) | |
tree | bca3ff6939b10ed60c3d5c12439963a1146b9711 /contrib/python/Pygments/py3/pygments/lexers/yara.py | |
parent | 38f2c5852db84c7b4d83adfcb009eb61541d1ccd (diff) | |
download | ydb-e0e3e1717e3d33762ce61950504f9637a6e669ed.tar.gz |
add ydb deps
Diffstat (limited to 'contrib/python/Pygments/py3/pygments/lexers/yara.py')
-rw-r--r-- | contrib/python/Pygments/py3/pygments/lexers/yara.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/contrib/python/Pygments/py3/pygments/lexers/yara.py b/contrib/python/Pygments/py3/pygments/lexers/yara.py new file mode 100644 index 0000000000..1a84e4a785 --- /dev/null +++ b/contrib/python/Pygments/py3/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) + ] + } |