+
    TBi(                     b    R t ^ RIt^ RIHt ^ RIHtHtHtHtH	t	H
t
HtHt R.t ! R R]4      tR# )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                   f  a  ] tR t^t o RtRtRtR.tR.tRt	. t
]! R4      t]! R4      t]! R	4      t]! R
4      t]! R4      t]! R4      t]! R4      t]! R4      t]P*                  ! R4      t]P*                  ! R4      t]P*                  ! R4      tR tRR ltR tR tR tR tR tR t R t!Rt"V t#R# )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                H    \         P                  ! V .VO5/ VB  . V n        R # )N)r   __init__cur)selfargskwargss   &*,8/usr/lib/python3.14/site-packages/pygments/lexers/tnt.pyr   TNTLexer.__init__7   s    t-d-f-    c                   Tp W$,          V P                   9   d   V^,          pK"   V'       d   WA8X  d   \        hWA8w  d%   V P                  P                  V\        W!V 34       V#   \         d    \        T4      p LXi ; i)zTokenize whitespace.)
WHITESPACE
IndexErrorlenAssertionErrorr   appendr   )r   starttextrequiredends   &&&& r   
whitespaceTNTLexer.whitespace;   sv    	)t.q /   <HHOOUD$S/:;
  	d)C	s   "A' 'B ?B c                    W!,          V P                   9  d   \        hV^,           pW#,          V P                  9   d   V^,          pK"  V P                  P	                  V\
        P                  W!V 34       V# )zTokenize a variable.)	VARIABLESr   PRIMESr   r   r   Variabler   r   r    r"   s   &&& r   variableTNTLexer.variableI   sZ    ;dnn,  Agi4;;&1HCt#?@
r   c                   W!,          R8X  da   V^,           pW#,          R8X  d   V^,          pK  V P                   P                  V\        P                  W!V 34       V P	                  W24      # W!,          R8X  d<   V P                   P                  V\        P                  W!,          34       V^,           # W!,          V P
                  9   d   V P                  W4      # W!,          R8X  d   V P                   P                  V\        W!,          34       V P	                  V^,           V4      pW!,          V P                  9  d   \        hV P                   P                  V\        W!,          34       V P	                  V^,           V4      pW!,          R8w  d   \        hV P                   P                  V\        W!,          34       V^,           # \        h)zTokenize a term.S0())r   r   r   Integertermr&   r*   r	   	OPERATORSr   r   r)   s   &&& r   r2   TNTLexer.termS   sS   ;#'C)s"qHHOOUFNNDsODE99S'';#HHOOUFNNDK@A7N;$..(==--;#HHOOUK=>IIeAgt,E{$..0$$HHOOUHdk:;IIeAgt,E{c!$$HHOOUK=>7Nr   c                
   W!,          V P                   9   da   V^,           pW#,          V P                   9   d   V^,          pK"  V P                  P                  V\        W!V 34       V P	                  W24      # W!,          V P
                  9   d   V P                  P                  V\        P                  W!,          34       V P                  V^,           V4      pW!,          R8w  d   \        hV P                  P                  V\        W!,          34       V P	                  V^,           V4      # W!,          R8X  d   V P                  P                  V\        W!,          34       V P	                  V^,           V4      pW!,          V P                  9  d   \        hV P                  P                  V\        W!,          34       V P	                  V^,           V4      pW!,          R8w  d   \        hV P                  P                  V\        W!,          34       V^,           # V P                  W4      pW!,          R8w  d   \        hV P                  P                  V\        W!,          34       V P                  V^,           V4      pV# )zTokenize a formula.:<>=)NEGATORSr   r   r   formulaQUANTIFIERSr   Declarationr*   r   r	   LOGICr2   r)   s   &&& r   r;   TNTLexer.formulam   s   ;$--''C)t}},q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           	        V P                   P                  W!4      pVf   \        h\        VP                  R,          4      pV F  pV^ ,          ^ 8  g   K  V P
                  P                  V\        W!V^ ,           34       V P
                  P                  V^ ,          \        P                  W%^ ,          V^,           34       V^,          VP                  4       8w  dA   V P
                  P                  V^,          \        W%^,          VP                  4        34        VP                  4       # 	  V P
                  P                  V\        W!VP                  4        34       VP                  4       # )zTokenize a rule.:   NN)RULESmatchr   sortedregsr   r   r   r   r1   r"   )r   r   r    rC   groupsgroups   &&&   r   ruleTNTLexer.rule   s   

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

