
                             S r SSKrSSKJrJrJrJrJrJrJ	r	  SSK
JrJrJrJrJrJrJrJrJrJr  / SQr " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      rg)z
pygments.lexers.int_fiction
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Lexers for interactive fiction languages.

:copyright: Copyright 2006-2023 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                   @   \ rS rSrSrSrSrSS/rS/r\	R                  \	R                  -  rSrS	rS
rSrSr0 SS\< S\< S3\R&                  S4\" S5      /_SS\4S\-  \R,                  4/_S\" S5      S\S4S\S4S\4\" S5      /_S\" S5      S\S4S\< \< S3\S 4S!\-  \4S"\-  \S4/_S#\" S5      S$\S4S%\S4S\S&4S'\-  \4S(\-  \4S)\S4S*\-  \S4S+\R4                  S4S,\4S-\R8                  S.4S/\4\" S5      /_S0S$\S14S2\4S3\-  \S4S,\R>                  4S4\S54\" S#5      /_S6S%\S74S8\S4\" S#5      /_S9S:\S4\" S#5      /_S;S)\S4\" S#5      /_S<S=\R@                  S4\" S;5      /_S>\" S5      S?\< S@\< SA3\!RD                  S4SB\< SC\< SD3\#" \!RD                  \!RH                  \!RD                  5      S4SB\< SE\< SD3\#" \!RD                  \!RH                  \!RD                  5      S4SF\-  \!R,                  SG4SF\-  \!RJ                  SH4SI\< SJ\< SK3\&RN                  S4SL\&RP                  S4SM\&RR                  S4SN\&RT                  S4SO\-  \#" \\5      S4SP\-  \#" \\RV                  RX                  5      S4SQ\SR4SS\-  \#" \\RZ                  5      S4ST\R\                  SU4\/" SVSWSX9\R\                  S4SY\R\                  S4\/" SZS[SWS\9\R\                  S4\/" S]S[SWS\9\R\                  S4\\S4/_S^\" S>5      \" S5      /_S_S`\!RH                  4Sa\-  \!R,                  4Sb\!R,                  4Sc\!RH                  4Sd\!RH                  4SF\-  \!R,                  S4/_SeS`\!RH                  4Sa\-  \!RJ                  4Sb\!RJ                  4Sf\!RH                  4Sg\< Sh\< Si3\!RH                  4Sg\< Sj\< Sk\< Sl3\!RH                  4Sg\< Sm\< Sn3\!RH                  4SF\-  \!RJ                  S4/_SoSp\-  \!RJ                  4Sq\!RJ                  4Sf\!RH                  4SF\-  \!RJ                  S4/_Sr\" S5      \\R`                  S4\" S>5      /_Ss\" S5      S)\4St\S^4\\R`                  S^4\" S5      /_0 Su\" S5      \\RV                  RX                  S4\" S>5      /_S.\" S5      \\R8                  S4\" S5      /_Sv\" S5      \\RV                  S4\" S5      /_SwSx\!Rb                  S4/_Sy\" S5      \\R\                  S4/_S\" S5      ST\4S4\S4S\Sz4\/" S{S[SWS\9\S4S|\S}4S~\S4S\S4S\S4S\#" \\5      4S\S4S\S4S\S4S\S4S\S4S\S4S\S4S\S4S\S4S\S4S\S4S\S4S\S4\\Rd                  S4/_S\" S5      \\RZ                  S4\" S5      /_S\" S5      S4\S4S\4S\!RJ                  So4\\RV                  4/_S\" S5      S4\4S\S4S8\4\" S5      /_S\" S5      S\S4\" S5      /_S\" S5      S\S4\\Rd                  S4/_S\" S5      S$\S4\" S5      /_SS3\-  \4S\R@                  S4\" Su5      /_S\" S5      S4\S74S)\4S\R@                  S4S\R@                  4S8\4\" S5      /_S\" S5      S\S4\\Rd                  4\" S>5      /_S\" S5      St\S4S\S4\" S5      /_S\" S5      S4\S4S\4S3\-  \S>4S\S4\" S5      /_E0 S\" S5      St\S4\" S5      /_S\" S5      S4\S4S)\4S\Su4\" Su5      /_S\" S5      SF\-  \!RJ                  S4\" S5      /_S\" S5      SF\-  \!RJ                  S4\" S5      /_SS`\!RH                  4\" So5      /_S\" S5      \/" SSWSX9\S4S\4S\-  \S4/_S\" S5      \" S>5      /_S\" S5      \" S5      /_S\" S5      \/" SS\< S\< S3SX9\4\" S5      /_S\" S5      \/" SSWSX9\S4\" S5      /_S\" S5      S\S4S\4\/" SSWSX9\S4S\4S\S4S\S4S\S4S\S4S\S4S\-  \S4S\R8                  S.4S\S4S\S4S\S4S\S4\" S5      /_S\" S5      S\S4S\-  \R>                  S4\< S\< S3\RZ                  S4\" S5      /_S\" S5      S$\S4\" S5      /_S\" S5      S4\S4\" S5      /_S\" S5      S4\S4S8\4\" S5      /_S\" S5      S$\S4\" S5      /_S\" S5      SF\-  \!RJ                  S4\\S4/_ESS8\4\" S5      /0Er3S r4S r5Sr6g)r      z2
For Inform 6 source code.

