
    5h(                     `    S r SSKrSSKJr  SSKJrJrJrJrJ	r	J
r
JrJr  S/r " S S\5      rg)z
pygments.lexers.tnt
~~~~~~~~~~~~~~~~~~~

Lexer for Typographic Number Theory.

:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
    N)Lexer)TextCommentOperatorKeywordNameNumberPunctuationErrorTNTLexerc                   Z   \ rS rSrSrSrSrS/rS/rSr	/ r
\" S5      r\" S	5      r\" S
5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\R*                  " S5      r\R*                  " S5      r\R*                  " S5      rS rSS jrS rS rS rS rS rS r S r!Sr"g)r      un   
Lexer for Typographic Number Theory, as described in the book
Gödel, Escher, Bach, by Douglas R. Hofstadter
zTypographic Number Theoryz,https://github.com/Kenny2github/language-tnttntz*.tntz2.7u   ⊃→]&∧^|∨Vvu   +.⋅*abcdeu   '′z~!u   AE∀∃
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                 F    [         R                  " U /UQ70 UD6  / U l        g )N)r   __init__cur)selfargskwargss      ^/var/www/html/cementerio_25MayoBackend/env/lib/python3.13/site-packages/pygments/lexers/tnt.pyr   TNTLexer.__init__7   s    t-d-f-    c                    Un X$   U R                   ;   a  US-  nX$   U R                   ;   a  M  U(       a  XA:X  a  [        eXA:w  a$  U R                  R                  U[        X!U 45        U$ ! [         a    [        U5      n NTf = f)zTokenize whitespace.   )
WHITESPACE
IndexErrorlenAssertionErrorr   appendr   )r   starttextrequiredends        r   
whitespaceTNTLexer.whitespace;   s    	)t.q )t.   <HHOOUD$S/:;
  	d)C	s   )A, ,BBc                     X!   U R                   ;  a  [        eUS-   nX#   U R                  ;   a  US-  nX#   U R                  ;   a  M  U R                  R	                  U[
        R                  X!U 45        U$ )zTokenize a variable.r   )	VARIABLESr    PRIMESr   r!   r   Variabler   r"   r#   r%   s       r   variableTNTLexer.variableI   sj    ;dnn,  Agi4;;&1HC i4;;&t#?@
r   c                 "   X!   S:X  a[  US-   nX#   S:X  a  US-  nX#   S:X  a  M  U R                   R                  U[        R                  X!U 45        U R	                  X25      $ X!   S:X  a3  U R                   R                  U[        R                  X!   45        US-   $ X!   U R
                  ;   a  U R                  X5      $ X!   S:X  a  U R                   R                  U[        X!   45        U R	                  US-   U5      nX!   U R                  ;  a  [        eU R                   R                  U[        X!   45        U R	                  US-   U5      nX!   S:w  a  [        eU R                   R                  U[        X!   45        US-   $ [        e)zTokenize a term.Sr   0())r   r!   r	   Integertermr)   r-   r
   	OPERATORSr    r   r,   s       r   r5   TNTLexer.termS   s_   ;#'C)s"q )s"HHOOUFNNDsODE99S'';#HHOOUFNNDK@A7N;$..(==--;#HHOOUK=>IIeAgt,E{$..0$$HHOOUHdk:;IIeAgt,E{c!$$HHOOUK=>7Nr   c                 n   X!   U R                   ;   ae  US-   nX#   U R                   ;   a  US-  nX#   U R                   ;   a  M  U R                  R                  U[        X!U 45        U R	                  X25      $ X!   U R
                  ;   a  U R                  R                  U[        R                  X!   45        U R                  US-   U5      nX!   S:w  a  [        eU R                  R                  U[        X!   45        U R	                  US-   U5      $ X!   S:X  a  U R                  R                  U[        X!   45        U R	                  US-   U5      nX!   U R                  ;  a  [        eU R                  R                  U[        X!   45        U R	                  US-   U5      nX!   S:w  a  [        eU R                  R                  U[        X!   45        US-   $ U R                  X5      nX!   S:w  a  [        eU R                  R                  U[        X!   45        U R                  US-   U5      nU$ )zTokenize a formula.r   :<>=)NEGATORSr   r!   r   formulaQUANTIFIERSr   Declarationr-   r    r
   LOGICr5   r,   s       r   r>   TNTLexer.formulam   s   ;$--''C)t}},q )t}},HHOOUHdo>?<<**;$***HHOOUG$7$7EFMM%'40E{c!$$HHOOUK=><<a..;#HHOOUK=>LLq$/E{$**,$$HHOOUHdk:;LLq$/E{c!$$HHOOUK=>7N		%&;#  $+67		%'4(r   c           	         U R                   R                  X!5      nUc  [        e[        UR                  SS 5      nU H  nUS   S:  d  M  U R
                  R                  U[        X!US    45        U R
                  R                  US   [        R                  X%S   US    45        US   UR                  5       :w  a8  U R
                  R                  US   [        X%S   UR                  5        45          UR                  5       $    U R
                  R                  U[        X!UR                  5        45        UR                  5       $ )zTokenize a rule.Nr   r   )RULESmatchr    sortedregsr   r!   r   r	   r4   r%   )r   r"   r#   rE   groupsgroups         r   ruleTNTLexer.rule   s   

  -=  

12'EQx1}E!H1E FGq6>>!%AhuQx!8!: ;8uyy{*HHOOU1Xw%)(599;%?%A B yy{  HHOOUGT		-DEFyy{r   c                    UnX#   U R                   ;  a  US-  nX#   U R                   ;  a  M  U R                  R                  U[        X!   45        U R                  R                  US-   [        X!S-   U 45        UnU R
                  R                  X!5      nUc  [        eX$R                  5          S:w  a  [        eU R                  R                  UR                  5       [        R                  UR                  S5      45        U R                  R                  UR                  5       [        X$R                  5          45        UR                  5       S-   $ )zTokenize a line referral.r   r3   r   )NUMBERSr   r!   r
   r   LINENOSrE   r    r%   r"   r	   r4   rI   )r   r"   r#   r%   rE   s        r   linenoTNTLexer.lineno   s   it||+1HC it||+T[9:q$1WS(9:;""4/=  		#  AGHk4		3DEFyy{Qr   c                     Un X#   S:w  a  US-  nX#   S:w  a  M  X1:w  a$  U R                  R                  U[        X!U 45        U R                  X25      nU$ ! [          a    [        U5      n NSf = f)z?Mark everything from ``start`` to the end of the line as Error.
r   )r   r   r   r!   r   r&   r,   s       r   error_till_line_endTNTLexer.error_till_line_end   sz    	)t#q )t# <HHOOUE4c?;<ooc(
  	d)C	s   A A/.A/c                    / U l         U R                  SU5      =p#X#s=::  a  [        U5      :  Ga7  O  U R                   $  X   U R                  ;   a  US-  nX   U R                  ;   a  M  X2:w  aW  U R                   R	                  U[
        R                  XU 45        [        U R                   5      n U R                  X1S5      =p#U R                  R                  X5      nUbX  U R                   R	                  U[        XUR                  5        45        UR                  5       =p#U R                  X!5      =p#GM"  AX   S;   a/  U R                   R	                  U[        X   45        US-  nUS-  nO([        U R                   5      n U R                  X!5      =p#[        U R                   5      n U R                  X1S5      =p#[        U R                   5      n U R%                  X!5      =p#U R                  X15      =p#X   S:X  a:  [        U R                   5      n U R'                  X!5      =p#U R                  X!5      =p#X#s=::  a  [        U5      :  a  GM   U R                   $   U R                   $ ! [         a&    U R                   US2	 U R                  X15      =p# GM  f = f! [        [        4 ad    U R                   US2	 X   U R                   ;  a  US-  nX   U R                   ;  a  M  U R                   R	                  U["        XU 45        Un GN}f = f! [         a&    U R                   US2	 U R                  X!5      =p# GM2  f = f! [         a&    U R                   US2	 U R                  X!5      =p# GMe  f = f! [         a&    U R                   US2	 U R                  X!5      =p# GM  f = f! [(         a6     U R                   WS2	 O! [*         a     Of = fU R                  X!5         GNf = f)zReturns a list of TNT tokens.r   r   TNz[]r2   )r   r&   r   rM   r!   r	   r4   r    rS   COMMENTrE   r   r%   r   r>   RecursionErrorr   r   rJ   rO   r   	NameError)r   r#   r"   r%   origrE   s         r   get_tokens_unprocessedTNTLexer.get_tokens_unprocessed   s   ooa..&SY&T xxSH6i4<</1HC i4<</<HHOOUFNNDsO$LMtxx=D!&*ooc&FF **47$HHOOUGT		5L$MN"'))+-E"&":":5"GGE;$&HHOOUGT[$ABQJE1HC txx=D$&*ll5&?? 488}"&//#T"BBE 488}"&))E"88E #ooc88;#%txx=D!&*kk%&>>
 #'//%">>EG &SY&T xxU 'T xx * ! HHTUO&*&>&>s&II !. +N; $ HHTUO"it>1HC #it>t#(GH #$ & "&":":5"GGE & "&":":5"GGE * ! HHTUO&*&>&>u&KK !
  6  ((56s    )N7 +AN7 4I4 A3N7 =AN7 J' N7 3L N7 M ./N7 N 0N7 4+J$N7 #J$$N7 'AL1&LN7 LN7 +M	N7 MN7 +N<N7  NN7 +N4/N7 3N44N7 7
O7OO7
OO7OO76O7)r   N)F)#__name__
__module____qualname____firstlineno____doc__nameurlaliases	filenamesversion_addedr   setrA   r6   r)   r*   r=   r?   rM   r   recompilerD   rN   rV   r   r&   r-   r5   r>   rJ   rO   rS   rZ   __static_attributes__ r   r   r   r      s    
 'D
8CgG	IM
C$%EHIGI[F4yHj/K,GYJJJ  	E jjDEGjj)G4 D&"Nr   )r`   rg   pygments.lexerr   pygments.tokenr   r   r   r   r   r	   r
   r   __all__r   rj   r   r   <module>rn      s8    
     ,zu zr   