
    ,h                         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y)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j4                  dfd1efd2ej8                  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!jD                  dfdGe dHe dI e#e!jD                  e!jH                  e!jD                        dfdGe dJe dI e#e!jD                  e!jH                  e!jD                        dfd8e dFe!j,                  dKfd8e dFe!jJ                  dLfdMe dNe dOe&jN                  dfdPe&jP                  dfdQe&jR                  dfdRe&jT                  dfdSe dT e#ee      dfdUe dT e#eejV                  jX                        dfdVedWfdXe dT e#eejZ                        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!jH                  fdfe dge!j,                  fdhe!j,                  fdie!jH                  fdje!jH                  fd8e dFe!j,                  dfgdkdle!jH                  fdme dge!jJ                  fdne!jJ                  fdoe!jH                  fdpe dqe dre!jH                  fdpe dse dte due!jH                  fdpe dve dwe!jH                  fd8e dFe!jJ                  dfgdxdye dge!jJ                  fdze!jJ                  fdoe!jH                  fd8e dFe!jJ                  dfgd{ ed      eej`                  df edD      gd| ed      d-efd}edcfeej`                  dcf ed      gi d~ ed      eejV                  jX                  df edD      gd3 ed      eej8                  df ed      gd ed      eejV                  df ed      gdde!jb                  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jd                  dfgd ed      eejZ                  df ed      gd ed      d:edfdefde!jJ                  dxfeejV                  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jd                  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jd                  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!jJ                  df edī      gd ed      d8e dFe!jJ                  df ed      gddle!jH                  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j8                  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jZ                  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!jJ                  dfd8e dedfeedfgdd>ef ed      giZ3d Z4d Z5y)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}nl|dkD  r*|t        vr|t
        vr|dz  }|j                  |||f       n=|dk(  r1|d   d   dk(  rt        |d   d<   |r|j                  d       |rd}|||f |t        vs|t
        vs|} |r|j                  d       |ry y w)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/Resume-Scraper/venv/lib/python3.12/site-packages/pygments/lexers/int_fiction.pyr+  z#Inform6Lexer.get_tokens_unprocessed  s$     !##-#D#DTEI$K 	'E5%.5D=%*E5$9#: )*&'!+'E,=*a/* ''u(=>)Q.'+A.#518(+A.*.22155 +-/*UE))G#T(9!&%	'& "&&q)) s   B&C")C";C"C" C"c                 ^    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  s,     99%tR]];dNF    N)6__name__
__module____qualname____doc__r   urlaliases	filenamesversion_addedr7  	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<   r=  r5  r   r      s    D
&C$G	IMLL299$EE
 EGG&HFzXJc2GOOK 
F 	TNH:R '..1
F 	M"K/f-;12
F& 	M"$'WIgYn5t ug./:y)48
'F6 	M"K!>?K(K!ABhZz2K@ug[)84;.$UG+LM}&:HMMdOdjj(+eFO
7FX 	K!9:$%^[-8gnn%;)L!!
YFh 	K*;'L!
iFr 	 '=9L! 
sFz 	;'L!
{FB 	w**F3&'
CFN 	M"'&	+V[[&A7)4WIR@fkk6==&++>H7)=	4fkk6==&++>H'!_fmm-HI'!_fmm-?@% 7wjI\\6#

F36::v./5'#Xh%=vFwa h 4 45v?#GHwa (8T]]"CVL4<<!<= FNSU \\6#
 4T\\6J 	I e
- \\6#  S e- \\6#  D&!y=
OFJ 	GFO
KFT 	7)2&6G9B'7v}}%!6==1v}}%'!_fmmV4
UFd 	v}}%7)2&6fmm$FMM"
/(=I6==Y
"5hZ @ z.]] 
.
'B]]'!_fmmV4
eF~ 	gYb)6==9FMM*FMM"'!_fmmV4	
FL 	M"DMM6*G
MFV 	M";;)DMM8,FO
WFd 	M"DMM((&1G
eFn 	M"DJJ'FO
oFx 	M"DMM6*FO
yFD 	#v||V,%
EFJ 	M"DLL&)
KFV 	M";;'KAC  $*%9 i	!
 %g9;*LMW8:('%''4!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DJJ ?@M'
WFh 	M"DMM6*FO
iFr 	M";'K 6==.1DMM"
sFB 	M";K(5M12
CFR 	M""78FO
SF^ 	M"3T6BDJJ'
_Fh 	M"K!FGFO
iFr 	%^[)*G,?,?HI
sF| 	M";);,,o>$g&9&9:5M9:
}FN	 	M"3T6BDJJG	
O	F\	 	M"; 34K!9:()	
]	Fh	 	M";'k"%^['24()
i	Fx	 	M";0FO
y	FD
 	M";';gy1I
E
FT
 	M"'!_fmm-GHJK
U
F^
 	M"'!_fmm-EFFO!
_
Fh
 	v}}%N#