2'EQx1}E!H1E FGq6>>!%AhuQx!8!: ;8uyy{*HHOOU1Xw%)(599;%?%A B yy{  HHOOUGT		-DEFyy{r   c                   TpW#,          V P                   9  d   V^,          pK"  V P                  P                  V\        W!,          34       V P                  P                  V^,           \        W!^,           V 34       TpV P
                  P                  W!4      pVf   \        hW$P                  4       ,          R8w  d   \        hV P                  P                  VP                  4       \        P                  VP                  ^ 4      34       V P                  P                  VP                  4       \        W$P                  4       ,          34       VP                  4       ^,           # )zTokenize a line referral.r0   )NUMBERSr   r   r	   r   LINENOSrC   r   r"   r   r   r1   rG   )r   r   r    r"   rC   s   &&&  r   linenoTNTLexer.lineno   s    it||+1HCT[9:q$1WS(9:;""4/=  		#  AGHk4		3DEFyy{Qr   c                    Tp W#,          R8w  d   V^,          pK   W18w  d%   V P                  P                  V\        W!V 34       V P                  W24      pV#   \          d    \        T4      p LUi ; i)z?Mark everything from ``start`` to the end of the line as Error.
)r   r   r   r   r
   r#   r)   s   &&& r   error_till_line_endTNTLexer.error_till_line_end   ss    	)t#q $ <HHOOUE4c?;<ooc(
  	d)C	s   A A32A3c                   . V n         V P                  ^ V4      ;r#Y#u;8:  d   \        V4      8  Ed'   M V P                   #  W,          V P                  9   d   V^,          pK"  W28w  dX   V P                   P	                  V\
        P                  WV 34       \        V P                   4      p V P                  W1R4      ;r#V P                  P                  W4      pVeY   V P                   P	                  V\        WVP                  4        34       VP                  4       ;r#V P                  W!4      ;r#EK  ?W,          R9   d<   V P                   P	                  V\        W,          34       V^,          pV^,          pM(\        V P                   4      p V P                  W!4      ;r#\        V P                   4      p V P                  W1R4      ;r#\        T P                   4      p T P%                  Y!4      ;r#T P                  Y14      ;r#Y,          R8X  d>   \        T P                   4      p T P'                  Y!4      ;r#T P                  Y!4      ;r#EK;  EK>  V P                   #   \         d'    T P                   TR1 T P                  Y14      ;r# EKz  i ; i  \        \        3 d\    T P                   TR1 Y,          T P                   9  d   T^,          pK"  T P                   P	                  T\"        YT 34       Tp EL[i ; i  \         d'    T P                   TR1 T P                  Y!4      ;r# EK  i ; i  \         d'    T P                   TR1 T P                  Y!4      ;r# EKQ  i ; i  \         d'    T P                   TR1 T P                  Y!4      ;r# EK  i ; i  \(         d9     T P                   XR1 M  \*         d     Mi ; iT P                  Y!4        EK  i ; i)zReturns a list of TNT tokens.TNz[]r/   )r   r#   r   rK   r   r   r1   r   rQ   COMMENTrC   r   r"   r   r;   RecursionErrorr   r
   rH   rM   r   	NameError)r   r    r   r"   origrC   s   &&    r   get_tokens_unprocessedTNTLexer.get_tokens_unprocessed   sz   ooa..&SY&T xxSH6i4<</1HC<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%&>>
 #'//%">>EC & xx * ! HHTUO&*&>&>s&II !. +N; $ HHTUO"it>1HCt#(GH #$ & "&":":5"GGE & "&":":5"GGE * ! HHTUO&*&>&>u&KK !
  6  ((556s   A+N$ .I% A4N$ 8AN$ J )N$ ?L N$ (L< :4N$ /M0 N$ %,JN$ JN$ A(LN$ LN$ ,L94N$ 8L99N$ <,M-(N$ ,M--N$ 0,N!N$  N!!N$ $O'0O ?O' OO'OO'&O')r   N)F)$__name__
__module____qualname____firstlineno____doc__nameurlaliases	filenamesversion_addedr   setr>   r3   r&   r'   r:   r<   rK   r   recompilerB   rL   rT   r   r#   r*   r2   r;   rH   rM   rQ   rX   __static_attributes____classdictcell__)__classdict__s   @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 Nr   )r^   re   pygments.lexerr   pygments.tokenr   r   r   r   r   r   r	   r
   __all__r    r   r   <module>rn      s8    
     ,zu zr   