.. versionadded:: 2.0
zInform 6zhttp://inform-fiction.org/inform6i6z*.infz[a-zA-Z_]\w*u	   \-‐-—u   "“”u   '‘’u
   \n  rootz\A(!%[^z]*[])+	directive_whitespace\s+![^%s]*r   \[zmany-valuesz:|(?=;)#pop<)
expression_expressionr&   z(?=sp\b)z(?=[z$0-9#a-zA-Z_]))r#   valuez\+\+|[%s]{1,2}(?!>)|~~?z(?=[()\[%s,?@{:;])r%   \(\))r#   
statementslocalsz>(?=(\s+|(![^%s]*))*[>;])z\+\+|[%s]{2}(?!>),z6&&?|\|\|?|[=~><]?=|[%s]{1,2}>?|\.\.?[&#]?|::|[<>+*/%%]z*(has|hasnt|in|notin|ofclass|or|provides)\bzsp\bz\?~?label?z[@{]_assembly-expression)#pushr&   z[\[\]]z[%s]>;#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])z])(@.{2})([[%s])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\$)(%s)z
(#g\$)(%s)z#[nw]\$)r#   obsolete-dictionary-wordz
(#r\$)(%s)#)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))prefixrL   )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[^~^\\@({%s]+z[({]z@\{[0-9a-fA-F]*\}z@.{2}r<   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[^~^\\({\[\]%s]+z
[~^({\[\]]	_constant	constant*=_global	variable?r=   z\S\w*r?   )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)r7   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[%s]{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)r5   r   r  zprint(_ret)?\b|(?=[%s])z
print-listz\.@opcodez#(?![agrnw]\$|#)zmove\b)r   r5   r&   r  z:(bold|fixed|from|near|off|on|reverse|roman|to|underline)\bzX(a|A|an|address|char|name|number|object|property|string|the|The)\b(?=(\s+|(![^%s]*))*\))z(?=(\s+|(![^z]*))*\))r  r  )r2   r&   )r6   r&   r6   formr   )r#   r  )operandsr   r!  )r.   r&   c              #     #    / nSnS n[         R                  " U U5       H  u  pVnU[        R                  L a  US:X  a  XVU//nSnO|US:  a-  U[        ;  a  U[
        ;  a  US-  nUR                  XVU45        OIUS:X  a=  US   S   S:X  a  [        US   S'   U(       a  UR                  S5      v   U(       a  M  SnXVU4v   U[        ;  d  M  U[
        ;  d  M  UnM     U(       a  UR                  S5      v   U(       a  M  g g 7f)Nin   r      ))	r   get_tokens_unprocessedr   Variabler   r
   appendr   pop)r   textobjectloop_queueobjectloop_token_countprevious_tokenindextokenr'   s           .lib/third_party/pygments/lexers/int_fiction.pyr(  #Inform6Lexer.get_tokens_unprocessed  s     !##-#D#DTEI$KE%.5D=%*5$9#: )*&'!+'E,=*a/* ''u(=>)Q.'+A.#518(+A.*.22155 +*-/*E))G#T(9!&%$K& "&&q)) s   B7D;DD'DDc                 j    Sn[         R                  " SU [         R                  5      (       a  US-  nU$ )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     r2  analyse_textInform6Lexer.analyse_text  s/     99%tR]];;dNF     N)7__name__
__module____qualname____firstlineno____doc__r   urlaliases	filenamesr5  	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:  __static_attributes__r=  r<  r2  r   r      s    D
&C$G	ILL299$EE
 EGG&HF&.97??K 
F 	TN("GNN3
F 	M"K/f-;12
F& 	M"$'*17;T '%/:"U*D&9
'F6 	M"K!>?K(K!AB)H4kB!E)84;.FN}&:HMMdOdjj(+eFO
7FX 	K!9:${M: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" '16;;G3:GDfkk6==&++>H'.8fkk6==&++>Hw/JKw/ABBGO\\6#

F36::v./%x$'?HU"h 4 45v?#GHU"HXt}}$EvN4<<!<= FNSU \\6#
 4T\\6J 	I e
- \\6#  S e- \\6#  D&!y=
OFJ 	GFO
KFT 	v}}%'7fmm$!6==1v}}%wv6
UFd 	v}}%'7fmm$FMM""#)==2 (08E]] 6>xH]]wv6
eF@ 	 7*FMM:FMM*FMM"wv6	
AFN 	M"DMM6*G
OFX 	M";;)DMM8,FO
YFf 	M"DMM((&1G
gFp 	M"DJJ'FO
qFz 	M"DMM6*FO
{FF 	#v||V,%
GFL 	M"DLL&)
MFX 	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'
YFj 	M"DMM6*FO
kFt 	M";'K 6==.1DMM"
uFD 	M";K(5M12
EFT 	M""78FO
UF` 	M"3T6BDJJ'
aFj 	M"K!FGFO
kFt 	{+*G,?,?HI
uF~ 	M";);,,o>$g&9&9:5M9:
FP	 	M"3T6BDJJG	
Q	F^	 	M"; 34K!9:()	
_	Fj	 	M";'k"{G44()
k	Fz	 	M";0FO
{	FF
 	M";';gy1I
G
FV
 	M"w/IJJK
W
F`
 	M"w/GHFO!
a
Fj
 	v}}%N#
k
Fv
 	M" C
 LQR f '"%'f= 
w
FN 	)*G
OFV 	)*FO
WF^ 	M"5AI8TV FO
_Fl 	M" FNSU f FO
mF@ 	M"K({# - 6;< i	!
 W%24w.!702%w0EFg79''17LIDJJ)7H% +{;;	*>@EF3
AFv 	!M"Jf-/789@ -28<dmmFO
#
wFL 	M"K(FO
MFV 	M"; BC67
WF` 	M";'5MST	
aFl 	M"K!CDFO
mFz 	M"w/KLGZ(
{FD 	5M;<
EFFP*>r<  r   c                   
   \ rS rSrSrSrSrSS/rSS/r\	R                  \	R                  -  r\R                  r\R                  r\R                   rS	\-  r0 r/ S
Qr\ GH  r0 S\" \R$                  S   5      _SS\R                   -  \R.                  S4/_SS\4S\R2                  S4S\-  \R6                  S4\" S5      /_SS\-  \R6                  4S\-  \R6                  S4/_SS\R2                  S4S\< S\< S3\R6                  4S\-  \R6                  S4S\< S\< S\< S 3\S!4S"\-  \S4S#\-  \R6                  4/_S$S%\< S&\< S3\4S\-  \R<                  S'4S(\S)4S*\S+4S\R2                  S4S,\< S-\< S.3\" \ \!" \"S/S0S19\ 5      4S2\< S3\< S4\< S53\S64S7\-  \4/_S)S8\4S\R2                  S4S,\< S-\< S.3\" \ \!" \"S9S:S19\ 5      S4\" S5      /_S+S8\4S\R2                  S4S,\< S-\< S.3\" \ \!" \"S/S;S19\ 5      S4\" S5      /_SS<\R2                  4S\R2                  S=4S>\R2                  S4/_S'S?\-  \R<                  4S@\RF                  4S\-  \R<                  S4/_S6S\4S\R2                  S4SA\-  \SB4SC\-  \4SD\-  \R6                  S4\" S5      /_SBS8\4S\R2                  S4SE\SF4\" S5      /_SFS8\4S\R2                  S4SG\-  \SH4\" SI5      /_SHSJ\< SK\< SL3\R6                  4SJ\< SM\< SL3\RH                  4SN\< SO\< SP3\!" \"S$SQ94S\< SR\< SS3\4S\R2                  S4/_S0S2\< ST\< SU3\R.                  4S2\< SV\< SW\< SL3\R.                  4S2\< SX\< SU3\R6                  SY4/_S;\%" S05      SZ\" \ \\ 5      4/_S:S[\" \ \!" \"S$SQ9\ 5      4/_S\\-  \" \ \RL                  \ 5      4S]\-  \" \ \'\ \\ 5      S^4S_\-  \" \ \'\ \\ 5      4S`\" \ \!" \"S$SQ9\ 5      4/Sa\R.                  4S2\< ST\< SU3\R.                  S4S2\< SV\< Sb3\R.                  4S2\< SX\< SU3\R6                  4Sc\R.                  4/S2\< ST\< SU3\R.                  4S2\< SV\< Sd\< SL3\R.                  4S2\< SX\< SU3\R6                  SY4S2\< Se\< S 3\'4Sf\-  \RL                  4Sg\-  \" \ \'\ 5      S4Sh\-  \4/Si.E\\'   \R$                   HW  r(\(S:X  a  M  \" \R$                  \(   5      \\   \('   \(RS                  Sj5      (       a  M>  \%" Sk5      \%" \5      /\\   \(   SlSm& MY     GM     Sn r*Sor+gl)pr   i  z2
For Inform 7 source code.

.. versionadded:: 2.0
zInform 7zhttp://inform7.com/inform7i7z*.niz*.i7xz\A|(?<=[%s]))+i6t-not-inline+i6t-inline+i6t-use-option+i6-rootr   	+i6t-rootz[^%s]*)r   +pz(\|?\s)+r"   z+commentr:   )+main+titling+titling-string)rk  	+heading?rm  z[^%s]+r#   rl  z[^z.;:|z]+r8   z]{2}|(?<=[\sz])\|[\sr9   )r#   rn  z[.;:]|(?<=[\s%s])\|z[|%s]rk  z(?i)[^z:a\[(|z+textr4   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(|%s]r    )rh  r   r   r*   rf  rg  z[^\[\]]+r/   r   z[^\[%s]+z\[.*?\]z
[%s]{4}\s+z+documentation-headingz	[%s]{1,3}z.(?i)(volume|book|part|chapter|section)\b[^%s]*z(?i)documentation\s+z+documentation-heading2z	[%s]{4}\sz+documentationr3   z(?i)(z)\s*(chapter|example)\s*:[^z]*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(\{[%s])(![^}]*)(\}?)z(\{[%s])(lines)(:)([^}]*)(\}?)+linesz (\{[%s])([^:}]*)(:?)([^}]*)(\}?)z(\(\+)(.*?)(\+\)|\Z)z[^@]+z]|Purpose:)r  z]|Purpose:)[^z)@\w*[ r!   z(\{)([%s]endlines)(\})z[^@!{]+?([%s]|\Z)|.)+i6trj  rs  _rt  Nr   c                     UR                  SS5      nX R                  ;  a!  U R                  R                  U5      U l        OU R                  U   U l        [
        R                  " U 40 UD6  g )Nrp  re  )get_all_tokens	__class__process_tokendef_tokensr   __init__)r   optionslevels      r2  r|  Inform7Lexer.__init__  sZ    E#45(((>>::5ADL++E2DLD,G,r<  )r{  ),r>  r?  r@  rA  rB  r   rC  rD  rE  r5  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   r1  
startswithr|  ra  r=  r<  r2  r   r     s    D
C$G!ILL299$EE""G$$Hx'F FJNX
\0089X
\222GOO$&X
 d#)):67"GOO9;./X
 W$goo67"GOOV< X
" )):6$+X6H7"GOO5FG3;WgN,.''14@H$goo6#X
4 *18<dC7"FMM7;t12m4)):6-2E:+,E$578CEF
 '8-.2KA(*D15X
P !)):6-2E:+ -F$134?A CI	J
 	#QX