i
Ft
 	M" C
 LQR f '"%'f= 
u
FL 	)*G
MFT 	)*FO
UF\ 	M"5(
#hZ~NP FO
]Fj 	M" FNSU f FO
kF~ 	M"K({# - 6;< i	!
 W%24w.!702%w0EFg79#G9B/,GDJJ)7H% +{;;	*>@EF3
Ft 	!M"Jf##+*H67>~~ |H:X6FO
#
uFJ 	M"K(FO
KFT 	M"; BC67
UF^ 	M";'5MST	
_Fj 	M"K!CDFO
kFx 	M"'!_fmm-IJ%	"K<GZ(	
yFD 	5M;<
EFFP*>r=  r   c                   
   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 ]  Zi d eej$                  d         ddej                    dej.                  dfgddefdej2                  dfde dej6                  df ed      gdde dej6                  fde dej6                  dfgddej2                  dfde de dej6                  fde dej6                  dfde de de ded fd!e d"edfd#e dej6                  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j2                  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j2                  dfd,e d-e d. ee  e!e"d9d:1      e       df ed      gd+d8efdej2                  dfd,e d-e d. ee  e!e"d/d;1      e       df ed      gdd<ej2                  fdej2                  d=fd>ej2                  dfgd'd?e dej<                  fd@ejF                  fde dej<                  dfgd6defdej2                  dfde dAedBfde dCefdDe dej6                  df ed      gdBd8efdej2                  dfdEedFf ed      gdFd8efdej2                  dfde dGedHf edI      gdHdJe dKe dej6                  fdJe dLe dejH                  fdMe dNe dO e!e"d$P      fde dQe dRefdej2                  dfgd0d2e dSe dTej.                  fd2e dUe dVe dej.                  fd2e dWe dTej6                  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jL                  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j6                  fdcej.                  fgd2e dSe dTej.                  fd2e dUe dde dej.                  fd2e dWe dTej6                  dXfd2e dee de'fdfe dejL                  fdge dh ee e'e       dfdie djefgdkee<   ej$                  D ]N  Z(e(dk(  r	 eej$                  e(         ee   e(<   e(jS                  dl      r6 e%dm       e%e      gee   e(   dndo P  dp Z*yn)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                     |j                  dd      }|| j                  vr!| j                  j                  |      | _        n| j                  |   | _        t        j                  | fi | y )Nrp  re  )get_all_tokens	__class__process_tokendef_tokensr   __init__)r   optionslevels      r5  r|  zInform7Lexer.__init__  s\    E#45(((>>::5ADL++E2DLD,G,r=  )+r>  r?  r@  rA  r   rB  rC  rD  rE  r7  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  r=  r5  r   r     s    D
C$G!IMLL299$EE""G$$H
"%F FJN dMV
\0089V
|,,-R0'//$&V
 d#)):6gYa'//9;./V
 wir"GOO4gYa'//6: V
" )):6witH:R0'//BgYa'//3DEhZ~gYggYaH,.!'$/v>xj"GOO4#V
4 7)6(26=gYa&--9t12m4)):6yt4+,E$578CEF fX[	8*GLdT_`XJa($/5V
N !)):6yt4+ -F$134?A CI	J
 	#OV
b )):6yt4+,E$578CEFLN cV
t g//0))73))62uV
~ 	$fmm4V__-gYa&--8V
H d#)):6eWI&.FGeWH%t,>xjK&*IV
Z %)):6($0IJ	'[V
f &)):6eWH%t-=>!	(gV
r &!<XJbI7??[&!28*B?##%vhghZs3t7+-xjxj4d;)):6sV
D fX\(59"fXT%xjC"fX\(59$( EV
T )*+t[!IJ UV
\ &+uT'A%'(]V
h % 12+w~~{CE% :;+wT%'(02 % =>+wT%'( )+uT'A%'( 7??+fX\(59&*fXT%4gooFfX\(59"w' fX\(59"fXT%hZrB"fX\(59$(fXWXJa0':z$gnn5E7/2+w<fFz148SV
u| "(( 	ME#'(;(;E(B#CF5M% ##C(,3FOWU^+Lue$Ra(	MdML-r=  r   c                   ,    e Zd ZdZdZdgZdgZdZddZy)	r   z%
    For Inform 6 template code.
    zInform 6 templaterp  z*.i6tr   c                 0    t         j                  | ||      S )N)r   r+  )r   r/  stacks      r5  r+  z+Inform6TemplateLexer.get_tokens_unprocessed  s    224uEEr=  N))ri  )	r>  r?  r@  rA  r   rC  rD  rE  r+  ra  r=  r5  r   r     s'     DgG	IMFr=  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j8                   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j8                   eed       e      d1fde de d2 eej8                   eed       e      dfde de d3 eejD                   eed       e      d4f ed      d5e ed6f e!d7      g
d7 ed&      de de d8 eejD                   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#jH                  fde de d3 eejJ                   eed       e      f ed      gd edA      d$edDfgdEdFe&jN                  d*f edA      d$edGfgd&g  ed      dHed9fdIedJfdedKfdLed*fdMe(jR                  d*fdNe(jT                  d*fdOe(jV                  d*fdPe(jX                  d*fdQe&jZ                  dRfdSe&j\                  dTfdUe&jZ                  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#jH                   eed       e#jH                        fdce d ee#jH                   eed       e      ddfdee df ee#jH                   eed       e#jH                        dgfdhe di ee#jH                   eed             fdje dk ee#jH                   eed       e#jH                        dlfdme dk ee# eed       e#jH                        dnfdoej`                  d*fdpe#jH                  dqfdre#jH                  fdse#jH                  dtfdue#jH                  dvfdwe#jH                  d*fdxe#jH                  dyfdze#jH                  d{fd|e#jH                  d}fd~e#jH                  dfde#jH                  dfde#jH                  dfde#jH                  dfde#jH                  dfde#jH                  d*fde#jH                  dfde#jb                  d*fde#jH                  d?fde#jH                  dfde#jH                  dfdej`                  jd                  d*fde#jH                  dlfde d ee3jh                   eed       e3      dfde3jh                  fdej`                  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e3jh                   eed       e3jh                        fde fg
d ed       e!d*      gdde3d*f ed      gddFe&jN                  d:f ed      gddHedfde#jH                  df ed6      gi dd-ed*fdedfde#df ed      gdeejD                  d*f ed      gddedf ed      gdded6f ed      gdde de d eejD                   eed             d*fde de de d eejj                   eed       ejD                        d*fdef ed&      eejD                  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jl                  df ed      gd ed      de#dyf e!dy      gddefdHedfd.edfeejj                  f ed      gd ed      de&jn                  d*fgd ed̫       ed      de dΝ ee eed       e#      d6fd5e dϝefeejb                  f e!d:      gd.d.ed*fgdde&jN                  fde de dԝed*feej8                  d*f ed      gi ddedf ed      eejj                  d*f e!d*      gdde3jh                  d*f ed      ee3f e!d*      gddHedfded+f ed      gdded*f ed̫      de#jH                  f ed      de efeejD                  fgddLed*fde#jH                  d*fde#jH                  feejj                  d*f ed       e!d*      gddedf ed      ded*f e!d*      gddefd)ed*fde#jH                  feejb                  f ed      gdeejJ                  d*f ed       e!d*      gddefded*f ed      eejD                  fgdde de de8jr                  fee8j\                  fee8jt                  fde defgddQe&jZ                  dfdSe&j\                  dfdUe&jZ                  dfdWe&j\                  dfgdde e&jv                  fgdde&jN                  fde de de&jN                  dfgddejx                  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?y(  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                    |rhdj                  |D cg c]M  }dt        j                  |j                                dt        j                  |j	                                dO c}      }|rdnd}|rt
        j                  nt
        j                  }| r	d| d| d	nd}d
