HOME


Mini Shell 1.0
DIR: /lib/python3/dist-packages/pygments/lexers/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/pygments/lexers/__pycache__/tnt.cpython-312.pyc
�

|�e�(��`�dZddlZddlmZddlmZmZmZmZm	Z	m
Z
mZmZdgZ
Gd�de�Zy)z�
    pygments.lexers.tnt
    ~~~~~~~~~~~~~~~~~~~

    Lexer for Typographic Number Theory.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�Lexer)�Text�Comment�Operator�Keyword�Name�Number�Punctuation�Error�TNTLexerc�L�eZdZdZdZdZdgZdgZgZe	d�Z
e	d�Ze	d�Ze	d	�Z
e	d
�Ze	d�Ze	d�Ze	d
�Zej&d�Zej&d�Zej&d�Zd�Zdd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)ru�
    Lexer for Typographic Number Theory, as described in the book
    Gödel, Escher, Bach, by Douglas R. Hofstadter

    .. versionadded:: 2.7
    zTypographic Number Theoryz,https://github.com/Kenny2github/language-tnt�tntz*.tntu⊃→]&∧^|∨Vvu+.⋅*�abcdeu'′z~!uAE∀∃�
0123456789z	 
ax(?xi)
        joining | separation | double-tilde | fantasy\ rule
        | carry[- ]over(?:\ of)?(?:\ line)?\ ([0-9]+) | detachment
        | contrapositive | De\ Morgan | switcheroo
        | specification | generalization | interchange
        | existence | symmetry | transitivity
        | add\ S | drop\ S | induction
        | axiom\ ([1-5]) | premise | push | pop
    z((?:[0-9]+)(?:(?:, ?|,? and )(?:[0-9]+))*z\[[^\n\]]+\]c�D�tj|g|��i|��g|_y)N)r�__init__�cur)�self�args�kwargss   �5/usr/lib/python3/dist-packages/pygments/lexers/tnt.pyrzTNTLexer.__init__8s��
���t�-�d�-�f�-����c��|}	|||jvr|dz
}|||jvr�|r||k(rt�||k7r%|jj|t|||f�|S#t$rt|�}Y�OwxYw)zTokenize whitespace.�)�
WHITESPACE�
IndexError�len�AssertionErrorr�appendr)r�start�text�required�ends     r�
whitespacezTNTLexer.whitespace<s�����	��s�)�t���.��q����s�)�t���.���u�� � ��%�<��H�H�O�O�U�D�$�u�S�/�:�;��
��
�	��d�)�C�	�s�'A%�%A<�;A<c���|||jvrt�|dz}|||jvr|dz
}|||jvr�|jj	|t
j|||f�|S)zTokenize a variable.r)�	VARIABLESr�PRIMESrrr�Variable�rr r!r#s    r�variablezTNTLexer.variableJsr����;�d�n�n�,� � ��A�g���3�i�4�;�;�&��1�H�C��3�i�4�;�;�&��������
�
�t�E�#��?�@��
rc�*�||dk(r\|dz}||dk(r|dz
}||dk(r�|jj|tj|||f�|j	||�S||dk(r4|jj|tj||f�|dzS|||j
vr|j
||�S||dk(r�|jj|t||f�|j	|dz|�}|||jvrt�|jj|t||f�|j	|dz|�}||dk7rt�|jj|t||f�|dzSt�)zTokenize a term.�Sr�0�(�))rrr	�Integer�termr&r*r
�	OPERATORSrrr)s    rr1z
TNTLexer.termTs}����;�#����'�C��s�)�s�"��q����s�)�s�"��H�H�O�O�U�F�N�N�D��s�O�D�E��9�9�S�$�'�'���;�#���H�H�O�O�U�F�N�N�D��K�@�A���7�N���;�$�.�.�(��=�=���-�-���;�#���H�H�O�O�U�K��e��=�>��I�I�e�A�g�t�,�E��E�{�$�.�.�0�$�$��H�H�O�O�U�H�d�5�k�:�;��I�I�e�A�g�t�,�E��E�{�c�!�$�$��H�H�O�O�U�K��e��=�>���7�N��rc�t�|||jvrd|dz}|||jvr|dz
}|||jvr�|jj|t|||f�|j	||�S|||j
vr�|jj|tj||f�|j|dz|�}||dk7rt�|jj|t||f�|j	|dz|�S||dk(r�|jj|t||f�|j	|dz|�}|||jvrt�|jj|t||f�|j	|dz|�}||dk7rt�|jj|t||f�|dzS|j||�}||dk7rt�|jj|t||f�|j|dz|�}|S)zTokenize a formula.r�:�<�>�=)
�NEGATORSrrr�formula�QUANTIFIERSr�Declarationr*rr
�LOGICr1r)s    rr9zTNTLexer.formulans	����;�$�-�-�'���'�C��s�)�t�}�}�,��q����s�)�t�}�}�,��H�H�O�O�U�H�d�5��o�>�?��<�<��T�*�*���;�$�*�*�*��H�H�O�O�U�G�$7�$7��e��E�F��M�M�%��'�4�0�E��E�{�c�!�$�$��H�H�O�O�U�K��e��=�>��<�<��a���.�.���;�#���H�H�O�O�U�K��e��=�>��L�L��q��$�/�E��E�{�$�*�*�,�$�$��H�H�O�O�U�H�d�5�k�:�;��L�L��q��$�/�E��E�{�c�!�$�$��H�H�O�O�U�K��e��=�>���7�N��	�	�%��&����;�#�� � ��������$�u�+�6�7��	�	�%��'�4�(���rc	��|jj||�}|�t�t|jdd�}|D]�}|ddk\s�|j
j
|t|||df�|j
j
|dtj||d|df�|d|j�k7r9|j
j
|dt||d|j�f�|j�S|j
j
|t|||j�f�|j�S)zTokenize a rule.Nrr)�RULES�matchr�sorted�regsrrrr	r0r#)rr r!r?�groups�groups      r�rulez
TNTLexer.rule�s0���
�
� � ��u�-���=� � ���
�
�1�2��'���
	G�E��Q�x�1�}���������e�E�!�H�1E� F�G�������q��6�>�>�!%�e�A�h�u�Q�x�!8�!:�;���8�u�y�y�{�*��H�H�O�O�U�1�X�w�%)�%��(�5�9�9�;�%?�%A�B���y�y�{��
	G�
�H�H�O�O�U�G�T�%��	�	��-D�E�F��y�y�{�rc��|}|||jvr|dz
}|||jvr�|jj|t||f�|jj|dzt||dz|f�|}|j
j
||�}|�t�||j�dk7rt�|jj|j�tj|jd�f�|jj|j�t||j�f�|j�dzS)zTokenize a line referral.rr/r)
�NUMBERSrrr
r�LINENOSr?rr#r r	r0rC)rr r!r#r?s     r�linenozTNTLexer.lineno�s�����3�i�t�|�|�+��1�H�C��3�i�t�|�|�+��������T�%�[�9�:�������q��$��U�1�W�S�(9�:�;������"�"�4��/���=� � ���	�	����#� � ����������������A��G�H����������k�4��	�	��3D�E�F��y�y�{�Q��rc���|}	||dk7r|dz
}||dk7r�||k7r%|jj|t|||f�|j||�}|S#t$rt|�}Y�TwxYw)z?Mark everything from ``start`` to the end of the line as Error.�
r)rrrrrr$r)s    r�error_till_line_endzTNTLexer.error_till_line_end�s�����	��s�)�t�#��q����s�)�t�#��%�<��H�H�O�O�U�E�4��c�?�;�<��o�o�c�4�(���
���	��d�)�C�	�s�A�A/�.A/c��g|_|jd|�x}}||cxkrt|�k�rCn
|jS	|||jvr|dz
}|||jvr�||k7rZ|jj	|t
j|||f�t|j�}	|j||d�x}}|jj||�}|�[|jj	|t|||j�f�|j�x}}|j||�x}}��$~||dvr0|jj	|t||f�|dz
}|dz
}n*t|j�}	|j||�x}}t|j�}	|j||d�x}}t|j�}	|j%||�x}}|j||�x}}||dk(r>t|j�}	|j'||�x}}|j||�x}}||cxkrt|�kr��(|jS|jS#t$r'|j|d�=|j||�x}}Y���wxYw#ttf$rb|j|d�=|||j vr|dz
}|||j vr�|jj	|t"|||f�|}Y���wxYw#t$r'|j|d�=|j||�x}}Y��:wxYw#t$r'|j|d�=|j||�x}}Y��mwxYw#t$r'|j|d�=|j||�x}}Y���wxYw#t($r6	|jd�=n#t*$rYnwxYw|j||�Y���wxYw)zReturns a list of TNT tokens.rrTNz[]r.)rr$rrFrr	r0rrK�COMMENTr?rr#rr9�RecursionErrorrrrDrHr�	NameError)rr!r r#�origr?s      r�get_tokens_unprocessedzTNTLexer.get_tokens_unprocessed�s������o�o�a��.�.����s�&�S��Y�&�T�x�x��SH
6��3�i�4�<�<�/��1�H�C��3�i�4�<�<�/��%�<��H�H�O�O�U�F�N�N�D��s�O�$L�M��t�x�x�=�D�!�&*�o�o�c�4��&F�F������*�*�4��7���$��H�H�O�O�U�G�T�%��	�	��5L�$M�N�"'�)�)�+�-�E�C�"&�":�":�5�$�"G�G�E�C�����;�$�&��H�H�O�O�U�G�T�%�[�$A�B��Q�J�E��1�H�C��t�x�x�=�D�$�&*�l�l�5�$�&?�?����4�8�8�}���"&�/�/�#�t�T�"B�B�E�C��4�8�8�}���"&�)�)�E�4�"8�8�E�C�#�o�o�c�4�8�8�����;�#�%��t�x�x�=�D�!�&*�k�k�%��&>�>���
#'�/�/�%��">�>�E�C�G�s�&�S��Y�&�T�x�x��U'�T�x�x���*�!� �H�H�T�U�O�&*�&>�&>�s�D�&I�I��� �!��.+�N�;�$� �H�H�T�U�O�"�3�i�t���>��1�H�C�#�3�i�t���>��������t�E�#��(G�H� #��$��&��������"&�":�":�5�$�"G�G�E�C����&��������"&�":�":�5�$�"G�G�E�C����*�!� �H�H�T�U�O�&*�&>�&>�u�d�&K�K��� �!��
�
6��������� ������(�(���5�
6�s�'O�(A	O�2J�A7O�A
O�J3�"O�8L'�
O�#M�71O�)N
�=O�,J0�,O�/J0�0O�3AL$�9'L$� O�#L$�$O�',M�O�M�O�,N
�O�	N
�
O�
,N=�9O�<N=�=O�	O?�
O�O?�	O&�#O?�%O&�&O?�>O?N)F) �__name__�
__module__�__qualname__�__doc__�name�url�aliases�	filenamesr�setr<r2r&r'r8r:rFr�re�compiler>rGrMrr$r*r1r9rDrHrKrQ�rrrrs����'�D�
8�C��g�G��	�I�
�C��$�%�E��H�
�I��G��I�
��[�F��4�y�H��j�/�K��,��G��Y��J��B�J�J��
	�E��b�j�j�D�E�G��b�j�j��)�G�����4 �D�&�"�Nr)rUr[�pygments.lexerr�pygments.tokenrrrrrr	r
r�__all__rr]rr�<module>ras8���
� �����,��{�u�{r