§
    XŠtjÛ(  ã                   óh   — 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dS )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                   óv  — 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 dS )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                 ó>   — t          j        | g|¢R i |¤Ž g | _        d S )N)r   Ú__init__Úcur)ÚselfÚargsÚkwargss      úQ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pygments/lexers/tnt.pyr   zTNTLexer.__init__7   s-   € ÝŒ�tÐ-˜dÐ-Ð-Ð- fÐ-Ð-Ð-ØˆŒˆˆó    Fc                 ó  — |}	 ||         | j         v r|dz  }||         | j         v °n# t          $ r t          |¦  «        }Y nw xY w|r||k    rt          ‚||k    r*| j                             |t          |||…         f¦  «         |S )zTokenize whitespace.é   )Ú
WHITESPACEÚ
IndexErrorÚlenÚAssertionErrorr   Úappendr   )r   ÚstartÚtextÚrequiredÚends        r   Ú
whitespacezTNTLexer.whitespace;   s«   € àˆð	Ø�s”)˜tœÐ.Ð.Ø�q‘�ð �s”)˜tœÐ.Ð.øøåð 	ð 	ð 	Ý�d‘)”)ˆCˆCˆCð	øøøàð 	!˜˜uš˜Ý Ð Ø�%Š<ˆ<ØŒH�OŠO˜U¥D¨$¨u°S¨y¬/Ð:Ñ;Ô;Ð;Øˆ
s   „#( ¨AÁAc                 óà   — ||         | j         vrt          ‚|dz   }||         | j        v r|dz  }||         | j        v °| j                             |t
          j        |||…         f¦  «         |S )zTokenize a variable.r   )Ú	VARIABLESr   ÚPRIMESr   r   r   ÚVariable©r   r    r!   r#   s       r   ÚvariablezTNTLexer.variableI   sy   € à�Œ;˜dœnÐ,Ð,Ý Ð Ø�A‰gˆØ�3Œi˜4œ;Ð&Ð&Ø�1‰HˆCð �3Œi˜4œ;Ð&Ð&àŒ�Š˜¥¤¨t°E¸#°I¬Ð?Ñ@Ô@Ð@Øˆ