j                  | rdnd|rdnd      }| d}	g }
| r%|
| d|dfd| dt
        j                  f||fgz  }
n|
j                  ||df       |
t        d      d| d|fgz  }
|r0|
j                  d| d| dt        j                  d| d|	ff       nz|
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 c c}w )(Nr  z(?:r  r>   r   '+|(?!{2}){}{}tdsqt{3,}r$   r   +
s/verbatimz[^\\<&{}r   z\\?<(/|\\\\|(?!z)\\)z
(?=[\s=>])qsz\\?<!([^><\\]|<(?!<)|\\z|\\.)*>?z(?i)\\?<listing(?=[\s=>]|\\>)z
qs/listingz(?i)\\?<xmp(?=[\s=>]|\\>)zqs/xmpz\\?<([^\s=><\\z|\\.)*s/entitys/escape	\{([^}<\\|\\.)*\}z[\\&{}<])joinr7  escapelowerupperr   rV  rO  formatrU  r-  r   r   Tagr   r  r  )tripledoubleverbatim_escapeccharr4  escaped_quotesr   tag_state_namero  s              r5  _make_string_statezTads3Lexer._make_string_state  sw   ww)1 3$% #&bii	&:%;1RYYqwwy=Q<RRS T  3 4Ht4!'V]]8>BtfCvV4Cfs"VcM"82F&!5&1tfA.u E LL$v./L!4&#U+
 	
  LL_WIT(:N((Vxr]N$KM N  k$7Gq	QYZ\c\m\mn1488VHJ/@B-txxVHF+^<>"4&D6.9I7)SYZ\`\d\d!
#	 	E 	JD6TF>2B!G9IVX^XgXgh% 
 	

 S 3s   AG/c                 f   |rdnd}| rdnd}d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        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:  sM   t4 &WC
__FS6CsS
!'V]]8>BtfCvV4Czl#UH5D!8K?J< "8K?J< ";$zl 34dhh'D6TF>2B!G9IVX^XgXgh4&D6.1A7)6RTXTbTbcJL!J(
 	
r=  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	j	                  |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  s   ","4","4&,, 	'DT	%0'c&1V]]v}}
(  	{#i[?.1 	 O,-z8D^^5FLL#8CfjQFL!JI;k)^<LAgYV_`bhbqbqr#u/Dt#NJu%
 	
r=  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(  rH|t        j                  u rt        j                  | d| j                    d| j                    d|      rzd}nw|t        j                  u r_|dk(  rt        j                  | d	|      rd}nDt        j                  | d|      r|dz  }n%t        j                  | d
|      r|dz  }nt        }|||f  y w)Nr  z*#*r   ifz+(0|nil)z*$\n?r*  zel(if|se)\bzendif\b)_ws_ppr   r+  r   rN  r7  match)r   r/  kwargsppif_false_levelr3  r4  r(   s           r5  r+  z!Tads3Lexer.get_tokens_unprocessed8  s    $++bQ/--dDCFC	&E5%"W__,HHBt{{m8DKK=NPUV%&NGOO+&!+((rd+#6>)*bT*e4&!+bT/59&!+#E%%#	&s   DD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  s?     t}4cMF D Vt^cMFr=  )@r>  r?  r@  rA  r   rC  rD  rB  rE  r7  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  r=  r5  r   r     s    DiGI
 CMII$E6O7%GEI3I'q);(<A