d )):6-2E:+,E$578CEFLN eX
v g//0))73))62wX
@ w&6V__-7"FMM6:AX
J d#)):6&.FG%t,BXM&*KX
\ %)):6($0IJ	']X
h &)):6%t-=>!	(iX
t ($%,__64:HE##%(.9t7+-'/:DA)):6	uX
H .4h?"395(K".4h?$( IX
X )*+t[!IJ YX
` &+uT'A%'(aX
l *E1+w~~{CE2U:+wT%'(02 5u<+wT%'( )+uT'A%'( 7??+.4h?&*,2E:GOOL.4h?"w' /5h?"28%J".4h?$(%+X6@h&7*U2+w<fF'(2D9WX
u@ "((E#'(;(;E(B#CF5M% ##C((,3FOWU^+Lue$Ra( )C  P-r<  r   c                   2    \ rS rSrSrSrS/rS/rS	S jrSr	g)
r   i  z4
For Inform 6 template code.

.. versionadded:: 2.0
zInform 6 templaterp  z*.i6tc                 .    [         R                  XU5      $ )N)r   r(  )r   r,  stacks      r2  r(  +Inform6TemplateLexer.get_tokens_unprocessed  s    224uEEr<  r=  N))ri  )
r>  r?  r@  rA  rB  r   rD  rE  r(  ra  r=  r<  r2  r   r     s"     DgG	IFr<  r   c                   p   \ rS rSrSrSrS/rS/r\R                  \R                  -  rSrSrSrS	rS
rSrS\< S\< S3rS\< S\< S3rS\4S jr\4S jr\4S jr0 SS\4S\S4S\4S\S4S\< S\< S3\" \R6                  \" \SS9\5      S 4\" S5      S!\4S"\4S#\S$4/	_S$\" S%5      \ " S&5      /_S'S(\S)4S\S*4\" S5      /_SS(\4S\S+4S,\S)4S-\S.4S\< S/\< S3\" \R6                  \" \SS9\5      S04S\< S\< S13\" \R6                  \" \SS9\5      S4S\< S\< S23\" \RB                  \" \SS9\5      S34\" S5      S4\-  \S54\ " S65      /
_S6\" S%5      S\< S\< S73\" \RB                  \" \SS9\5      S84\ " S95      /_S:S\S;4\" S5      S<\S=4\ " S>5      /_S?S\S;4\" S5      \ " S)5      /_S@SA\4S\S+4S,\S)4SB\"RF                  4S\< S\< S23\" \RH                  \" \SS9\5      4\" S5      /_S\" S@5      S#\SC4/_SDSE\%RL                  S)4\" S@5      S#\SF4/_S%/ \" S5      PSG\S84PSH\SI4PS\SJ4PSK\S)4PSL\'RP                  S)4PSM\'RR                  S)4PSN\'RT                  S)4PSO\'RV                  S)4PSP\%RX                  SQ4PSR\%RZ                  SS4PST\%RX                  SU4PSV\%RZ                  SW4PSX\%R\                  SY4PSZ\%R\                  S[4PS\\%R\                  S]4PS^\%R\                  S_4PS`\-  \" \"RF                  \" \SS9\"RF                  5      4PSa\-  \" \"RF                  \" \SS9\5      Sb4PSc\-  \" \"RF                  \" \SS9\"RF                  5      Sd4PSe\-  \" \"RF                  \" \SS95      4PSf\-  \" \"RF                  \" \SS9\"RF                  5      Sg4PSh\-  \" \"\" \SS9\"RF                  5      Si4PSj\R^                  S)4PSk\"RF                  Sl4PSm\"RF                  4PSn\"RF                  So4PSp\"RF                  Sq4PSr\"RF                  S)4PSs\"RF                  St4PSu\"RF                  Sv4PSw\"RF                  Sx4PSy\"RF                  Sz4PS{\"RF                  S|4PS}\"RF                  S~4PS\"RF                  S4PS\"RF                  S4PS\"RF                  S)4PS\"RF                  S4PS\"R`                  S)4PS\"RF                  S>4PS\"RF                  S4PS\"RF                  S4PS\R^                  Rb                  S)4PS\"RF                  Sg4PS\-  \" \2Rf                  \" \SS9\25      S4PS\2Rf                  4PS\R^                  S)4P_S5\" S%5      \\S)4\ " S)5      /_SSG\S4SH\SC4S\4S\S54S\S)4\" S5      \\2S54S\2S4S\-  \" \2Rf                  \" \SS9\2Rf                  5      4S\4/
_S\" S5      \ " S)5      /_SS\2S)4\" S5      /_SSE\%RL                  S94\" S5      /_SSG\Sz4S\"RF                  S4\" S55      /_0 SS,\S)4S\S4S\"S4\" S5      /_S\\RB                  S)4\" S5      /_SS\S4\" S5      /_SS\S54\" S5      /_SS\< S\< S3\" \RB                  \" \SS95      S)4S\< S\< S\< S3\" \Rh                  \" \SS9\RB                  5      S)4S\4\" S%5      \\RB                  S)4\ " S)5      /_SS\-  \" \\" \SS95      4S\4S\S4S\S4S\S4\" S5      /_SS\S)4\" S5      /_SS\"S)4\" S5      \ " S)5      /_SS\S4S\2S)4\" S5      /_SS\"S)4\" S5      /_SS\4\\Rj                  S4\" S5      /_S\" S5      S\"St4\ " St5      /_SS\4SG\S4S-\S4\\Rh                  4\" S5      /_S\" S5      S\%Rl                  S)4/_S\" S5      \" S5      S\-  \" \\" \SS9\"5      S54S\-  \4\\R`                  4\ " S95      /_S-S-\S)4/_SS\%RL                  4S\< S\< S3\S)4\\R6                  S)4\" S5      /_E0 SS\S4\" S5      \\Rh                  S)4\ " S)5      /_SS\2Rf                  S)4\" S5      \\24\ " S)5      /_SSG\S4S\S*4\" S5      /_SS\S)4\" S5      S\"RF                  4\" S5      S\-  \4\\RB                  4/_SSK\S)4S\"RF                  S)4S\"RF                  4\\Rh                  S)4\" S5      \ " S)5      /_SS\S4\" S5      S\S)4\ " S)5      /_SS\4S(\S)4S\"RF                  4\\R`                  4\" S5      /_S\\RH                  S)4\" S5      \ " S)5      /_SS\4S\S)4\" S5      \\RB                  4/_SS\< S\< S3\7Rp                  4\\7RZ                  4\\7Rr                  4S\-  \4/_SSP\%RX                  S4SR\%RZ                  S4ST\%RX                  S4SV\%RZ                  S4/_SS\-  \%Rt                  4/_SS\%RL                  4S\< S\< S3\%RL                  S4/_SS\Rv                  4/_S\" SS5      _S\" SS5      _S\" SS5      _E0 S\" SS5      _S\" SSS5      _S\" SSS5      _S\" SSS5      _S\" SSS5      _S\" SSS5      _S\" SSS5      _S\" SSS5      _S\" SSS5      _S\" SS5      _GS \" SS5      _GS\" SS5      _GS\" SS5      _GS\" STSS5      _GS\" STSS5      _GS\" STSS5      _GS\" STSS5      _E\" SVSS5      \" SVSS5      \" SVSS5      \" SVSS5      \" \SS5      \" \SS5      \" \SS5      \" \SS5      GS\%R\                  4GS\%R\                  4GS	\%R\                  S)4ST\%R\                  4/GS
\%R\                  4GS\%R\                  4GS\%R\                  S)4SV\%R\                  4/GS\%R\                  4GS\%R\                  4ST\%R\                  S)4/GS
\%R\                  4GS\%R\                  4SV\%R\                  S)4/GS.Er<GS r=GS r>GSr?g(  r   i  z
For TADS 3 source code.
zTADS 3tads3z*.tz(?://(?:[^\\\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                 J   U(       ao  SR                  U Vs/ s HR  nS[        R                  " UR                  5       5      < S[        R                  " UR	                  5       5      < S3PMT     sn5      nU(       a  SOSnU(       a  [
        R                  O[
        R                  nU (       a  SU< SU< S	3OSnU (       a  S
OS< U(       a  SOS< 3nSU-  n	/ n
U (       a#  U
SU-  US4SU-  [
        R                  4XV4/-  n
OU
R                  XVS45        U
[        S5      SU-  U4/-  n
U(       a2  U
R                  SU< SU< S3[        R                  SSU-  U	445        OU
SU< SU< U< SU< S3[        R                  4S[        R                  SSU-  U	44S[        R                  SSU-  U	44SU< SU< U< SU< S3[        R                  U	4[        S 5      /-  n
U
[        S!5      S"U< SU< U< SU< S#3[
        R                  4S$U4/-  n
U
$ s  snf )%N z(?:r  r'  r   '+|(?!{2})tdsz%sqtz%s{3,}r#   z\\%s+
s/verbatimz[^\\<&{}%s]+z\\?<(/|\\\\|(?!z)\\)z
(?=[\s=>])z%sqsz\\?<!([^><\\]|<(?!<)|\\z|\\.)*>?z(?i)\\?<listing(?=[\s=>]|\\>)z%sqs/listingz(?i)\\?<xmp(?=[\s=>]|\\>)z%sqs/xmpz\\?<([^\s=><\\z|\\.)*s/entitys/escape	\{([^}<\\|\\.)*\}z[\\&{}<])joinr5  escapelowerupperr   rV  rO  rU  r*  r   r   Tagr   r  r  )tripledoubleverbatim_escapeccharr1  escaped_quotesr   tag_state_namero  s              r2  _make_string_stateTads3Lexer._make_string_state  s&   ww)1 3)1A 02yy/C/1yy/C!E)1 3 4H t4!'V]]<BT48"(3b0#S2HI&T!5&1D&--0 E LL$v./L!t#U+
 	
  LL"H.((VVf_n$MO P ng78?8I8IK1488.61>BD-txx*v-~>@ ng78<! 
# E 	JD.'34:OOE% 	
 	
 ] 3s   AH c                    U(       a  SOSnU (       a  SOSnU (       a  SOS< U(       a  SOS< S3nU(       a  [         R                  O[         R                  nU (       a  S	U< S
U< S3OSnU< U< 3US4S[        4S[	        [
        [         R                  5      SU-  4S[	        [
        [         R                  5      SU-  4S[
        SU-  4S[        R                  S4SU< SU< U< SU< S3[         R                  4SU< SU< U< SU< S3[        R                  4[        S5      [        S5      [        S5      S[        R                  4/$ ) Nr   r  {3,}r  r  r  r  qtr  r  r  r3   z
(\s|\\\n)+z	(=)(\\?")zdqs/%sz	(=)(\\?')zsqs/%sr   zuqs/%sz\\?>r#   r  r  r  r  z
([^\s=><\\z|\\.)+r  r  r  z[\\{}&])r   rV  rO  r
   r   r   r   r  r  	Attributer   )r  r  r  r  
quantifier
state_namer1  r  s           r2  _make_tag_stateTads3Lexer._make_tag_stateB  s   t4 &WC
(.B!6v38NO
!'V]]<BT48j)5(;D!8K?
"$8K?
"$;: 56dhh'D.'34:OOE D.'348NNDJL!J(!
 	
r<  c                 ,   U S:X  a  [         R                  O%U S:X  a  [         R                  O[         R                  nU(       a  SOSnU(       a  SOSnU(       a  [         R                  O[         R                  nU(       a  SU< SU< S3OSnU< U< 3US4U[         R                  L a  SOS	< U < 3US
4[	        S5      [	        S5      SU< SU< U< SU< S3[         R
                  4SU[         R                  L a  SOS-  U4[	        S5      SU4/$ )Nr   r  r  r  r  r  r  r1   z\\?r#   r  r  r  r  r  r  z([^\s"\'<%s{}\\&])+>r  z["\'\s&{<}\\])r   rV  rO  r_  r   r  )	
terminatorhost_triplehost_doubler  r1  	host_charhost_quantifier
host_tokenr  s	            r2  _make_attribute_value_state&Tads3Lexer._make_attribute_value_state[  s    ","4","4&,, 	'DT	%0'c&1V]]v}}
( /8C.1 	 "?3ZJ$4&@*MFL!JNG=>DooO#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  r0   r#   )r#   r   r/   z\}r4   )r  r   z?)()block?r  r  z*)(\{)z*)(:))r  r  r   z->|%smainzmain/object-bodyz*)(=?))r#   morer  r3   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)(%s+)(object\b)z(function|method)(%s*)(\())r#   r  r  r  z(modify)(%s+)(grammar\b))r#   r  r4   r   z#(new)(%s+(?=(?:function|method)\b))z(object)(%s+)(template\b))r#   templatez(string)(%s+)(template\b))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)(%s*)(\())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)(%s+)(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(:)(%s*(?=[?=,:)]))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(\[)(%s*)(badness)z
->|%s|[()]r  z(<<([^>]|>>>|>(?!>))*>>)+z(?=?z*[({])r  r$   )r#   r  r   r  znegate\br  )r  r  r  z(?=;)z->|\?|%sr   ztransient\br  z[:,]r  r  z,+z
property\br  r  ^z*#(z|[^\n]|(?<=\\)\n)*\n?z\\+\n+%s*#?|\n+|([^\S\n]|\\)+r  r  r  r  r  z\{\{|\}\}|%sr  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           	   +   b  #    SU R                   < SU R                   < S3nSn[        R                  " X40 UD6 H  u  pVnUS:X  aR  U[        R                  L a>  [
        R                  " U< SU R                   < SU R                   < S3U5      (       a  SnOU[        R                  L ar  US:X  a"  [
        R                  " S	U-  U5      (       a  SnOP[
        R                  " S
U-  U5      (       a  US-  nO+[
        R                  " SU-  U5      (       a  US-  nO[        nXVU4v   M     g 7f)Nr  z*#*r   ifz+(0|nil)z*$\n?r&  z%sel(if|se)\bz%sifz	%sendif\b)_ws_ppr   r(  r   rN  r5  match)r   r,  kwargsppif_false_levelr0  r1  r'   s           r2  r(  !Tads3Lexer.get_tokens_unprocessedC  s     KK5--dCFC  E%"W__,HH $++t{{<=BD D%&NGOO+&!+((#3b#8%@@)*'B,66&!+,"3U;;&!+#E%%# Ds   D-D/c                 N    SnSU ;   d  SU ;   a  US-  nSU ;   a  SU ;   a  US-  nU$ )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?r=  r8  s     r2  r:  Tads3Lexer.analyse_textZ  s?     t}4cMF D Vt^cMFr<  r=  )@r>  r?  r@  rA  rB  r   rD  rE  r5  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=  r<  r2  r   r     s    DiGIII$E6O7%GEI3I /1C
DC*9;MNF48' 0d 18 
4 -4
.OtK/K > @DWN "',dmmU4|%D!#BD L![!'/k*
O$ 	L!IJ
%O, 	 ;'K!89M""
-O6 	;K)K(; 45"'-dmmU4|%D!#=? "',dmmU4|%D!#$+- !&s+dmmU4|%D!#:< L!	!;7&'%
7O^ 	L!!&,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++, %s+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
* (#-g&&d,(G&&()+U
0 +S0g&&d,(G!#EG1U
8 )3.g&&d,(G&&(>@9U
@ 4c9g&&d,(GHJAU
D *C/g&&d,(G&&()=?EU
J *C/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 ,c1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#c)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 	"'-dmmU4|%DEvO!&U3djj%L"Amm%&,. [!L!DMM6*FO

QOf 	#c)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!"S(k5\#BGL Y&4DMM"H	
W	Oj	 	;'
k	Op	 	)6??;"'-tV<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!9$k2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 	179KL__gnn-!2!23-6=
wOH 	V]]F+V]]F+6==%(6==%(	
IOT 	w&6
UOZ 	8 :@J
 =DWN__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   )rB  r5  pygments.lexerr   r   r   r   r   r   r	   pygments.tokenr
   r   r   r   r   r   r   r   r   r   __all__r   r   r   r   r=  r<  r2  <module>r     sn    
  ( ( (F: FRI-: I-XF< Fl	 l	r<  