
    Mh                         d Z ddlZddlmZmZmZmZmZmZm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZ g dZ G d de          Z G d d	e          Z G d
 de          Z G d de          ZdS )z
    pygments.lexers.int_fiction
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for interactive fiction languages.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerincludebygroupsusingthisdefaultwords)
TextCommentOperatorKeywordNameStringNumberPunctuationErrorGeneric)Inform6LexerInform6TemplateLexerInform7Lexer
Tads3Lexerc                      e Zd ZdZdZdZddgZdgZdZe	j
        e	j        z  ZdZd	Zd
ZdZdZi dde de dej        df ed          gddefde dej        fgd ed          dedfdedfdef ed          gd ed          dedfde e d ed!fd"e d#efd$e d%edfgd& ed          d'edfd(edfded)fd*e d+efd"e d,efd-edfd.e d/edfd0ej        dfd1efd2ej        d3fd4ef ed          gd5d'ed6fd7efd8e d9edfd1ej        fd:ed;f ed&          gd<d(ed=fd>edf ed&          gd?d@edf ed&          gdAd-edf ed&          gdBdCej         df edA          gdD ed          d8e dEe dFe!j"        dfdGe dHe dI e#e!j"        e!j$        e!j"                  dfdGe dJe dI e#e!j"        e!j$        e!j"                  dfd8e dFe!j        dKfd8e dFe!j%        dLfdMe dNe dOe&j'        dfdPe&j(        dfdQe&j)        dfdRe&j*        dfdSe dT e#ee          dfdUe dT e#eej+        j,                  dfdVedWfdXe dT e#eej-                  dfdYej.        dZf e/d[d\]          ej.        dfd^ej.        df e/d_d`d\a          ej.        df e/dbd`d\a          ej.        dfeedfgdc edD           ed          gdddee de!j$        fdfe dge!j        fdhe!j        fdie!j$        fdje!j$        fd8e dFe!j        dfgdkdle!j$        fdme dge!j%        fdne!j%        fdoe!j$        fdpe dqe dre!j$        fdpe dse dte due!j$        fdpe dve dwe!j$        fd8e dFe!j%        dfgdxdye dge!j%        fdze!j%        fdoe!j$        fd8e dFe!j%        dfgd{ ed          eej0        df edD          gd| ed          d-efd}edcfeej0        dcf ed          gi d~ ed          eej+        j,        df edD          gd3 ed          eej        df ed          gd ed          eej+        df ed          gdde!j1        dfgd ed          eej.        dfgd ed          dYefd:edfdedf e/dd`d\a          edfdedfdedfdedfdedfd e#ee          fdedfdedfdedfdedfdedfdedfdedfdedfdedfdedfdedfdedfdedfeej2        dfgd ed          eej-        df ed          gd ed          d:edfdefde!j%        dxfeej+        fgd ed          d:efdedfd>ef ed          gd ed          dedf ed          gd ed          dedfeej2        dfgd ed          d'edf ed          gdd8e d9efdej         df ed~          gd ed          d:ed=fd-efdej         dfdej         fd>ef ed          gd ed          dedfeej2        f edD          gd ed          d}edfdedf ed          gd ed          d:edfdefd8e d9edDfdedf ed          gi d ed          d}edf ed          gd ed          d:edfd-efded~f ed~          gd ed          d8e dFe!j%        df edĦ          gd ed          d8e dFe!j%        df ed          gddle!j$        f edx          gd ed           e/dd\]          edfdefd8e d˝edfgd edȦ           edD          gd edȦ           ed          gd ed           e/dde de dН]          ef ed          gd ed           e/dd\]          edf ed          gd ed          dedfdef e/dd\]          edfdefdedfdedfdedfdedfdedfde dIedfdej        d3fdedfdedfdedfdedf ed          gd ed          dedfde dej        dfe de dej-        df ed          gd ed          d'edf ed          gd ed          d:edf ed          gd ed          d:edfd>ef ed          gd ed          d'edf ed          gd ed          d8e dFe!j%        dfd8e dedfeedfgdd>ef ed          giZ3d Z4d Z5dS )r   z#
    For Inform 6 source code.
    zInform 6zhttp://inform-fiction.org/inform6i6z*.inf2.0z[a-zA-Z_]\w*u	   \-‐-—u   "“”u   '‘’u
   \n  rootz\A(!%[^z]*[])+	directive_whitespace\s+![^]*r   \[zmany-valuesz:|(?=;)#pop<)
expression_expressionr'   z(?=sp\b)z(?=[z$0-9#a-zA-Z_]))r$   valuez\+\+|[z]{1,2}(?!>)|~~?z(?=[()\[z,?@{:;])r&   \(\))r$   
statementslocalsz>(?=(\s+|(![^z
]*))*[>;])z	]{2}(?!>),z&&?|\|\|?|[=~><]?=|[z]{1,2}>?|\.\.?[&#]?|::|[<>+*/%]z*(has|hasnt|in|notin|ofclass|or|provides)\bzsp\bz\?~?label?z[@{]_assembly-expression)#pushr'   z[\[\]][z]>;#pop:3_for-expression#pop:2:_keyword-expressionz(from|near|to)\b_list-expression_object-expressionzhas\br(   z][^@][]z([z])(@\{[0-9a-fA-F]*\})([])z])(@.{2})([)r$   dictionary-word)r$   stringz	\$[<>]?[+z][0-9]*\.?[0-9]*([eE][+z
]?[0-9]+)?z\$[0-9a-fA-F]+z	\$\$[01]+z[0-9]+z
(##|#a\$)()z(#g\$)(z#[nw]\$)r$   obsolete-dictionary-wordz(#r\$)(#)r$   system-constant)childchildreneldereldestglkindirect	metaclassparentrandomsiblingyoungeryoungestz\b)suffixz#(?i)(Class|Object|Routine|String)\b)2Box__RoutineCA__PrCDefArt	CInDefArtCl__MsCopy__PrimitiveCP__TabDA__PrDB__PrDefArtDynam__StringEnglishNumber	Glk__WrapIA__PrIB__PrInDefArtMain__Meta__classOB__Move
OB__RemoveOC__ClOP__PrPrint__AddrPrint__PNamePrintShortNameRA__PrRA__ScRL__Pr	R_ProcessRT__ChGRT__ChGt	RT__ChLDB	RT__ChLDWRT__ChPRRT__ChPrintART__ChPrintCRT__ChPrintORT__ChPrintSRT__ChPSRT__ChR	RT__ChSTB	RT__ChSTWRT__ChTRT__ErrRT__TrPSRV__Pr	Symb__TabUnsigned__CompareWV__Pr	Z__Regionz(?i))prefixrN   )8callcopycreateDEBUGdestroyDICT_CHAR_SIZEDICT_ENTRY_BYTESDICT_IS_UNICODEDICT_WORD_SIZEDOUBLE_HI_INFINITYDOUBLE_HI_NANDOUBLE_HI_NINFINITYDOUBLE_LO_INFINITYDOUBLE_LO_NANDOUBLE_LO_NINFINITYfalseFLOAT_INFINITY	FLOAT_NANFLOAT_NINFINITYGOBJFIELD_CHAINGOBJFIELD_CHILDGOBJFIELD_NAMEGOBJFIELD_PARENTGOBJFIELD_PROPTABGOBJFIELD_SIBLINGGOBJ_EXT_STARTGOBJ_TOTAL_LENGTHGrammar__VersionINDIV_PROP_STARTINFIXinfix__watchingMODULE_MODEnamenothingNUM_ATTR_BYTESprintprint_to_arrayrecreate	remainingselfsenderSTRICT_MODEsw__var
sys__glob0
sys__glob1
sys__glob2sys_statusline_flagTARGET_GLULXTARGET_ZCODEtemp__global2temp__global3temp__global4temp_globaltrueUSE_MODULESWORDSIZEzvalue?r<   z
[~^]+|//[^z
[^~^/\\@({]+z[/({]z@\{[0-9a-fA-F]*\}z@.{2}r=   z[~^]+z	[^~^\\@({z[({]\\z@(\\\s*[z]\s*)*@((\\\s*[z]\s*)*[0-9])*z]\s*)*[({]((\\\s*[z]\s*)*[0-9a-zA-Z_])*(\\\s*[z
]\s*)*[)}]z]\s*)*.(\\\s*[z]\s*)*.plain-stringz[^~^\\({\[\]z
[~^({\[\]]	_constant	constant*=_global	variable?r?   z\S\w*rA   )r   r+   r,   routine-name?)
abbreviateendif
dictionaryifdefiffalseifndefifnotiftrueifv3ifv5releaseserialswitchessystem_fileversionz(?i)(array|global)\b)r   directive-keyword?r   z(?i)attribute\b)r   alias?r   z(?i)class\b)object-body
duplicates
class-namez(?i)(constant|default)\b)r   r   z(?i)(end\b)(.*)z(?i)(extend|verb)\bgrammarz(?i)fake_action\b)r   r   z(?i)import\bmanifestz(?i)(include|link|origsource)\b)r   before-plain-string?z(?i)(lowstring|undef)\bz(?i)message\b)r   
diagnosticz(?i)(nearby|object)\b)r   _object-headz(?i)property\b)r   r   r   property-keyword*z(?i)replace\b)r   r   r   z(?i)statusline\b)r   r   z
(?i)stub\b)r   r   z(?i)trace\b)r   trace-keyword?r   z(?i)zcharacter\b)r   r   r   r   r,   z\*"\]r   zalias\b)r$   r   r   z#(?=[,;]|(class|has|private|with)\b)r   )r$   r&   r'   r   z(class|has|private|with)\br   class\bzclass-segmentz(has|private|with)\b)r9   r'   )r$   r   )r$   grammar-linez_directive-keywordr   z[/*]z(noun|scope)\bz=routinez(?i)global\br   )r$   message-string)r$   r   r   r   )r$   r   r   z_directive-keyword!)%additivealiasbufferclasscreaturedataerror
fatalerrorfirsthasheld
individualinitialinitstrlastlongmetamultimultiexcept	multiheldmultiinsidenounnumberonlyprivatereplacereversescopescorespecialr=   tableterminatingtimetopicwarningwithzstatic\bz]{1,2}>|[+=]r   r   )r   r   r   z\b(?=(\s*|(![^z]))*[_a-zA-Z])r   )assemblyr   expressionslineslinkerobjectsoffonsymbolstokensverbsr+   z[;{}])boxbreakcontinuer   give	inversionnew_linequitreadremovereturnrfalsertruespacesr=   untilz(do|else)\bz(font|style)\b)r   miscellaneous-keyword?zfor\b)for(?z(if|switch|while))r&   r'   r!  z(jump|save|restore)\b)r   r.   zobjectloop\b)r7   r   r!  zprint(_ret)?\b|(?=[z
print-listz\.@opcodez#(?![agrnw]\$|#)zmove\b)r   r7   r'   r  z:(bold|fixed|from|near|off|on|reverse|roman|to|underline)\bzN(a|A|an|address|char|name|number|object|property|string|the|The)\b(?=(\s+|(![^z]*))*\))z(?=(\s+|(![^r!  r   )r4   r'   )r8   r'   r8   formr$  )r$   r  )operandsr   z]{1,2}>r%  )r/   r'   c              #     K   g }d}d }t          j        | |          D ]\  }}}|t          j        u r|dk    r	|||gg}d}n|dk    r0|t          vr|t
          vr|dz  }|                    |||f           nL|dk    r?|d         d         dk    rt          |d         d<   |r|                    d          V  |d}|||fV  |t          vr|t
          vr|}|r|                    d          V  |d S d S )Nin   r      r>   )	r   get_tokens_unprocessedr   Variabler   r
   appendr   pop)r   textobjectloop_queueobjectloop_token_countprevious_tokenindextokenr(   s           [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/int_fiction.pyr+  z#Inform6Lexer.get_tokens_unprocessed  s      !##-#DTEI$K $K 	' 	'E5%..5D==%*E5$9#: )*&&'!++''E,=,=*a/* ''u(=>>>>)Q..'+A.#5518(+A.* 6.22155555 + 6-/*UE))))G##T(9(9!& 	*"&&q)))))  	* 	* 	* 	* 	*    c                 T    d}t          j        d| t           j                  r|dz  }|S )zWe try to find a keyword which seem relatively common, unfortunately
        there is a decent overlap with Smalltalk keywords otherwise here..r   zorigsourceg?)research
IGNORECASEr/  results     r5  analyse_textzInform6Lexer.analyse_text  s0     9%tR];; 	dNFr6  N)6__name__
__module____qualname____doc__r   urlaliases	filenamesversion_addedr8  	MULTILINEDOTALLflags_name_dash_dquote_squote_newliner   Preprocr   r
   Singler   r   r   Wordr   Labelr   r   PseudoDeclarationr   Charr   EscapeDoubler   FloatHexBinIntegerr,  GlobalFunctionBuiltinr	   ConstantOtherClassr  r+  r=   r6  r5  r   r      s         D