>C  13E2FaHF48' +Z 18 
0 -4
,OtK/K > @DWN %3%v&dmmU4|%D!#BD L![!'/k*
O$ 	L!IJ
%O, 	 ;'K!89M""
-O6 	;K)K(; 45%C5'dmmU4|%D!#=? %3%w'dmmU4|%D!#$+- %3%u%dmmU4|%D!#:< L!I;f5&'%
7O^ 	L!%3%v&dmmU4|%D!#$<> H
_Ol 	K!23L!JL 56
mO| 	K!23L!FO
}OF 	{#K)K(7++,%3%u%djj%L"A!#$ L!	
GOZ 	M"./
[Ob 	FOOV,M"45
cOl 	 U
L!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
  fll$45!U
" fll$45#U
$ FLL/2%U
& FLL/2'U
* #l+g&&d,(G&&()+U
0 #3%v.g&&d,(G!#EG1U
8 #m,g&&d,(G&&(>@9U
@ se67g&&d,(GHJAU
D #n-g&&d,(G&&()=?EU
J #n-guT>&&()BDKU
R O\\6#SU
V ()9)9;LMWU
X AYU
\ ))+<=]U
^ ))79_U
b 01A1A6JcU
d ()9)9"$eU
h ((*:;iU
j '**,<=kU
l  !1!113mU
p $W%5%502qU
t 7++9;uU
x W--/DEyU
z ))13{U
~ :7;K;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 $C5/hmmU4|%D !BDUU
Z X]]+[U
^8
 :>vO_U
mOX 	L!D&!FO
YOb 	K!67K!12{#f-k62L!&)HBC#h'hmmU4|%Dmm%& "5)
cO~ 	L!FO
OH 	&)FO
IOR 	FOOX.FO
SO\ 	K!EF))+ABFO
]Of 	K(;-Wl3FO	
gOt 	DMM6*L!
uO| 	;-FO
}OF 	k6*FO
GOP 	%3%w'dmmU4|%DEvO%3%s5'+djj%L"Amm%&,. [!L!DMM6*FO

