Ë
    !täiÛ(  ã                   ó`   — d Z ddlZddlmZ ddlmZmZmZmZm	Z	m
Z
mZmZ dgZ G d„ de«      Zy)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                   óP  — e Zd ZdZdZdZdgZdgZdZg Z	 e
d«      Z e
d«      Z e
d	«      Z e
d
«      Z e
d«      Z e
d«      Z e
d«      Z e
d«      Z ej(                  d«      Z ej(                  d«      Z ej(                  d«      Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z y)r   uz   
    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                 óD   — t        j                  | g|¢­i |¤Ž g | _        y )N)r   Ú__init__Úcur)ÚselfÚargsÚkwargss      úb/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/lexers/tnt.pyr   zTNTLexer.__init__7   s   € Ü�‰�tÐ-˜dÒ- fÒ-Øˆ�ó    c                 óþ   — |}	 ||   | j                   v r|dz  }||   | j                   v rŒ|r||k(  rt        ‚||k7  r%| j                  j                  |t        ||| f«       |S # t        $ r t        |«      }Y ŒOw xY w)zTokenize whitespace.é   )Ú
WHITESPACEÚ
IndexErrorÚlenÚAssertionErrorr   Úappendr   )r   ÚstartÚtextÚrequiredÚends        r   Ú
whitespacezTNTLexer.whitespace;   s‹   € àˆð	Ø�s‘)˜tŸ™Ñ.Ø�q‘�ð �s‘)˜tŸ™Ò.ñ ˜˜ušÜ Ð Ø�%Š<Ø�H‰H�O‰O˜U¤D¨$¨u°S¨/Ð:Ô;Øˆ
øô ò 	Ü�d“)ŠCð	ús   „'A% Á%A<Á;A<c                 óì   — ||   | j                   vrt        ‚|dz   }||   | j                  v r|dz  }||   | j                  v rŒ| j                  j	                  |t
        j                  ||| f«       |S )zTokenize a variable.r   )Ú	VARIABLESr   ÚPRIMESr   r   r   ÚVariable©r   r    r!   r#   s       r   ÚvariablezTNTLexer.variableI   sr   € à�‰;˜dŸn™nÑ,Ü Ð Ø�A‰gˆØ�3‰i˜4Ÿ;™;Ñ&Ø�1‰HˆCð �3‰i˜4Ÿ;™;Ò&à�‰�‰˜¤§¡¨t°E¸#¨Ð?Ô@Øˆ
r   c                 ó*  — ||   dk(  r\|dz   }||   dk(  r|dz  }||   dk(  rŒ| j                   j                  |t        j                  ||| f«       | j	                  ||«      S ||   dk(  r4| j                   j                  |t        j                  ||   f«       |dz   S ||   | j
                  v r| j                  ||«      S ||   dk(  rÃ| j                   j                  |t        ||   f«       | j	                  |dz   |«      }||   | j                  vrt        ‚| j                   j                  |t        ||   f«       | j	                  |dz   |«      }||   dk7  rt        ‚| j                   j                  |t        ||   f«       |dz   S t        ‚)zTokenize a term.ÚSr   Ú0Ú(Ú))r   r   r	   ÚIntegerÚtermr&   r*   r
   Ú	OPERATORSr   r   r)   s       r   r1   zTNTLexer.termS   s}  € à�‰;˜#ÒØ˜‘'ˆ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ÜÐr   c                 ót  — ||   | j                   v rd|dz   }||   | j                   v r|dz  }||   | j                   v rŒ| j                  j                  |t        ||| f«       | j	                  ||«      S ||   | j
                  v rŒ| j                  j                  |t        j                  ||   f«       | j                  |dz   |«      }||   dk7  rt        ‚| j                  j                  |t        ||   f«       | j	                  |dz   |«      S ||   dk(  rÃ| j                  j                  |t        ||   f«       | j	                  |dz   |«      }||   | j                  vrt        ‚| j                  j                  |t        ||   f«       | j	                  |dz   |«      }||   dk7  rt        ‚| j                  j                  |t        ||   f«       |dz   S | j                  ||«      }||   dk7  rt        ‚| j                  j                  |t        ||   f«       | j                  |dz   |«      }|S )zTokenize a formula.r   Ú:Ú<Ú>Ú=)ÚNEGATORSr   r   r   ÚformulaÚQUANTIFIERSr   ÚDeclarationr*   r   r
   ÚLOGICr1   r)   s       r   r9   zTNTLexer.formulam   s	  € à�‰;˜$Ÿ-™-Ñ'Ø˜‘'ˆ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Ó(ˆØˆr   c           	      óž  — | j                   j                  ||«      }|€t        ‚t        |j                  dd «      }|D ]Ê  }|d   dk\  sŒ| j
                  j                  |t        |||d    f«       | j
                  j                  |d   t        j                  ||d   |d    f«       |d   |j                  «       k7  r9| j
                  j                  |d   t        ||d   |j                  «        f«        |j                  «       S  | j
                  j                  |t        |||j                  «        f«       |j                  «       S )zTokenize a rule.Nr   r   )ÚRULESÚmatchr   ÚsortedÚregsr   r   r   r	   r0   r#   )r   r    r!   r?   ÚgroupsÚgroups         r   ÚrulezTNTLexer.rule�   s)  € à—
‘
× Ñ   uÓ-ˆØˆ=Ü Ð Ü˜Ÿ
™
 1 2˜Ó'ˆÛˆ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‹{Ðð ð �H‰H�O‰O˜U¤G¨T°%¸¿	¹	»Ð-DÐEÔFØ�y‰y‹{Ðr   c                 ó´  — |}||   | j                   vr|dz  }||   | j                   vrŒ| j                  j                  |t        ||   f«       | j                  j                  |dz   t        ||dz   | f«       |}| j
                  j                  ||«      }|€t        ‚||j                  «          dk7  rt        ‚| j                  j                  |j                  «       t        j                  |j                  d«      f«       | j                  j                  |j                  «       t        ||j                  «          f«       |j                  «       dz   S )zTokenize a line referral.r   r/   r   )ÚNUMBERSr   r   r
   r   ÚLINENOSr?   r   r#   r    r	   r0   rC   )r   r    r!   r#   r?   s        r   ÚlinenozTNTLexer.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‰Ðr   c                 óä   — |}	 ||   dk7  r|dz  }||   dk7  rŒ||k7  r%| j                  j                  |t        ||| f«       | j                  ||«      }|S # t         $ r t        |«      }Y ŒTw xY w)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_endzTNTLexer.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 | _         | j                  d|«      x}}||cxk  rt        |«      k  �rCn | j                   S 	 ||   | j                  v r|dz  }||   | j                  v rŒ||k7  rZ| j                   j	                  |t
        j                  ||| f«       t        | j                   «      }	 | j                  ||d«      x}}| j                  j                  ||«      }|�[| j                   j	                  |t        |||j                  «        f«       |j                  «       x}}| j                  ||«      x}}�Œ$~||   dv r0| j                   j	                  |t        ||   f«       |dz  }|dz  }n*t        | j                   «      }	 | j                  ||«      x}}t        | j                   «      }	 | j                  ||d«      x}}t        | j                   «      }	 | j%                  ||«      x}}| j                  ||«      x}}||   dk(  r>t        | j                   «      }	 | j'                  ||«      x}}| j                  ||«      x}}||cxk  rt        |«      k  r�Œ(| j                   S  | j                   S # t        $ r' | j                   |d…= | j                  ||«      x}}Y �Œ“w xY w# t        t        f$ rb | j                   |d…= ||   | j                   vr|dz  }||   | j                   vrŒ| j                   j	                  |t"        ||| f«       |}Y �Œ�w xY w# t        $ r' | j                   |d…= | j                  ||«      x}}Y �Œ:w xY w# t        $ r' | j                   |d…= | j                  ||«      x}}Y �Œmw xY w# t        $ r' | j                   |d…= | j                  ||«      x}}Y �Œ w xY w# t(        $ r6 	 | j                   d…= n# t*        $ r Y nw xY w| j                  ||«       Y �Œ­w xY w)zReturns a list of TNT tokens.r   r   TNz[]r.   )r   r$   r   rF   r   r	   r0   r   rK   ÚCOMMENTr?   r   r#   r   r9   ÚRecursionErrorr   r   rD   rH   r   Ú	NameError)r   r!   r    r#   Úorigr?   s         r   Úget_tokens_unprocessedzTNTLexer.get_tokens_unprocessedÀ   s  € àˆŒØ—o‘o a¨Ó.Ð.ˆ�Ø�sÔ&œS ›YÕ&ðT �x‰xˆðSH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  Â2J  ÃA7O  Å AO  ÆJ3 Æ"O  Æ8L' ÇO  Ç#M Ç71O  È)N È=O  Ê ,J0Ê,O  Ê/J0Ê0O  Ê3AL$Ë9'L$Ì O  Ì#L$Ì$O  Ì',MÍO  ÍMÍO  Í,N
ÎO  Î	N
Î
O  Î,N=Î9O  Î<N=Î=O  Ï 	O?Ï
OÏO?Ï	O&Ï#O?Ï%O&Ï&O?Ï>O?N)F)!Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚversion_addedr   Úsetr<   r2   r&   r'   r8   r:   rF   r   ÚreÚcompiler>   rG   rM   r   r$   r*   r1   r9   rD   rH   rK   rQ   © r   r   r   r      sÝ   „ ñð
 '€DØ
8€CØˆg€GØ�	€IØ€Mà
€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ò&ò"óNr   )rU   r\   Úpygments.lexerr   Úpygments.tokenr   r   r   r   r   r	   r
   r   Ú__all__r   r^   r   r   Ú<module>rb      s8   ðñó 
å  ÷÷ ó ð ˆ,€ôzˆuõ zr   