&C$G	IML29$EE
 EGG&HF222X222GOGK  
F 	TN H   '.1
F 	GM""K/f-;G122
F& 	GM""$'5W5g555t /u///:))))48
'F6 	GM""K!>?K(K!AB2h222K@)u)))84;.MUMMM}&:HMdOdj(+eGFOO
7FX 	K!9:$%^^^[-8gn%;)GL!!!
YFh 	K*;'GL!!
iFr 	 '=9GL!! 
sFz 	;'GL!!
{FB 	w*F3G&''
CFN 	GM""+'+++++V[&A@7@@W@@@Xfk6=&+>>H4744444Xfk6=&+>>H'___fm-HI'___fm-?@I%IIIII\6#
F36:v./#5###XXh%=%=vF    Xh 455v?#GH    ((8T]"C"CVL4<!<=U FNSU U U \6#
 4T\6JU 	I e
- 
- 
- \6# U S e- - - \6#  D&!y=
OFJ 	GGGFOO
KFT 	&7&&&6'G'''7v}%!6=1v}%'___fmV4
UFd 	v}%&7&&&6fm$FM"III(III6=Y. . .h . . . . .] CBBBBB]'___fmV4
eF~ 	)g)))6=9FM*FM"'___fmV4	
FL 	GM""DM6*GG
MFV 	GM"";;)DM8,GFOO
WF Fd 	GM""DM(&1GG
eFn 	GM""DJ'GFOO
oFx 	GM""DM6*GFOO
yFD 	#v|V,%
EFJ 	GM""DL&)
KFV 	GM"";;'KACU  $*%9 9 9 i	!
 %g9;*LMW8:('%''4!8!89#Wi8!7,DEgz2/02'2JKw(AB%w,.DFw:< '+LMG%ABW<> 'DFDJ ?@M'
WFh 	GM""DM6*GFOO
iFr 	GM"";'K 6=.1DM"
sFB 	GM"";K(5MG122
CFR 	GM"""78GFOO
SF^ 	GM""3T6BDJ'
_Fh 	GM""K!FGGFOO
iFr 	%^^^[)*G,?HGI
sF| 	GM"";);,o>$g&9:5MG9::
}FN	 	GM""3T6BDJGG	
O	F\	 	GM""; 34K!9:G())	
]	Fh	 	GM"";'k"%^^^['24G())
i	F F Fx	 	GM"";0GFOO
y	FD
 	GM"";';gy1GI
E
FT
 	GM""'___fm-GHGJKK
U
F^
 	GM""'___fm-EFGFOO!
_
Fh
 	v}%GN##
i
Ft
 	GM""U C
 LQR R R f '"'%'''f= 
u
FL 	G)**GG
MFT 	G)**GFOO
UF\ 	GM""U5NNNhNNNP P P GFOO
]Fj 	GM""U FNSU U U f GFOO
kF~ 	GM""K({#U - 6;< < < i	!
 W%24w.!702%w0EFg79/G///,GDJ)7H% +{;;	*>@GEFF3
Ft 	!GM""Jf6#+6 6 67>~ 66H666GFOO
#
uFJ 	GM""K(GFOO
KFT 	GM""; BCG677
UF^ 	GM"";'5MGSTT	
_Fj 	GM""K!CDGFOO
kFx 	GM""'___fm-IJ"%"""K<GZ(	
yF FD 	5MG;<<
EF FFP* * *>    r6  r   c                   n	   e Zd ZdZdZdZddgZddgZdZe	j
        e	j        z  Zej        Zej        Zej        Zd	e d
Zi Zg dZeD ]iZi d eej        d                   ddej         dej        dfgddefdej        dfde dej        df ed          gdde dej        fde dej        dfgddej        dfde de dej        fde dej        dfde de de ded fd!e d"edfd#e dej        fgd$d%e d&e defde dej        d'fd(ed)fd*ed+fdej        dfd,e d-e d. ee  e!e"d/d01          e           fd2e d3e d4e d5ed6fd7e defgd)d8efdej        dfd,e d-e d. ee  e!e"d9d:1          e           df ed          gd+d8efdej        dfd,e d-e d. ee  e!e"d/d;1          e           df ed          gdd<ej        fdej        d=fd>ej        dfgd'd?e dej        fd@ej#        fde dej        dfgd6defdej        dfde dAedBfde dCefdDe dej        df ed          gdBd8efdej        dfdEedFf ed          gdFd8efdej        dfde dGedHf edI          gdHdJe dKe dej        fdJe dLe dej$        fdMe dNe dO e!e"d$P          fde dQe dRefdej        dfgd0d2e dSe dTej        fd2e dUe dVe dej        fd2e dWe dTej        dXfgd; e%d0          dY ee ee           fgd:dZ ee  e!e"d$P          e           fgd[e d\ ee ej&        e           fd[e d] ee e'e ee           d^fd[e d_ ee e'e ee           fd` ee  e!e"d$P          e           fgdaej        fd2e dSe dTej        dfd2e dUe dbej        fd2e dWe dTej        fdcej        fgd2e dSe dTej        fd2e dUe dde dej        fd2e dWe dTej        dXfd2e dee de'fdfe dej&        fdge dh ee e'e           dfdie djefgdkee<   ej        D ]dZ(e(dk    r	 eej        e(                   ee         e(<   e()                    dl          s' e%dm           e%e          gee         e(         dndo<   ekdp Z*dnS )qr   z#
    For Inform 7 source code.
    zInform 7zhttp://inform7.com/inform7i7z*.niz*.i7xr   z\A|(?<=[r;   )+i6t-not-inline+i6t-inline+i6t-use-option+i6-rootr   	+i6t-rootz[^r"   )r   +pz(\|?\s)+r#   z+commentr1   r:   )+main+titling+titling-string)rk  	+heading?rm  r   r$   rl  z.;:|z]{2}|(?<=[\sz])\|[\s)r$   rn  z[.;:]|(?<=[\sz])\|z[|rk  z(?i)[^z:a\[(|z+textr6   z+phrase-definitionz
(?i)\bas\bz+use-optionz(\([z	])(.*?)([z]\)))rh  r   re  )statei6t(z|(?<=[\s;:.z	]))\|\s|[z]{2,}rn  z(?i)[a(|r    )rh  r   r   r+   rf  rg  z[^\[\]]+r0   r   z[^\[z\[.*?\]z]{4}\s+z+documentation-headingz]{1,3}z*(?i)(volume|book|part|chapter|section)\b[^z(?i)documentation\s+z+documentation-heading2z]{4}\sz+documentationr5   z(?i)(z)\s*(chapter|example)\s*:[^z)\s*section\s*:[^z((z)\t.*?[r   ro  z\[]+|[z\[]z)@c( .*?)?([z]|\Z)z)@([z]+|Purpose:)[^z)@p( .*?)?([rj  z(\{)(N)(\})z(\{)(\S[^}]*)?(\})z(\{[z])(![^}]*)(\}?)z])(lines)(:)([^}]*)(\}?)+linesz])([^:}]*)(:?)([^}]*)(\}?)z(\(\+)(.*?)(\+\)|\Z)z[^@]+z]|Purpose:)r"  z]|Purpose:)[^z)@\w*[ r!   z(\{)([z]endlines)(\})z
[^@!{]+?([z]|\Z)|.)+i6trj  rs  _rt  Nr   c                     |                     dd          }|| j        vr | j                            |          | _        n| j        |         | _        t          j        | fi | d S )Nrp  re  )get_all_tokens	__class__process_tokendef_tokensr   __init__)r   optionslevels      r5  r|  zInform7Lexer.__init__  sk    E#455(((>::5AADLL+E2DLD,,G,,,,,r6  )+r>  r?  r@  rA  r   rB  rC  rD  rE  r8  rF  rG  rH  r   rJ  rK  rM  _startr  token_variantsr~  listr   rN  r
   	Multiliner   Headingr   r   rV  r   r   r   r   Interpol