r   c                 ó„  — ||         dk    rg|dz   }||         dk    r|dz  }||         dk    °| j                              |t          j        |||…         f¦  «         |                      ||¦  «        S ||         dk    r2| j                              |t          j        ||         f¦  «         |dz   S ||         | j        v r|                      ||¦  «        S ||         dk    rØ| j                              |t          ||         f¦  «         |                      |dz   |¦  «        }||         | j        vrt          ‚| j                              |t          ||         f¦  «         |                      |dz   |¦  «        }||         dk    rt          ‚| 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�OŠO˜U¥F¤N°D¸¸s¸´OÐDÑEÔEÐEØ—9’9˜S $Ñ'Ô'Ð'Ø�Œ;˜#ÒÐØŒH�OŠO˜U¥F¤N°D¸´KÐ@ÑAÔAÐAØ˜‘7ˆNØ�Œ;˜$œ.Ð(Ð(Ø—=’= ¨Ñ-Ô-Ð-Ø�Œ;˜#ÒÐØŒH�OŠO˜U¥K°°e´Ð=Ñ>Ô>Ð>Ø—I’I˜e A™g tÑ,Ô,ˆEØ�EŒ{ $¤.Ð0Ð0Ý$Ð$ØŒH�OŠO˜U¥H¨d°5¬kÐ:Ñ;Ô;Ð;Ø—I’I˜e A™g tÑ,Ô,ˆEØ�EŒ{˜cÒ!Ð!Ý$Ð$ØŒH�OŠO˜U¥K°°e´Ð=Ñ>Ô>Ð>Ø˜‘7ˆNÝÐr   c                 óâ  — ||         | j         v rh|dz   }||         | j         v r|dz  }||         | j         v °| j                             |t          |||…         f¦  «         |                      ||¦  «        S ||         | j        v rš| j                             |t          j        ||         f¦  «         |                      |dz   |¦  «        }||         dk    rt          ‚| j                             |t          ||         f¦  «         |                      |dz   |¦  «        S ||         dk    rØ| j                             |t          ||         f¦  «         |                      |dz   |¦  «        }||         | j        vrt          ‚| j                             |t          ||         f¦  «         |                      |dz   |¦  «        }||         dk    rt          ‚| j                             |t          ||         f¦  «         |dz   S |                      ||¦  «        }||         dk    rt          ‚| j                             |t          ||         f¦  «         |                      |dz   |¦  «        }|S )zTokenize a formula.r   ú:ú<ú>ú=)ÚNEGATORSr   r   r   ÚformulaÚQUANTIFIERSr   ÚDeclarationr*   r   r
   ÚLOGICr1   r)   s       r   r9   zTNTLexer.formulam   sI  € à�Œ;˜$œ-Ð'Ð'Ø˜‘'ˆCØ�s”)˜tœ}Ð,Ð,Ø�q‘�ð �s”)˜tœ}Ð,Ð,àŒH�OŠO˜U¥H¨d°5¸°9¬oÐ>Ñ?Ô?Ð?Ø—<’<  TÑ*Ô*Ð*Ø�Œ;˜$Ô*Ð*Ð*ØŒH�OŠO˜U¥GÔ$7¸¸e¼ÐEÑFÔFÐFØ—M’M %¨¡'¨4Ñ0Ô0ˆEØ�EŒ{˜cÒ!Ð!Ý$Ð$ØŒH�OŠO˜U¥K°°e´Ð=Ñ>Ô>Ð>Ø—<’<  a¡¨Ñ.Ô.Ð.Ø�Œ;˜#ÒÐØŒH�OŠO˜U¥K°°e´Ð=Ñ>Ô>Ð>Ø—L’L  q¡¨$Ñ/Ô/ˆEØ�EŒ{ $¤*Ð,Ð,Ý$Ð$ØŒH�OŠO˜U¥H¨d°5¬kÐ:Ñ;Ô;Ð;Ø—L’L  q¡¨$Ñ/Ô/ˆEØ�EŒ{˜cÒ!Ð!Ý$Ð$ØŒH�OŠO˜U¥K°°e´Ð=Ñ>Ô>Ð>Ø˜‘7ˆNà—	’	˜% Ñ&Ô&ˆØ�Œ;˜#ÒÐÝ Ð ØŒ�Š˜¥¨$¨u¬+Ð6Ñ7Ô7Ð7Ø—	’	˜% ™' 4Ñ(Ô(ˆØˆr   c           	      óö  — | j                              ||¦  «        }|€t          ‚t          |j        dd…         ¦  «        }|D ]ç}|d         dk    rÙ| j                             |t          |||d         …         f¦  «         | j                             |d         t          j	        ||d         |d         …         f¦  «         |d         | 
                    ¦   «         k    rH| j                             |d         t          ||d         | 
                    ¦   «         …         f¦  «          n=Œè| j                             |t          ||| 
                    ¦   «         …         f¦  «         | 
                    ¦   «         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 2œÑ'Ô'ˆØð 
	Gð 
	GˆEØ�QŒx˜1Š}ˆ}Ø”—’ ­°°e¸EÀ!¼H°nÔ1EÐ FÑGÔGÐGØ”—’  q¤­6¬>Ø!% e¨A¤h¨u°Q¬xÐ&7Ô!8ð!:ñ ;ô ;ð ;à˜”8˜uŸyšy™{œ{Ò*Ð*Ø”H—O’O U¨1¤X­wØ%)¨%°¬(°5·9²9±;´;Ð*>Ô%?ð%Añ Bô Bð Bà�ð ð ŒH�OŠO˜U¥G¨T°%¸¿	º	¹¼Ð2CÔ-DÐEÑFÔFÐFØ�yŠy‰{Œ{Ðr   c                 óð  — |}||         | j         vr|dz  }||         | j         v°| j                             |t          ||         f¦  «         | j                             |dz   t          ||dz   |…         f¦  «         |}| j                             ||¦  «        }|€t          ‚||                     ¦   «                  dk    rt          ‚| j                             | 	                    ¦   «         t          j        |                     d¦  «        f¦  «         | j                             |                     ¦   «         t          ||                     ¦   «                  f¦  «         |                     ¦   «         dz   S )zTokenize a line referral.r   Nr/   r   )ÚNUMBERSr   r   r
   r   ÚLINENOSr?   r   r#   r    r	   r0   rC   )r   r    r!   r#   r?   s        r   ÚlinenozTNTLexer.lineno¢   s5  € àˆØ�3Œi˜tœ|Ð+Ð+Ø�1‰HˆCð �3Œi˜tœ|Ð+Ð+àŒ�Š˜¥¨T°%¬[Ð9Ñ:Ô:Ð:ØŒ�Š˜˜q™¥$¨¨U°1©W°S¨[Ô(9Ð:Ñ;Ô;Ð;ØˆØ”×"Ò" 4¨Ñ/Ô/ˆØˆ=Ý Ð Ø�—	’	‘”Ô Ò#Ð#Ý Ð ØŒ�Š˜Ÿš™œ­¬¸¿ºÀA¹¼ÐGÑHÔHÐHØŒ�Š˜Ÿš™œ¥k°4¸¿	º	¹¼Ô3DÐEÑFÔFÐFØ�yŠy‰{Œ{˜Q‰Ðr   c                 ó  — |}	 ||         dk    r|dz  }||         dk    °n# t           $ r t          |¦  «        }Y nw xY w||k    r*| j                             |t          |||…         f¦  «         |                      ||¦  «        }|S )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Ò#Ð#øøåð 	ð 	ð 	Ý�d‘)”)ˆCˆCˆCð	øøøà�%Š<ˆ<ØŒH�OŠO˜U¥E¨4°°c°	¬?Ð;Ñ<Ô<Ð<Ø�oŠo˜c 4Ñ(Ô(ˆØˆ
