12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- """
- pygments.lexers.tls
- ~~~~~~~~~~~~~~~~~~~
- Lexers for the TLS presentation language.
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
- :license: BSD, see LICENSE for details.
- """
- import re
- from pygments.lexer import RegexLexer, words
- from pygments.token import Comment, Operator, Keyword, Name, String, \
- Number, Punctuation, Whitespace
- __all__ = ['TlsLexer']
- class TlsLexer(RegexLexer):
- """
- The TLS presentation language, described in RFC 8446.
- .. versionadded:: 2.16
- """
- name = 'TLS Presentation Language'
- url = 'https://www.rfc-editor.org/rfc/rfc8446#section-3'
- filenames = []
- aliases = ['tls']
- mimetypes = []
- flags = re.MULTILINE | re.DOTALL
- tokens = {
- 'root': [
- (r'\s+', Whitespace),
- # comments
- (r'/[*].*?[*]/', Comment.Multiline),
- # Keywords
- (words(('struct', 'enum', 'select', 'case'), suffix=r'\b'),
- Keyword),
- (words(('uint8', 'uint16', 'uint24', 'uint32', 'uint64', 'opaque'),
- suffix=r'\b'), Keyword.Type),
- # numeric literals
- (r'0x[0-9a-fA-F]+', Number.Hex),
- (r'[0-9]+', Number.Integer),
- # string literal
- (r'"(\\.|[^"\\])*"', String),
- # tokens
- (r'[.]{2}', Operator),
- (r'[+\-*/&^]', Operator),
- (r'[|<>=!()\[\]{}.,;:\?]', Punctuation),
- # identifiers
- (r'[^\W\d]\w*', Name.Other),
- ]
- }
|