|e(`dZddlZddlmZddlmZmZmZmZm Z m Z m Z m Z dgZ GddeZy)z pygments.lexers.tnt ~~~~~~~~~~~~~~~~~~~ Lexer for Typographic Number Theory. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N)Lexer)TextCommentOperatorKeywordNameNumber PunctuationErrorTNTLexercLeZdZdZdZdZdgZdgZgZe dZ e dZ e dZ e d Z e d Ze d Ze d Ze d Zej&dZej&dZej&dZdZddZdZdZdZdZdZdZdZy)r u Lexer for Typographic Number Theory, as described in the book Gödel, Escher, Bach, by Douglas R. Hofstadter .. versionadded:: 2.7 zTypographic Number Theoryz,https://github.com/Kenny2github/language-tnttntz*.tntu⊃→]&∧^|∨Vvu+.⋅*abcdeu'′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\]]+\]cDtj|g|i|g|_y)N)r__init__cur)selfargskwargss 5/usr/lib/python3/dist-packages/pygments/lexers/tnt.pyrzTNTLexer.__init__8s t-d-f-c|} |||jvr|dz }|||jvr|r ||k(rt||k7r%|jj |t |||f|S#t$rt|}YOwxYw)zTokenize whitespace.) WHITESPACE IndexErrorlenAssertionErrorrappendr)rstarttextrequiredends r whitespacezTNTLexer.whitespace<s s)t.qs)t. u  %< HHOOUD$uS/: ;  d)C s'A%%A<;A<c|||jvrt|dz}|||jvr|dz }|||jvr|jj |t j |||f|S)zTokenize a variable.r) VARIABLESrPRIMESrrrVariablerr r!r#s rvariablezTNTLexer.variableJsr ;dnn , Ag3i4;;& 1HC3i4;;&  tE#?@ rc*||dk(r\|dz}||dk(r|dz }||dk(r|jj|tj|||f|j ||S||dk(r4|jj|tj||f|dzS|||j vr|j ||S||dk(r|jj|t||f|j |dz|}|||jvrt|jj|t||f|j |dz|}||dk7rt|jj|t||f|dzSt)zTokenize a term.Sr0()) rrr Integertermr&r*r OPERATORSrrr)s rr1z TNTLexer.termTs} ;# 'Cs)s"qs)s" HHOOUFNNDsOD E99S$' ' ;#  HHOOUFNNDK@ A7N ;$.. (==- - ;#  HHOOUKe= >IIeAgt,EE{$..0$$ HHOOUHd5k: ;IIeAgt,EE{c!$$ HHOOUKe= >7Nrct|||jvrd|dz}|||jvr|dz }|||jvr|jj|t|||f|j ||S|||j vr|jj|t j||f|j|dz|}||dk7rt|jj|t||f|j |dz|S||dk(r|jj|t||f|j |dz|}|||jvrt|jj|t||f|j |dz|}||dk7rt|jj|t||f|dzS|j||}||dk7rt|jj|t||f|j|dz|}|S)zTokenize a formula.r:<>=) NEGATORSrrrformula QUANTIFIERSr Declarationr*rr LOGICr1r)s rr9zTNTLexer.formulans  ;$-- ''Cs)t}},qs)t}}, HHOOUHd5o> ?<<T* * ;$** * HHOOUG$7$7eE FMM%'40EE{c!$$ HHOOUKe= ><<a. . ;#  HHOOUKe= >LLq$/EE{$**,$$ HHOOUHd5k: ;LLq$/EE{c!$$ HHOOUKe= >7N %& ;#   $u+67 %'4( rc |jj||}|tt|jdd}|D]}|ddk\s |j j |t|||df|j j |dtj||d|df|d|jk7r9|j j |dt||d|jf|jS|j j |t|||jf|jS)zTokenize a rule.Nrr) RULESmatchrsortedregsrrrr r0r#)rr r!r?groupsgroups rrulez TNTLexer.rules0   u- =  12' GEQx1}eE!H1E FGq6>>!%eAhuQx!8!:;8uyy{*HHOOU1Xw%)%(599;%?%AByy{ G HHOOUGT% -DE Fyy{rc|}|||jvr|dz }|||jvr|jj|t||f|jj|dzt||dz|f|}|j j ||}|t||jdk7rt|jj|jtj|jdf|jj|jt||jf|jdzS)zTokenize a line referral.rr/r) NUMBERSrrr rLINENOSr?rr#r r r0rC)rr r!r#r?s rlinenozTNTLexer.linenos3it||+ 1HC3it||+  T%[9: q$U1WS(9:; ""4/ =   #   AGH k4 3DEFyy{Qrc|} ||dk7r|dz }||dk7r||k7r%|jj|t|||f|j ||}|S#t$rt|}YTwxYw)z?Mark everything from ``start`` to the end of the line as Error. r)rrrrr r$r)s rerror_till_line_endzTNTLexer.error_till_line_ends s)t#qs)t# %< HHOOUE4c?; <ooc4(  d)C sAA/.A/cg|_|jd|x}}||cxkrt|krCn |jS |||jvr|dz }|||jvr||k7rZ|jj |t j |||ft|j} |j||dx}}|jj||}|[|jj |t|||jf|jx}}|j||x}}$~||dvr0|jj |t||f|dz }|dz }n*t|j} |j||x}}t|j} |j||dx}}t|j} |j%||x}}|j||x}}||dk(r>t|j} |j'||x}}|j||x}}||cxkrt|kr(|jS|jS#t$r'|j|d=|j||x}}YwxYw#ttf$rb|j|d=|||j vr|dz }|||j vr|jj |t"|||f|}YwxYw#t$r'|j|d=|j||x}}Y:wxYw#t$r'|j|d=|j||x}}YmwxYw#t$r'|j|d=|j||x}}YwxYw#t($r6 |jd=n#t*$rYnwxYw|j||YwxYw)zReturns a list of TNT tokens.rrTNz[]r.)rr$rrFrr r0rrKCOMMENTr?rr#rr9RecursionErrorrr rDrHr NameError)rr!r r#origr?s rget_tokens_unprocessedzTNTLexer.get_tokens_unprocessedsooa..s&SY&TxxSH 63i4<</1HC3i4<</%<HHOOUFNNDsO$LMtxx=D!&*ooc4&FF  **47$HHOOUGT% 5L$MN"'))+-EC"&":":5$"GGEC;$&HHOOUGT%[$ABQJE1HCtxx=D$&*ll5$&??488}"&//#tT"BBEC 488}"&))E4"88EC #ooc488;#%txx=D!&*kk%&>> #'//%">>ECGs&SY&TxxU'Txx*! HHTUO&*&>&>sD&II !.+N;$ HHTUO"3it>1HC#3it>tE#(GH # $&"&":":5$"GGEC&"&":":5$"GGEC*! HHTUO&*&>&>ud&KK !  6 ((5  6s'O(A O2JA7OA OJ3"O8L' O#M71O)N =O,J0,O/J00O3AL$9'L$ O#L$$O',MOMO,N O N  O ,N=9O<N==O O? OO? O&#O?%O&&O?>O?N)F) __name__ __module__ __qualname____doc__nameurlaliases filenamesrsetr<r2r&r'r8r:rFrrecompiler>rGrMrr$r*r1r9rDrHrKrQrrr r s 'D 8CgG I C $ %EH IG I [F4yHj/K,GYJ BJJ EbjjDEGbjj)G 4 D&" Nr)rUr[pygments.lexerrpygments.tokenrrrrrr r r __all__r r]rrras8  ,{u{r