s   „" ¢>½>c                 óJ  — g | _         |                      d|¦  «        x}}||cxk    rt          |¦  «        k     �rãn �nß	 ||         | j        v r|dz  }||         | j        v °||k    r�| j                              |t
          j        |||…         f¦  «         t          | j         ¦  «        }	 |                      ||d¦  «        x}}n2# t          $ r% | j         |d…= |                      ||¦  «        x}}Y ŒÕw xY w| j	         
                    ||¦  «        }|�l| j                              |t          |||                     ¦   «         …         f¦  «         |                     ¦   «         x}}|                      ||¦  «        x}}�Œb~||         dv r3| j                              |t          ||         f¦  «         |dz  }|dz  }nžt          | j         ¦  «        }	 |                      ||¦  «        x}}np# t          t          f$ r\ | j         |d…= ||         | j        vr|dz  }||         | j        v°| j                              |t"          |||…         f¦  «         |}Y nw xY wt          | j         ¦  «        }	 |                      ||d¦  «        x}}n3# t          $ r& | j         |d…= |                      ||¦  «        x}}Y �Œœw xY wt          | j         ¦  «        }	 |                      ||¦  «        x}}n3# t          $ r& | j         |d…= |                      ||¦  «        x}}Y �Œýw xY w|                      ||¦  «        x}}||         dk    ryt          | j         ¦  «        }	 |                      ||¦  «        x}}n3# t          $ r& | j         |d…= |                      ||¦  «        x}}Y �Œ‚w xY w|                      ||¦  «        x}}nB# t(          $ r5 	 | j         |d…= n# t*          $ r Y nw xY w|                      ||¦  «         Y nw xY w||cxk    rt          |¦  «        k     �°Ýn | j         S )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œYÒ&Ñ&Ð&Ð&Ñ&ðH6à˜3”i 4¤<Ð/Ð/Ø˜1‘H�Cð ˜3”i 4¤<Ð/Ð/à˜%’<�<Ø”H—O’O U­F¬N¸DÀÀsÀ¼OÐ$LÑMÔMÐMå˜tœx™=œ=�Dð!Ø&*§o¢o°c¸4ÀÑ&FÔ&FÐF˜  øÝ)ð !ð !ð !Ø œH T U U˜OØ&*×&>Ò&>¸sÀDÑ&IÔ&IÐI˜ Ø ˜ð!øøøð
 œ×*Ò*¨4°Ñ7Ô7�ØÐ$Ø”H—O’O U­G°T¸%ÀÇ	Â	ÁÄÐ:KÔ5LÐ$MÑNÔNÐNØ"'§)¢)¡+¤+Ð-�E˜Cà"&×":Ò":¸5À$Ñ"GÔ"GÐG�E˜CáØØ˜”; $Ð&Ð&Ø”H—O’O U­G°T¸%´[Ð$AÑBÔBÐBØ˜Q‘J�EØ˜1‘H�C�Cõ ˜tœx™=œ=�Dð$Ø&*§l¢l°5¸$Ñ&?Ô&?Ð?˜  øÝ*­NÐ;ð $ð $ð $Ø œH T U U˜OØ" 3œi¨t¬Ð>Ð>Ø 1™H˜Cð # 3œi¨t¬Ð>Ð>àœŸš¨µ°t¸EÀ#¸I´Ð(GÑHÔHÐHØ #˜˜˜ð$øøøõ ˜4œ8‘}”}�ðØ"&§/¢/°#°t¸TÑ"BÔ"BÐB�E˜C˜CøÝ%ð ð ð Øœ   ˜Ø"&×":Ò":¸5À$Ñ"GÔ"GÐG�E˜CØ‘Hðøøøõ
 ˜4œ8‘}”}�ðØ"&§)¢)¨E°4Ñ"8Ô"8Ð8�E˜C˜CøÝ%ð ð ð Øœ   ˜Ø"&×":Ò":¸5À$Ñ"GÔ"GÐG�E˜CØ‘Hðøøøð
 #Ÿošo¨c°4Ñ8Ô8Ð8�˜à˜”; #Ò%Ð%Ý˜tœx™=œ=�Dð!Ø&*§k¢k°%¸Ñ&>Ô&>Ð>˜  øÝ)ð !ð !ð !Ø œH T U U˜OØ&*×&>Ò&>¸uÀdÑ&KÔ&KÐK˜ Ø ™ð!øøøð #'§/¢/°%¸Ñ">Ô">Ð>�E˜CøøÝð 6ð 6ð 6ðØœ   ˜˜øÝ ð ð ð Ø�Dðøøøà×(Ò(¨°Ñ5Ô5Ð5Ð5Ð5ð6øøøðI �sÐ&Ð&Ò&Ð&�S ™YœYÒ&Ñ&Ð&Ð&ðT Œxˆsô   Á A,N? Â-C ÃN? Ã,C6Ã3N? Ã5C6Ã6B
N? ÆAN? ÇG. Ç-N? Ç.A*IÉN? ÉIÉN? É3J ÊN? Ê,J=Ê9N? Ê<J=Ê=N? ËK. Ë-N? Ë.,LÌN? ÌLÌ;N? ÍM3 Í2N? Í3,N#ÎN? Î"N#Î#N? Î?
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àˆCÐ$Ñ%Ô%€EØ��H‘”€IØ��G‘”€IØˆS�‰[Œ[€FØˆs�4‰yŒy€HØ�#�j‘/”/€KØˆc�,ÑÔ€GØ��Y‘”€JàˆBŒJð ñ 	ô 	€Eð ˆbŒjÐDÑEÔE€GØˆbŒj˜Ñ)Ô)€Gðð ð ðð ð ð ðð ð ðð ð ð4 ð  ð  ðDð ð ð&ð ð ð"ð ð ðNð Nð Nð Nð Nr   )rU   r\   Úpygments.lexerr   Úpygments.tokenr   r   r   r   r   r	   r
   r   Ú__all__r   r^   r   r   ú<module>rb      s×   ððð ð 
€	€	€	à  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ˆ,€ðzð zð zð zð zˆuñ zô zð zð zð zr   