Subheadingr   rO  r   r4  
startswithr|  ra  r6  r5  r   r     s	         D
C$G!IML29$EE"G$H%%%%F FJJJN dM dMV
\0899V
0|,000'/$&V
 d#):6 g'/9;.//V
 "w"""GO4 g'/6: V
" ):60w00H000'/B g'/3DEHhHHgHHgHHH,./'///v>"x"""GO4#V
4 6766(666= g&-9t12m4):6444444+%,E$57 7 78CE EF MfLLLL8LLLdT_`(X((($/5V
N !):6444444+% -F$13 3 34?A A CI	J
 	#OV
b ):6444444+%,E$57 7 78CE EFLN cV
t g/0)73)62uV
~ $$$$fm4V_- g&-8V
H d#):6&e&&&.FG%e%%%t,KxKKK&*IV
Z %):6($0IJ	'[V
f &):6%e%%%t-=>!!	(gV
r I&IIXIII7?[?&??8???#%3v33h333t7+++-4x44x444d;):6sV
D 9f99(999"CfCC%CCxCCC"9f99(999$( EV
T )**+t[!I!IJ UV
\ &+uuT'A'A'A%' '(]V
h 3%222+w~{CCE;%;;;+wT%' '(02 ?%>>>+wT%' '( )+uuT'A'A'A%' '( 7?+9f99(999&*4f44%444goF9f99(999"w' :f99(999"BfBB%BBhBBB"9f99(999$(0f00X000':$$$$gn52E222+w<<fF111148SV
 V
 V
u| "( 	M 	ME#'4(;E(B#C#CF5M% ##C(( M,3GFOOWWU^^+Lue$RaR(	M- - - - -r6  r   c                   .    e Zd ZdZdZdgZdgZdZd	dZdS )
r   z%
    For Inform 6 template code.
    zInform 6 templaterp  z*.i6tr   ri  c                 :    t                               | ||          S )N)r   r+  )r   r/  stacks      r5  r+  z+Inform6TemplateLexer.get_tokens_unprocessed  s    224uEEEr6  N)r  )	r>  r?  r@  rA  r   rC  rD  rE  r+  ra  r6  r5  r   r     sR          DgG	IMF F F F F Fr6  r   c                      e Zd ZdZdZdgZdgZdZdZe	j
        e	j        z  ZdZdZd	Zd
ZdZdZde de dZde de dZdefdZefdZefdZi ddefdedfdefdedfde de d eej         eed           e          d!f ed          d"efd#e fd$ed%fg	d% ed&           e!d'          gd(d)ed*fded+f ed          gdd)efded,fd-ed*fd.ed/fde d0e d eej         eed           e          d1fde de d2 eej         eed           e          dfde de d3 eej"         eed           e          d4f ed          d5e ed6f e!d7          g
d7 ed&          de de d8 eej"         eed           e          d9f e!d:          gd;ded<f ed          d=ed>f e!d?          gd@ded<f ed           e!d*          gdAdBefded,fd-ed*fdCe#j$        fde de d3 eej%         eed           e          f ed          gd edA          d$edDfgdEdFe&j'        d*f edA          d$edGfgd&g  ed          dHed9fdIedJfdedKfdLed*fdMe(j)        d*fdNe(j*        d*fdOe(j+        d*fdPe(j,        d*fdQe&j-        dRfdSe&j.        dTfdUe&j-        dVfdWe&j.        dXfdYe&j/        dZfd[e&j/        d\fd]e&j/        d^fd_e&j/        d`fdae db ee#j$         eed           e#j$                  fdce d ee#j$         eed           e          ddfdee df ee#j$         eed           e#j$                  dgfdhe di ee#j$         eed                     fdje dk ee#j$         eed           e#j$                  dlfdme dk ee# eed           e#j$                  dnfdoej0        d*fdpe#j$        dqfdre#j$        fdse#j$        dtfdue#j$        dvfdwe#j$        d*fdxe#j$        dyfdze#j$        d{fd|e#j$        d}fd~e#j$        dfde#j$        dfde#j$        dfde#j$        dfde#j$        dfde#j$        d*fde#j$        dfde#j1        d*fde#j$        d?fde#j$        dfde#j$        dfdej0        j2        d*fde#j$        dlfde d ee3j4         eed           e3          dfde3j4        fdej0        d*fd6 ed&          eed*f e!d*          gddHedfdIedDfdefded6fded*f ed          ee3d6fde3dfde d ee3j4         eed           e3j4                  fde fg
d ed           e!d*          gdde3d*f ed          gddFe&j'        d:f ed          gddHedfde#j$        df ed6          gi dd-ed*fdedfde#df ed          gdeej"        d*f ed          gddedf ed          gdded6f ed          gdde de d eej"         eed                     d*fde de de d eej5         eed           ej"                  d*fdef ed&          eej"        d*f e!d*          gdde d ee eed                     fdefdedfdedfdedf ed          gdded*f ed          gdde#d*f ed           e!d*          gddedfde3d*f ed          gdde#d*f ed          gddefeej6        df ed          gd ed          de#dyf e!dy          gddefdHedfd.edfeej5        f ed          gd ed          de&j7        d*fgd ed̦           ed          de dΝ ee eed           e#          d6fd5e dϝefeej1        f e!d:          gd.d.ed*fgdde&j'        fde de dԝed*feej        d*f ed          gi ddedf ed          eej5        d*f e!d*          gdde3j4        d*f ed          ee3f e!d*          gddHedfded+f ed          gdded*f ed̦          de#j$        f ed          de efeej"        fgddLed*fde#j$        d*fde#j$        feej5        d*f ed           e!d*          gddedf ed          ded*f e!d*          gddefd)ed*fde#j$        feej1        f ed          gdeej%        d*f ed           e!d*          gddefded*f ed          eej"        fgdde de de8j9        fee8j.        fee8j:        fde defgddQe&j-        dfdSe&j.        dfdUe&j-        dfdWe&j.        dfgdde e&j;        fgdde&j'        fde de de&j'        dfgddej<        fgd edd          d edd          d edd          i d edd          d eddd          d  eddd          d eddd          d eddd          d eddd          d eddd          d eddd          d eddd          d edd          d	 edd          d
 edd          d edd          d edUdd          d edUdd          d edUdd          d edUdd           edWdd           edWdd           edWdd           edWdd           eedd           eedd           eedd           eedd          de&j/        fde&j/        fde&j/        d*fdUe&j/        fgde&j/        fde&j/        fde&j/        d*fdWe&j/        fgde&j/        fde&j/        fdUe&j/        d*fgde&j/        fde&j/        fdWe&j/        d*fgdZ=d Z>d Z?dS (  r   z!
    For TADS 3 source code.
    zTADS 3tads3z*.tzhttps://www.tads.org z(?://(?:[^\\\n]|\\+[\w\W])*$)z(?:/\*(?:[^*]|\*(?!/))*\*/)zM(?:\\(?:[\n\\<>"\'^v bnrt]|u[\da-fA-F]{,4}|x[\da-fA-F]{,2}|[0-3]?[0-7]{1,2}))z(?:[_a-zA-Z]\w*)z(?=\s|\\?>)zD(?:&&|\|\||\+\+|--|\?\?|::|[.,@\[\]~]|(?:[=+\-*/%!&|^]|<<?|>>?>?)=?)z	(?:\\|\s||r>   z(?:\\\n|[^\S\n]|Nc                 4   |rd                     d |D                       }|rdnd}|rt          j        nt          j        }| r	d| d| dnd}d                    | rd	nd|rd
nd          }| d}g }	| r!|	| d|dfd| dt          j        f||fgz  }	n|	                    ||df           |	t          d          d| d|fgz  }	|r0|	                    d| d| dt          j	        d| d|ff           nn|	d| d| | d| dt          j        fdt          j	        d| d|ffdt          j	        d| d|ffd | d| | d| d!t          j	        |ft          d"          gz  }	|	t          d#          d$| d| | d| d%t          j        fd&|fgz  }	|	S )'Nr  c           	          g | ]S}d t          j        |                                           dt          j        |                                           dTS )z(?:r  r>   )r8  escapelowerupper).0cs     r5  
<listcomp>z1Tads3Lexer._make_string_state.<locals>.<listcomp>  s`      3  3  3$% !Ubi		&:&: T TRYqwwyy=Q=Q T T T  3  3  3r6  r   '+|(?!{2}){}{}tdsqt{3,}r$   r   +
s/verbatimz[^\\<&{}r   z\\?<(/|\\\\|(?!z)\\)z
(?=[\s=>])qsz\\?<!([^><\\]|<(?!<)|\\r  z|\\.)*>?z(?i)\\?<listing(?=[\s=>]|\\>)z
qs/listingz(?i)\\?<xmp(?=[\s=>]|\\>)zqs/xmpz\\?<([^\s=><\\z|\\.)*s/entitys/escape	\{([^}<\\|\\.)*\}z[\\&{}<])joinr   rV  rO  formatrU  r-  r   r   Tagr   r  r  )
tripledoubleverbatim_escapecharr4  escaped_quotesr   tag_state_namero  s
             r5  _make_string_statezTads3Lexer._make_string_state  s    	4ww  3  3)1 3  3  3 4 4H'tt4!':V]8>G4t444444Cf4ss"V6LccMM" 	0!!!5&1t.u EE LL$v.///L!!#4###U+
 	
  	 LLNWNN(NNN(V]]]N$KM N N N N ZZZ$ZZZZZZ\c\mn148V///@B-txV+++^<>Z4ZZDZ.ZZ7ZZZ\`\d!
##	 	E 	JVDVVTV>VVGVVVX^Xgh% 
 	

 r6  c                 ^   |rdnd}| rdnd}d                     | rdnd|rdnd          }|rt          j        nt          j        }| r	d	| d
| dnd}| | |dfdt          fdt          t          t          j                  d| fdt          t          t          j                  d| fdt          d| fdt          j        dfd| d| | d| dt          j	        fd| d| | d| dt          j
        ft          d          t          d          t          d          dt          j
        fgS ) Nr   r  r  r  z{}{}qtr  r  r  r  r  r  r5   z
(\s|\\\n)+z	(=)(\\?")zdqs/z	(=)(\\?')zsqs/r   zuqs/z\\?>r$   r  r  r  r  z
([^\s=><\\z|\\.)+r  r  r  z[\\{}&])r  r   rV  rO  r
   r   r   r   r  r  	Attributer   )r  r  r  r  
quantifier
state_namer4  r  s           r5  _make_tag_statezTads3Lexer._make_tag_state:  s   'tt4 &/WWC
__F%:SS6<RCCsSS
!':V]8>G4t444444C#z##UH5D!8K?? J  "8K?? J  "; 3z 3 34dh'VDVVTV>VVGVVVX^XghR4RRDR.RR7RRRTXTbcJL!!J(
 	
r6  c                    | dk    rt           j        n| dk    rt           j        nt           j        }|rdnd}|rdnd}|rt           j        nt           j        }|r	d| d| dnd}| | |dfd	                    |t           j        u rdnd
|           |dft          d          t          d          d| d| | d| dt           j        fd|t           j        u rdndz  |ft          d          d|fgS )Nr   r  r  r  r  r  r  r3   r  z\\?r$   r  r  r  r  r  r  z([^\s"\'<%s{}\\&])+>r  z["\'\s&{<}\\])r   rV  rO  r_  r  r   r  )	
terminatorhost_triplehost_doubler  r4  	host_charhost_quantifier
host_tokenr  s	            r5  _make_attribute_value_statez&Tads3Lexer._make_attribute_value_stateQ  sE   ","4"4","4"4&, 	'1DDT	%09''c&1DV]]v}
(2?	??i????.1 	 -O--z8D^^5FL#8#8CCfjQQFL!!J`I``)`^``g```bhbqr#u/D/Dtt#NJu%
 	
r6  r   u   ﻿z\{r   z;+z(?=(argcount|break|case|catch|continue|default|definingobj|delegated|do|else|for|foreach|finally|goto|if|inherited|invokee|local|nil|new|operator|replaced|return|self|switch|targetobj|targetprop|throw|true|try|while)\b)blockrq  z)(z*)(\()
whitespacerr  )block?/rootmore/parametersmain/parametersz\++z[^\s!"%-(*->@-_a-z{-~]+z(?!\Z)z	main/rootz
main/basic)r$   object-body/no-bracesclassesr   r  r2   r$   )r$   r   r0   z\}r6   )r  r   z?)()block?r  r  z*)(\{)z*)(:))r  r  r   z->|mainzmain/object-bodyz*)(=?))r$   morer  r5   r  )r$   r  z(?=[\[\'"<(:]))r$   r  r   grammar-rules)r$   r  r  zblock/basicz[;:]+z	default\b)r  r  block/embedz>>)
more/embedr  r)   r#   )r$   	more/listr  )r$   
more/inner
main/innerr  r  z\*|\.{3}z(?i)0x[\da-f]+z5(\d+\.(?!\.)\d*|\.\d+)([eE][-+]?\d+)?|\d+[eE][-+]?\d+z0[0-7]+z\d+z""")r$   tdqsz''')r$   tsqsr   )r$   dqsr  )r$   sqszR""")r$   tdqrzR''')r$   tsqrzR")r$   dqrzR')r$   sqrz	(extern)(z+)(object\b)z(function|method)()r$   r  r  r  z	(modify)(z+)(grammar\b))r$   r  r6   r   z(new)(z+(?=(?:function|method)\b))z	(object)(z+)(template\b))r$   templatez	(string)()r$   function-namez>(argcount|definingobj|invokee|replaced|targetobj|targetprop)\bz(break|continue|goto)\b)r$   labelz0(case|extern|if|intrinsic|return|static|while)\bzcatch\b)r$   catchr   )r$   r  r   z(default|do|else|finally|try)\bz(dictionary|property)\b)r$   	constantszenum\b)r$   enumzexport\b)r$   r  z(for|foreach)\b)r$   r  r  z(function|method)\b)r$   r  r  z	grammar\b)r$   r  r   zinherited\b)r$   	inheritedzlocal\b)r$   
more/local
main/localz)(modify|replace|switch|throw|transient)\bznew\b)r$   r   z(nil|true)\bzobject\bz
operator\b)r$   operatorzpropertyset\b)r$   propertysetr  zself\bz
template\bz(__objref|defined)()r$   more/__objrefr  zdelegated\ba*  (__DATE__|__DEBUG|__LINE__|__FILE__|__TADS_MACRO_FORMAT_VERSION|__TADS_SYS_\w*|__TADS_SYSTEM_NAME|__TADS_VERSION_MAJOR|__TADS_VERSION_MINOR|__TADS3|__TIME__|construct|finalize|grammarInfo|grammarTag|lexicalParent|miscVocab|sourceTextGroup|sourceTextGroupName|sourceTextGroupOrder|sourceTextOrder)\bz
more/basic)r  r  z\.{3}z->|\.\.z(?=;)|[:)\]]z\?)r  more/conditionalr  z	(is|not)(z+)(in\b)z[^\s!"%-_a-z{-~]+r  r  z:(?!:)r  r  )r$   r  r  r-   z(in|step)\br  r  r  z[,:]r  z*)(?=:)z+)(z\[+r  z(:)(z*(?=[?=,:)]))z[?\]]+z[:)])r$   multimethod?r   )more/parameterr  r  z(?=[,)])r  zmultimethod\br  moder*   z(error|warn)\br  z\(+)r$   	variablesr  ztoken\br   z\)+zgrammar-tagr  a!  """([^\\"<]|""?(?!")|\\"+|\\.|<(?!<))+("{3,}|<<)|R"""([^\\"]|""?(?!")|\\"+|\\.)+"{3,}|'''([^\\'<]|''?(?!')|\\'+|\\.|<(?!<))+('{3,}|<<)|R'''([^\\']|''?(?!')|\\'+|\\.)+'{3,}|"([^\\"<]|\\.|<(?!<))+("|<<)|R"([^\\"]|\\.)+"|'([^\\'<]|\\.|<(?!<))+('|<<)|R'([^\\']|\\.)+'|([^)\s\\/]|/(?![/*]))+|\)r=   z(\[)(z*)(badness)z|[()]r  z(<<([^>]|>>>|>(?!>))*>>)+z(?=?z*[({])r  r%   )r$   r  r   r  znegate\br  )r  r  r  z(?=;)z->|\?|r   ztransient\br  z[:,]r  r  z,+z
property\br  r  ^z*#(z|[^\n]|(?<=\\)\n)*\n?z\\+\n+z*#?|\n+|([^\S\n]|\\)+r  r  r  r  r  z
\{\{|\}\}|r  z<<\s*(as\s+decreasingly\s+likely\s+outcomes|cycling|else|end|first\s+time|one\s+of|only|or|otherwise|(sticky|(then\s+)?(purely\s+)?at)\s+random|stopping|(then\s+)?(half\s+)?shuffled|\|\|)\s*>>z<<(%(_(z$|\\?.)|[\-+ ,#]|\[\d*\]?)*\d*\.?\d*(z/|\\?.)|\s*((else|otherwise)\s+)?(if|unless)\b)?)r  r  r  r  z'(?i)&(#(x[\da-f]+|\d+)|[a-z][\da-z]*);?TFztdqs/listinglistingztsqs/listingzdqs/listingzsqs/listingztdqs/xmpxmpztsqs/xmpzdqs/xmpzsqs/xmptdqttsqtdqtsqtzdqs/tdqtzdqs/tsqtzdqs/dqtzdqs/sqtz[^\\"]+z\\"*z"{3,}z[^\\']+z\\'*z'{3,}z\\"?z\\'?)zsqs/tdqtzsqs/tsqtzsqs/dqtzsqs/sqtzuqs/tdqtzuqs/tsqtzuqs/dqtzuqs/sqtr  r  r  r  c           	   +     K   d| j          d| j          d}d}t          j        | |fi |D ]\  }}}|dk    r9|t          j        u r*t          j        | d| j          d| j          d|          rd}nr|t          j        u r]|dk    rt          j        | d	|          rd}nCt          j        | d|          r|dz  }n%t          j        | d
|          r|dz  }nt          }|||fV  d S )Nr  z*#*r   ifz+(0|nil)z*$\n?r*  zel(if|se)\bzendif\b)_ws_ppr   r+  r   rN  r8  match)r   r/  kwargsppif_false_levelr3  r4  r(   s           r5  r+  z!Tads3Lexer.get_tokens_unprocessed8  sN     /$+/////-dDCCFCC	& 	&E5%""W_,,HNNt{NNDKNNNPUVV -%&NGO++&!++(r#6#6#6>> ,)*b***e44 ,&!+b///599 ,&!+#E%%%%%#	& 	&r6  c                 >    d}d| v sd| v r|dz  }d| v r	d| v r|dz  }|S )zThis is a rather generic descriptive language without strong
        identifiers. It looks like a 'GameMainDef' has to be present,
        and/or a 'versionInfo' with an 'IFID' field.r   __TADSGameMainDefg?versionInfoIFIDg?ra  r;  s     r5  r=  zTads3Lexer.analyse_textN  sJ     t}44cMF D  Vt^^cMFr6  )@r>  r?  r@  rA  r   rC  rD  rB  rE  r8  rG  rF  rH  _comment_single_comment_multiliner  rI  	_no_quote	_operator_wsr  r  r  r  r
   r   r   r   r\  r   r   r   r   r   r,  r   ReservedrQ  r   r  r   rX  rW  OctrZ  rV  rO  Regexr]  r^  rR  r   rP  r`  	Exceptionr_  r   rN  r  rU  Entityr  r+  r=  ra  r6  r5  r   r     s[         DiGI
 CMI$E6O7%GEI3I
>
>
>);
>
>
>CHHH3EHHHF48' + + + +Z 18 
 
 
 
0 -4
 
 
 
,OtK/K > @DWN '%&&3&&&XdmUU4|%D%D%D!# #BD GL!![!'/k*
O$ 	GL!!GIJJ
%O, 	 ;'K!89GM"""
-O6 	;K)K(; 45'%''C'''XdmUU4|%D%D%D!# #=? (%''3'''XdmUU4|%D%D%D!# #$+- &%%%3%%%XdmUU4|%D%D%D!# #:< GL!!If5G&''%
7O^ 	GL!!&%&&3&&&XdmUU4|%D%D%D!# #$<> GH
_Ol 	K!23GL!!JL G566
mO| 	K!23GL!!GFOO
}OF 	{#K)K(7+,%%%%3%%%Xdj%%L"A"A"A!# #$ GL!!	
GOZ 	GM""./
[Ob 	FOV,GM""45
cOl 	 U
GL!!U
K!9:U
 K!>?U
 K "H I	U
 +v.U
 
F3U
 F\6#U
 V,U
 V^V,U
 V]$45U
 V]$45U
 6=/2U
 6=/2U
  fl$45!U
