HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/pygments/lexers/__pycache__/tnt.cpython-310.pyc
o

;j�(�@sZdZddlZddlmZddlmZmZmZmZm	Z	m
Z
mZmZdgZ
Gdd�de�ZdS)z�
    pygments.lexers.tnt
    ~~~~~~~~~~~~~~~~~~~

    Lexer for Typographic Number Theory.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�Lexer)�Text�Comment�Operator�Keyword�Name�Number�Punctuation�Error�TNTLexerc@s�eZdZdZdZdZdgZdgZdZgZ	e
d�Ze
d�Ze
d	�Z
e
d
�Ze
d�Ze
d�Ze
d
�Ze
d�Ze�d�Ze�d�Ze�d�Zdd�Zd&dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Z d%S)'ruz
    Lexer for Typographic Number Theory, as described in the book
    Gödel, Escher, Bach, by Douglas R. Hofstadter
    zTypographic Number Theoryz,https://github.com/Kenny2github/language-tntZtntz*.tntz2.7u⊃→]&∧^|∨Vvu+.⋅*Zabcdeu'′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\]]+\]cOs"tj|g|�Ri|��g|_dS)N)r�__init__�cur)�self�args�kwargs�r�G/opt/saltstack/salt/lib/python3.10/site-packages/pygments/lexers/tnt.pyr
7s
zTNTLexer.__init__FcCs~|}z|||jvr|d7}|||jvs
Wn
ty#t|�}Ynw|r,||kr,t�||kr=|j�|t|||�f�|S)zTokenize whitespace.�)�
WHITESPACE�
IndexError�len�AssertionErrorr�appendr)r�start�text�required�endrrr�
whitespace;s���zTNTLexer.whitespacecCs^|||jvr	t�|d}|||jvr|d7}|||jvs|j�|tj|||�f�|S)zTokenize a variable.r)�	VARIABLESr�PRIMESrrrZVariable�rrrrrrr�variableIs�zTNTLexer.variablecCs>||dkr.|d}||dkr|d7}||dks|j�|tj|||�f�|�||�S||dkrD|j�|tj||f�|dS|||jvrQ|�||�S||dkr�|j�|t||f�|�|d|�}|||jvrst	�|j�|t
||f�|�|d|�}||dkr�t	�|j�|t||f�|dSt	�)zTokenize a term.�Sr�0�(�))rrr�Integer�termrr"r	�	OPERATORSrrr!rrrr(Ss0�z
TNTLexer.termcCs�|||jvr0|d}|||jvr|d7}|||jvs|j�|t|||�f�|�||�S|||jvrf|j�|tj||f�|�|d|�}||dkrSt	�|j�|t
||f�|�|d|�S||dkr�|j�|t
||f�|�|d|�}|||jvr�t	�|j�|t||f�|�|d|�}||dkr�t	�|j�|t
||f�|dS|�||�}||dkr�t	�|j�|t||f�|�|d|�}|S)zTokenize a formula.r�:�<�>�=)
�NEGATORSrrr�formula�QUANTIFIERSrZDeclarationr"rr	�LOGICr(r!rrrr/ms>�zTNTLexer.formulac	Cs�|j�||�}|dur
t�t|jdd��}|D]K}|ddkrc|j�|t|||d�f�|j�|dtj	||d|d�f�|d|�
�kr^|j�|dt||d|�
��f�|�
�Sq|j�|t|||�
��f�|�
�S)zTokenize a rule.Nrr)�RULES�matchr�sorted�regsrrrrr'r)rrrr3�groups�grouprrr�rule�s&���	z
TNTLexer.rulecCs�|}|||jvr|d7}|||jvs	|j�|t||f�|j�|dt||d|�f�|}|j�||�}|dur?t�||��dkrIt�|j�|�	�t
j|�d�f�|j�|��t||��f�|��dS)zTokenize a line referral.rNr&r)
�NUMBERSrrr	r�LINENOSr3rrrrr'r7)rrrrr3rrr�lineno�s�"zTNTLexer.linenocCsv|}z||dkr|d7}||dks	Wn
ty!t|�}Ynw||kr3|j�|t|||�f�|�||�}|S)z?Mark everything from ``start`` to the end of the line as Error.�
r)rrrrr
rr!rrr�error_till_line_end�s���zTNTLexer.error_till_line_endcCszg|_|�d|�}}||krt|�k�r�n|jS�zi|||jvr0|d7}|||jvs%||krk|j�|tj|||�f�t|j�}z|�||d�}}Wntyj|j|d�=|�||�}}YWqw|j	�
||�}|dur�|j�|t|||���f�|��}}|�||�}}Wq~||dvr�|j�|t
||f�|d7}|d7}nBt|j�}z
|�||�}}Wn2ttfy�|j|d�=|||jvr�|d7}|||jvs�|j�|t|||�f�|}Ynwt|j�}z|�||d�}}Wnt�y|j|d�=|�||�}}YWqwt|j�}z
|�||�}}Wnt�yD|j|d�=|�||�}}YWqw|�||�}}||dk�r�t|j�}z
|�||�}}Wnt�y||j|d�=|�||�}}YWqw|�||�}}Wn#t�y�z|j|d�=Wn
t�y�Ynw|�||�Ynw||k�r�t|�ks|jS|jS)zReturns a list of TNT tokens.rrTNz[]r%)rrrr9rrr'rr=�COMMENTr3rrrr/�RecursionErrorrr
r8r;r�	NameError)rrrr�origr3rrr�get_tokens_unprocessed�s�J��
�

��
�
�
�����J�JzTNTLexer.get_tokens_unprocessedN)F)!�__name__�
__module__�__qualname__�__doc__�name�url�aliases�	filenamesZ
version_addedr�setr1r)rr r.r0r9r�re�compiler2r:r>r
rr"r(r/r8r;r=rBrrrrrs8

	


"
)rFrLZpygments.lexerrZpygments.tokenrrrrrrr	r
�__all__rrrrr�<module>s
(