File: //opt/alt/python311/lib/python3.11/site-packages/pygments/lexers/__pycache__/asn1.cpython-311.pyc
�
�;f� � � � d Z ddlZddlmZmZmZmZmZmZm Z m
Z
ddlmZm
Z
mZ dgZg d�Zg d�Zdd gZg d
�Zg d�Zg d�Zg d
�Zd� Z G d� de� � ZdS )z�
pygments.lexers.asn1
~~~~~~~~~~~~~~~~~~~~
Pygments lexers for ASN.1.
:copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�Comment�Operator�Keyword�Name�String�Number�Punctuation�
Whitespace)�
RegexLexer�words�bygroups� Asn1Lexer)�ENCODEDzABSTRACT-SYNTAX�END�APPLICATION�EXPLICIT�IMPLICIT� AUTOMATIC�TAGS�BEGIN�
EXTENSIBILITY�BY�FROM� COMPONENT� UNIVERSAL�
COMPONENTS�CONSTRAINED�IMPLIED�DEFINITIONS�INCLUDES�PRIVATE�WITH�OF)�EXCEPT�UNION�INTERSECTION�EXPORTS�IMPORTS)zSEQUENCE OFzSET OFzINSTANCE OFzWITH SYNTAX)�SIZE�SEQUENCE�SET�CLASS�UNIQUE�DEFAULT�CHOICE�PATTERN�OPTIONAL�PRESENT�ABSENT�
CONTAINING�
ENUMERATED�ALL)zOBJECT IDENTIFIERz
BIT STRINGzOCTET STRINGzCHARACTER STRINGzEMBEDDED PDV)zRELATIVE-OIDzTYPE-IDENTIFIER�ObjectDescriptor� IA5String�INTEGER�ISO646String� T61String� BMPString�
NumericString�
TeletexString�GeneralizedTime�REAL�BOOLEAN�
GeneralString�
GraphicString�UniversalString�UTCTime�
VisibleString�
UTF8String�PrintableString�VideotexString�EXTERNALc �L � dd� d� | D � � � � z dz S )N�(�|c 3 �B K � | ]}|� d d� � V � �dS )� �\s+N)�replace)�.0�tokens �G/opt/alt/python311/lib/python3.11/site-packages/pygments/lexers/asn1.py� <genexpr>z!word_sequences.<locals>.<genexpr>r s0 � � � �I�I��%�-�-��V�4�4�I�I�I�I�I�I� z)\b)�join)�tokenss rT �word_sequencesrY q s- � �����I�I�&�I�I�I�I�I�I�F�R�RrV c � � e Zd ZdZej ZdZdgZdgZ dZ
dZdefde
j fd e
j d
fdej fdej fd
ej f edd�� � ej f ee� � ej f eed�� � ej fdej f eed�� � ej f ee� � ej f ee!d�� � ej f ee"d�� � ej# f ee$� � efdej fdefde%fde&dfd e'e&e&j( � � fd e'e&e&j( � � fgde
j fd e
j dfde
j dfde
j fgde&fde&dfde&fgd �Z)d!S )"r z+
Lexer for ASN.1 module definition
zASN.1�asn1z*.asn1zDhttps://www.itu.int/ITU-T/studygroups/com17/languages/X.680-0207.pdfz2.16rP z--.*$z/\*�commentz\d+\.\d*([eE][-+]?\d+)?z\d+z!&?[a-z][-a-zA-Z0-9]*[a-zA-Z0-9]\b)�TRUE�FALSE�NULLzMINUS-INFINITYz
PLUS-INFINITY�MIN�MAXz\b)�suffixzEXPORTS\s+ALL\bz!&?[A-Z][-a-zA-Z0-9]*[a-zA-Z0-9]\bz!(::=|\.\.\.|\.\.|\[\[|\]\]|\||\^)z(\.|,|\{|\}|\(|\)|\[|\])�"�stringz('[01 ]*')(B)\bz('[0-9A-F ]*')(H)\bz[^*/]+z#pushz\*/z#popz[*/]z""z[^"])�rootr\ rd N)*�__name__�
__module__�__qualname__�__doc__�re� MULTILINE�flags�name�aliases� filenames�url�
version_addedr
r �Single� Multiliner �Float�Integerr �Variabler r �ConstantrY �TWO_WORDS_TYPES�Type�SINGLE_WORD_TYPES� Namespace�SINGLE_WORD_NAMESPACE_KEYWORDSr �MULTI_WORDS_DECLARATIONS�Declaration�SINGLE_WORDS_DECLARATIONS�OPERATOR_WORDS�Word�SINGLE_WORD_KEYWORDSr r r
�AffixrX � rV rT r r u s � � � � � �� �
�L�E��D��h�G��
�I�
P�C��M�
�Z� �
�w�~�&�
�W�&� �2�
'���6�
�V�^�$�
1�4�=�A�
�U�]�fk�
l�
l�
l�nu�n~��
�^�O�
,�
,�g�l�;�
�U�$�U�
3�
3�
3�W�\�B�
��!2�3�
�U�1�%�
@�
@�
@�(�BT�U�
�^�4�
5�
5�w�7J�K�
�U�,�U�
;�
;�
;�W�=P�Q�
�U�>�%�
0�
0�
0�(�-�@�
�U�'�
(�
(�'�2�
1�4�9�=�
1�8�<�
(�+�6�
�6�8�$�
���&�&�,�!?�!?�@�
#�H�H�V�V�\�$B�$B�C�C"
�H ��)�*�
�W�&��0�
�W�&��/�
�g�'�(�
� �F�O�
�6�6�"�
�f��
�U/� /�F�F�FrV )ri rj �pygments.tokenr r r r r r r r
�pygments.lexerr r r
�__all__r� r� r| r} r rx rz rY r r� rV rT �<module>r� sc ��� �
� � � �$� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� $� 6� 6� 6� 6� 6� 6� 6� 6� 6� 6��-��� � � �2� � �� �
�"� �
� � � �� � � �"� � ��� � � �4S� S� S�=� =� =� =� =�
� =� =� =� =� =rV