" fl$45#U
$ FL/2%U
& FL/2'U
* ,#+++Xg&d,(G(G(G&( ()+U
0 /3...Xg&d,(G(G(G!# #EG1U
8 -#,,,Xg&d,(G(G(G&( (>@9U
@ 8s777Xg&d,(G(G(GHHJAU
D .#---Xg&d,(G(G(G&( ()=?EU
J .#---XguuT>>>&( ()BDKU
R O\6#SU
V ()9;LMWU
X AYU
\ )+<=]U
^ )79_U
b 01A6JcU
d ()9"$eU
h (*:;iU
j '*,<=kU
l  !113mU
p $W%502qU
t 7+9;uU
x W-/DEyU
z )13{U
~ :7;KU
B w'):;CU
D g.7EU
F '*,MNGU
H G,.BCIU
J w/,.KU
N +V4OU
P G,.BCQU
T 0C///XhmUU4|%D%D%D   !BDUU
Z X]+[U
^8
 :>vO_U
mOX 	GL!!D&!GFOO
YOb 	K!67K!12{#f-k62GL!!&)HBC'#'''XhmUU4|%D%D%Dm% %& "5)
cO~ 	GL!!GFOO
OH 	&)GFOO
IOR 	FOX.GFOO
SO\ 	K!EF)+ABGFOO
]O Of 	K(;-Wl3GFOO	
gOt 	DM6*GL!!
uO| 	;-GFOO
}OF 	k6*GFOO
GOP 	'%''3'''XdmUU4|%D%D%DEEvO+%++3++5+++Xdj%%L"A"A"Am% %&,. [!GL!!DM6*GFOO

QOf 	'S'''Xk55\#B#B#BCCE$k#;<; 12; :;GFOO
gOx 	$'GFOO
yO@ 	w/GL!!GFOO
AON 	;'Hf%GFOO
OOX 	0GL!!
YO` 	[!DN$9:GL!!
aOj 	GL!!"78G)**
kOt 	[!K/;0DJGL!!
uOB	 	GL!!* ,2<A	
C	OV	 	GHGL!!&c&&&Xk55\#B#B#BGLL %I$$$k2DM"GH	
W	Oj	 	;'
k	Op	 	)6?;(E((C((($7DM6*GL!!	
q	O O O|	 	; <=GL!!DJ'GFOO	
}	OH
 	(-0GL!!!GFOO	
I
OT
 	K!GHK!89GL!!
U
O^
 	tV$GHW-.GL!!"y""K0DM"
_
Or
 	+v.'*F3W-.DJ'GL!!GFOO
s
OB 	k7+GL!!;'GFOO	
CON 	K ;'G,-DM"GL!!
OO\ 	DJ'GL!!GFOO
]Of 	K K(GL!!DM"	
gOv 	F&FF/FFF_gn-!234v444d;
wOH 	V]F+V]F+6=%(6=%(	
IOT 	(w((&-8
UOZ 	8 :@J9 9 9W 9 9 9_CE
[Ol 	7E
mOr 	""4..sOt 	""4//uOv 	!!%..wO O Ox 	!!%//yOz 	**4yAA{O| 	**4	BB}O~ 	))%yAAO@ 	))%	BBAOB 	&&tT599COD 	&&tUE::EOF 	%%eT599GOH 	%%eUE::ION 	d++OOP 	e,,QOR 	ud++SOT 	ue,,UOV 	//dDAAWOX 	//dEBBYOZ 	..tUDAA[O\ 	..tUEBB]O O^ 0/dDAA//dEBB..tUDAA..tUEBB//	4FF//	4GG..y%FF..y%GG &fl#v|V,6< 	
 &fl#v|V,6< 	
 &fl#6<(
 &fl#6<(
UO O OFb& & &,    r6  r   )rA  r8  pygments.lexerr   r   r   r   r   r   r	   pygments.tokenr
   r   r   r   r   r   r   r   r   r   __all__r   r   r   r   ra  r6  r5  <module>r     s    
			                 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (  E E E E E: E E EPF- F- F- F- F-: F- F- F-RF F F F F< F F Fe	 e	 e	 e	 e	 e	 e	 e	 e	 e	r6  