QOf 	SE'k5\#BCE$k#;<; 12; :;FO
gOx 	$'FO
yO@ 	w/L!FO
AON 	;'Hf%FO
OOX 	0L!
YO` 	[!DNN$9:L!
aOj 	L!"78)*
kOt 	[!K/;0DJJL!
uOB	 	L!* ,2<<A	
C	OV	 	HL!cU+&k5\#BGL I;e$k2DMM"H	
W	Oj	 	;'
k	Op	 	)6??;E7!C5($7DMM6*L!	
q	O|	 	; <=L!DJJ'FO	
}	OH
 	(--0L!!FO	
I
OT
 	K!GHK!89L!
U
O^
 	tV$HW--.L!yk"K0DMM"
_
Or
 	+v.'**F3W--.DJJ'L!FO
s
OB 	k7+L!;'FO	
CON 	K ;'G,,-DMM"L!
OO\ 	DJJ'L!FO
]Of 	K K(L!DMM"	
gOv 	&/00EF__gnn-!2!23vh34d;
wOH 	V]]F+V]]F+6==%(6==%(	
IOT 	wi(&--8
UOZ 	8 :@J y DWI N9 9__CE
[Ol 	7E
mOr 	"4.sOt 	"4/uOv 	!%.wOx 	!%/yOz 	*4yA{O| 	*4	B}O~ 	)%yAO@ 	)%	BAOB 	&tT59COD 	&tUE:EOF 	%eT59GOH 	%eUE:ION 	d+OOP 	e,QOR 	ud+SOT 	ue,UOV 	/dDAWOX 	/dEBYOZ 	.tUDA[O\ 	.tUEB]O^ 0dDA/dEB.tUDA.tUEB/	4F/	4G.y%F.y%G &fll#v||V,6<< 	
 &fll#v||V,6<< 	
 &fll#6<<(
 &fll#6<<(
UOFb&,r=  r   )rA  r7  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  r=  r5  <module>r	     sn    
  ( ( (E: EPF-: F-RF< Fe	 e	r=  