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/verifpal.py | |
parent | 38f2c5852db84c7b4d83adfcb009eb61541d1ccd (diff) | |
download | ydb-e0e3e1717e3d33762ce61950504f9637a6e669ed.tar.gz |
add ydb deps
Diffstat (limited to 'contrib/python/Pygments/py3/pygments/lexers/verifpal.py')
-rw-r--r-- | contrib/python/Pygments/py3/pygments/lexers/verifpal.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/contrib/python/Pygments/py3/pygments/lexers/verifpal.py b/contrib/python/Pygments/py3/pygments/lexers/verifpal.py new file mode 100644 index 0000000000..6953dd7b70 --- /dev/null +++ b/contrib/python/Pygments/py3/pygments/lexers/verifpal.py @@ -0,0 +1,66 @@ +""" + pygments.lexers.verifpal + ~~~~~~~~~~~~~~~~~~~~~~~~ + + Lexers for Verifpal languages. + + :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. + :license: BSD, see LICENSE for details. +""" + +from pygments.lexer import RegexLexer, words, bygroups, default +from pygments.token import Comment, Keyword, Name, String, Punctuation, \ + Whitespace + +__all__ = ['VerifpalLexer'] + + +class VerifpalLexer(RegexLexer): + """ + For Verifpal code. + + .. versionadded:: 2.16 + """ + + name = 'Verifpal' + aliases = ['verifpal'] + filenames = ['*.vp'] + mimetypes = ['text/x-verifpal'] + url = 'https://verifpal.com' + + tokens = { + 'root': [ + (r'//.*$', Comment.Single), + (r'(principal)( +)(\w+)( *)(\[)(.*)$', bygroups(Name.Builtin, Whitespace, String, Whitespace, Punctuation, Whitespace)), + (r'(attacker)( *)(\[)( *)(passive|active)( *)(\])( *)$', bygroups(Name.Builtin, Whitespace, Punctuation, Whitespace, String, Whitespace, Punctuation, Whitespace)), + (r'(knows)( +)(private|public)( +)', bygroups(Name.Builtin, Whitespace, Keyword.Constant, Whitespace), 'shared'), + (r'(queries)( +)(\[)', bygroups(Name.Builtin, Whitespace, Punctuation), 'queries'), + (r'(\w+)( +)(->|→)( *)(\w+)( *)(\:)', bygroups(String, Whitespace, Punctuation, Whitespace, String, Whitespace, Punctuation), 'shared'), + (words(('generates', 'leaks'), suffix=r'\b'), Name.Builtin, 'shared'), + (words(( 'phase', 'precondition',), suffix=r'\b'), Name.Builtin), + (r'[\[\(\)\]\?:=→^,]', Punctuation), + (r'->', Punctuation), + (words(('password',), suffix=r'\b'), Keyword.Constant), + (words(('AEAD_DEC', 'AEAD_ENC', 'ASSERT', 'BLIND', 'CONCAT', + 'DEC', 'ENC', 'G', 'HASH', 'HKDF', 'MAC', 'PKE_DEC', + 'PKE_ENC', 'PW_HASH', 'RINGSIGN', 'RINGSIGNVERIF', + 'SHAMIR_JOIN', 'SHAMIR_SPLIT', 'SIGN', 'SIGNVERIF', + 'SPLIT', 'UNBLIND', '_', 'nil'), suffix=r'\b'), + Name.Function), + (r'\s+', Whitespace), + (r'\w+', Name.Variable), + ], + 'shared': [ + (r'[\^\[\],]', Punctuation), + (r' +', Whitespace), + (r'\w+', Name.Variable), + default('#pop') + ], + 'queries': [ + (r'\s+', Name.Variable), + (words(('confidentiality?', 'authentication?', 'freshness?', + 'unlinkability?', 'equivalence?'), suffix='( )'), + bygroups(Keyword.Pseudo, Whitespace), 'shared'), + default('#pop') + ] + } |