
    L&i                         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-2022 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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z  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z  efd!ez  edfgd" ed          d#edfd$edfded%fd&ez  efd'ez  efd(edfd)ez  edfd*ej        dfd+efd,ej        d-fd.ef ed          gd/d#ed0fd1efd2ez  edfd+ej        fd3ed4f ed"          gd5d$ed6fd7edf ed"          gd8d9edf ed"          gd:d(edf ed"          gd;d<ej        df ed:          gd= ed          d>ed?ed@e j!        dfdAedBedC e"e j!        e j#        e j!                  dfdAedDedC e"e j!        e j#        e j!                  dfdEez  e j        dFfdEez  e j$        dGfdHedIedJe%j&        dfdKe%j'        dfdLe%j(        dfdMe%j)        dfdNez   e"ee          dfdOez   e"eej*        j+                  dfdPedQfdRez   e"eej,                  dfdSej-        dTf e.dUdVW          ej-        dfdXej-        df e.dYdZdV[          ej-        df e.d\dZdV[          ej-        dfeedfgd] ed=           ed          gd^d_e j#        fd`ez  e j        fdae j        fdbe j#        fdce j#        fdEez  e j        dfgddd_e j#        fd`ez  e j$        fdae j$        fdee j#        fdfedgedhe j#        fdfediedjedke j#        fdfedledme j#        fdEez  e j$        dfgdndoez  e j$        fdpe j$        fdee j#        fdEez  e j$        dfgdq ed          eej/        df ed=          gdr ed          d(efdsed]feej/        d]f ed          gi dt ed          eej*        j+        df ed=          gd- ed          eej        df ed          gdu ed          eej*        df ed          gdvdwe j0        dfgdx ed          eej-        dfgd ed          dSefd3edfdedyf e.dzdZdV[          edfd{ed|fd}ed~fde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j1        dfgd ed          eej,        df ed          gd ed          d3edfdefde j$        dnfeej*        fgd ed          d3efdedfd7ef ed          gd ed          dedf ed          gd ed          dedfeej1        dfgd ed          d#edf ed          gdd2ez  efdej        df edt          gd ed          d3ed6fd(efdej        dfdej        fd7ef ed          gd ed          dedfeej1        f ed=          gd ed          dsedfdedf ed          gd ed          d3edfdefd2ez  ed=fdedf ed          gi d ed          dsedf ed          gd ed          d3edfd(efdedtf edt          gd ed          dEez  e j$        df ed          gd ed          dEez  e j$        df ed          gdd_e j#        f edn          gd ed           e.ddVW          edfdefdez  edfgd ed           ed=          gd ed           ed          gd ed           e.ddededƝW          ef ed          gd ed           e.ddVW          edf ed          gd ed          dedfdef e.ddVW          edfdefdedfdedfdedfdedfdedfdez  edfdej        d-fdedfdedfdedfdedf edަ          gd ed          dedfdez  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          d3edf ed          gd ed          d3edfd7ef ed          gd ed          d#edf ed          gd ed          dEez  e j$        dfeedfgdd7ef ed          giZ2d Z3d Z4dS )r   z>
    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))prefixrK   )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)r6   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)r4   r   r  zprint(_ret)?\b|(?=[%s])z
print-listz\.@opcodez#(?![agrnw]\$|#)zmove\b)r   r4   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  )r1   r%   )r5   r%   r5   formr  )r"   r  )operandsr   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   get_tokens_unprocessedr   Variabler   r
   appendr   pop)r   textobjectloop_queueobjectloop_token_countprevious_tokenindextokenr&   s           h/home/geonatureadmin/si_en_reseau/tutos/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     r1  analyse_textzInform6Lexer.analyse_text  s0     9%tR];; 	dNFr2  N)5__name__
__module____qualname____doc__r   urlaliases	filenamesr4  	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'  r9   r2  r1  r   r      s         D
&C$G	IL29$EE
 EGG&HF&.hh97?GK  
F 	TN("GN3
F 	GM""K/f-;G122
F& 	GM""$''*1'777;T '%/:"U*D&9
'F6 	GM""K!>?K(K!AB)H4kB!E)84;.FN}&:HMdOdj(+eGFOO
7FX 	K!9:${M: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""" '16;GG3:77GGGDXfk6=&+>>H H'.ww8Xfk6=&+>>Hw/JKw/ABBBG%%O\6#
F36:v./%xx$'?'?HU"Xh 455v?#GHU"HHXt}$E$EvN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 	v}%'7fm$!6=1v}%wv6
UFd 	v}%'7fm$FM""hh"#)=2 2 (0xx888E]  6>XXxxxH]wv6
eF@ 	 7*FM:FM*FM"wv6	
AFN 	GM""DM6*GG
OFX 	GM"";;)DM8,GFOO
YF Ff 	GM""DM(&1GG
gFp 	GM""DJ'GFOO
qFz 	GM""DM6*GFOO
{FF 	#v|V,%
GFL 	GM""DL&)
MFX 	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'
YFj 	GM""DM6*GFOO
kFt 	GM"";'K 6=.1DM"
uFD 	GM"";K(5MG122
EFT 	GM"""78GFOO
UF` 	GM""3T6BDJ'
aFj 	GM""K!FGGFOO
kFt 	{+*G,?HGI
uF~ 	GM"";);,o>$g&9:5MG9::
FP	 	GM""3T6BDJGG	
Q	F^	 	GM""; 34K!9:G())	
_	Fj	 	GM"";'k"{G44G())
k	F F Fz	 	GM"";0GFOO
{	FF
 	GM"";';gy1GI
G
FV
 	GM""w/IJGJKK
W
F`
 	GM""w/GHGFOO!
a
Fj
 	v}%GN##
k
Fv
 	GM""U C
 LQR R R f '"%'f= 
w
FN 	G)**GG
OFV 	G)**GFOO
WF^ 	GM""U55AI888TV V V GFOO
_Fl 	GM""U FNSU U U f GFOO
mF@ 	GM""K({#U - 6;< < < i	!
 W%24w.!702%w0EFg79''17LIDJ)7H% +{;;	*>@GEFF3
AFv 	!GM""Jf-/789@ -2EE888<dmGFOO
#
wFL 	GM""K(GFOO
MFV 	GM""; BCG677
WF` 	GM"";'5MGSTT	
aFl 	GM""K!CDGFOO
mFz 	GM""w/KLGZ(
{F FD 	5MG;<<
EF FFP* * *>    r2  r   c                   >	   e Zd ZdZdZdZddgZddgZej	        ej
        z  Zej        Zej        Zej        Zdez  Zi Zg d	ZeD ]TZi d
 eej        d                   ddej        z  ej        dfgddefdej        dfdez  ej        df ed          gddez  ej        fdez  ej        dfgddej        dfdededej        fdez  ej        dfdedededed fd!ez  edfd"ez  ej        fgd#d$ed%edefdez  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.d/0          e          fd1ed2ed3ed4ed5fd6ez  efgd(d7efdej        dfd+ed,ed- ee e e!d8d90          e          df ed          gd*d7efdej        dfd+ed,ed- ee e e!d.d:0          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z  ej        fd?ej"        fdez  ej        dfgd5defdej        dfd@ez  edAfdBez  efdCez  ej        df ed          gdAd7efdej        dfdDedEf ed          gdEd7efdej        dfdFez  edGf edH          gdGdIedJedKej        fdIedLedKej#        fdMedNedO e e!d#P          fdedQedRefdej        dfgd/d1edSedTej        fd1edUedVedKej        fd1edWedTej        dXfgd: e$d/          dY eeee          fgd9dZ ee e e!d#P          e          fgd[ez   eeej%        e          fd\ez   eee&eee          d]fd^ez   eee&eee          fd_ ee e e!d#P          e          fgd`ej        fd1edSedTej        dfd1edUedaej        fd1edWedTej        fdbej        fgd1edSedTej        fd1edUedcedKej        fd1edWedTej        dXfd1eddede&fdeez  ej%        fdfez   eee&e          dfdgez  efgdhee<   ej        D ]dZ'e'dk    r	 eej        e'                   ee         e'<   e'(                    di          s' e$dj           e$e          gee         e'         dkdl<   eVdm Z)dkS )nr   z>
    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+commentr9   )+main+titling+titling-string)rf  	+heading?rh  z[^%s]+r"   rg  z[^z.;:|z]+r7   z]{2}|(?<=[\sz])\|[\sr8   )r"   ri  z[.;:]|(?<=[\s%s])\|z[|%s]rf  z(?i)[^z:a\[(|z+textr3   z+phrase-definitionz
(?i)\bas\bz+use-optionz(\([z	])(.*?)([z]\)))rc  r   r`  )statei6t(z|(?<=[\s;:.z	]))\|\s|[z]{2,}ri  z(?i)[a(|%s]r   )rc  r   r   r)   ra  rb  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+documentationr2   z(?i)(z)\s*(chapter|example)\s*:[^z]*z)\s*section\s*:[^z((z)\t.*?[r   rj  z\[]+|[z\[]z)@c( .*?)?([z]|\Z)z)@([z]+|Purpose:)[^z)@p( .*?)?([re  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)|.)+i6tre  rn  _ro  Nr   c                     |                     dd          }|| j        vr | j                            |          | _        n| j        |         | _        t          j        | fi | d S )Nrk  r`  )get_all_tokens	__class__process_tokendef_tokensr   __init__)r   optionslevels      r1  rw  zInform7Lexer.__init__  sk    E#455(((>::5AADLL+E2DLD,,G,,,,,r2  )*r:  r;  r<  r=  r   r>  r?  r@  r4  rA  rB  rC  r   rE  rF  rH  _startr
  token_variantsry  listr   rI  r
   	Multiliner   Headingr   r   rQ  r   r   r   r   Interpol
Subheadingr   rJ  r   r0  
startswithrw  r\  r2  r1  r   r     s<	         D
C$G!IL29$EE"G$Hx'F FJJJN fM fMX
\0899X
\22GO$&X
 d#):67"GO9;.//X
 W$go67"GOV< X
" ):66$+GGXXX6H7"GO5FGG3;88WWWgggN,.''14@H$go6#X
4 G*1''888<dC7"FM7;t12m4):66-2UUEEE:+%,E$57 7 78CE EF F
 &&'''888-.2KA(*D15X
P !):66-2UUEEE:+% -F$13 3 34?A A CI	J
 	#QX
d ):66-2UUEEE:+%,E$57 7 78CE EFLN eX
v g/0)73)62wX
@ w&6V_-7"FM6:AX
J d#):6&.FG%t,BXM&*KX
\ %):6($0IJ	']X
h &):6%t-=>!!	(iX
t &&((($%,_6 64:FFHHHE#% %(.9t7+++- -'/xx:DA):6	uX
H .4ffhhh?" "3966555(((K" ".4ffhhh?$( IX
X )**+t[!I!IJ YX
` &+uuT'A'A'A%' '(aX
l *E1+w~{CCE2U:+wT%' '(02 5u<+wT%' '( )+uuT'A'A'A%' '( 7?++.4ffhhh?&* *,2FFEEE:GOLL.4ffhhh?"w'  /5ffhhh?" "28&&%%%J" ".4ffhhh?$( (%+VVXXX6@h&7*U2+w<<fF'(2D9WX
 X
 X
u@ "( 	M 	ME#'4(;E(B#C#CF5M% ##C(( M,3GFOOWWU^^+Lue$RaR(	M- - - - -r2  r   c                   *    e Zd ZdZdZdgZdgZddZdS )	r   z@
    For Inform 6 template code.

    .. versionadded:: 2.0
    zInform 6 templaterk  z*.i6trd  c                 :    t                               | ||          S )N)r   r'  )r   r+  stacks      r1  r'  z+Inform6TemplateLexer.get_tokens_unprocessed  s    224uEEEr2  N)r  )r:  r;  r<  r=  r   r?  r@  r'  r\  r2  r1  r   r     sM          DgG	IF F F F F Fr2  r   c                   F   e Zd ZdZdZdgZdg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d.ed eej         eed          e          d/fdeded0 eej         eed          e          dfdeded1 eej          eed          e          d2f ed          d3ez  ed4f ed5          g
d5 ed$          deded6 eej          eed          e          d7f ed8          gd9ded:f ed          d;ed<f ed=          gd>ded:f ed           ed(          gd?d@efded*fd+ed(fdAe!j"        fdeded1 eej#         eed          e          f ed          gd ed?          d"edBfgdCdDe$j%        d(f ed?          d"edEfgd$g  ed          dFed7fdGedHfdedIfdJed(fdKe&j'        d(fdLe&j(        d(fdMe&j)        d(fdNe&j*        d(fdOe$j+        dPf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z   ee!j"         eed          e!j"                  fd`ez   ee!j"         eed          e          dafdbez   ee!j"         eed          e!j"                  dcfddez   ee!j"         eed                    fdeez   ee!j"         eed          e!j"                  dffdgez   ee! eed          e!j"                  dhfdiej.        d(fdje!j"        dkfdle!j"        fdme!j"        dnfdoe!j"        dpfdqe!j"        d(fdre!j"        dsfdte!j"        dufdve!j"        dwfdxe!j"        dyfdze!j"        d{fd|e!j"        d}fd~e!j"        dfde!j"        dfde!j"        d(fde!j"        dfde!j/        d(fde!j"        d=fde!j"        dfde!j"        dfdej.        j0        d(fde!j"        dffdez   ee1j2         eed          e1          dfde1j2        fdej.        d(fd4 ed$          eed(f ed(          gddFedfdGedBfdefded4fded(f ed          ee1d4fde1dfdez   ee1j2         eed          e1j2                  fdefg
d ed           ed(          gdde1d(f ed          gddDe$j%        d8f ed          gddFedyfde!j"        df ed4          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d4f ed          gddeded eej          eed                    d(fdededed eej3         eed          ej                   d(fdef ed$          eej         d(f ed(          gddez   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de1d(f ed          gdde!d(f ed          gddefeej4        df ed          gd ed          de!dsf eds          gddefdFedfd,edfeej3        f ed          gd ed          de$j5        d(fgd edĦ           ed          dez   ee eed          e!          d4fdez  efeej/        f ed8          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j3        d(f ed(          gdde1j2        d(f ed          ee1f ed(          gddFedfded)f ed          gdded(f edĦ          d~e!j"        f ed          dez  efeej         fgddJed(fde!j"        d(fde!j"        feej3        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j/        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e6j7        fee6j,        fee6j8        fdez  efgddOe$j+        dfdQe$j,        dfdSe$j+        dfdUe$j,        dfgddez  e$j9        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ddd          d eddd          d eddd          d eddd          d edd          d edd          d  edd          d edd          d edSdd          d edSdd          d edSdd          d edSdd           edUdd           edUdd           edUdd           edUdd           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dSe$j-        fg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dSe$j-        d(fgd	e$j-        fde$j-        fdUe$j-        d(fgdZ;d Z<d Z=dS (  r   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                    |rd                     d |D                       }|rdnd}|rt          j        nt          j        }| r	d|d|dnd}| rdnd|rd	nd
}d|z  }g }	| r |	d|z  |dfd|z  t          j        f||fgz  }	n|	                    ||df           |	t          d          d|z  |fgz  }	|r0|	                    d|d|dt          j        dd|z  |ff           nn|	d|d||d|dt          j
        fdt          j        dd|z  |ffdt          j        dd|z  |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 )$N c           	          g | ]S}d t          j        |                                          dt          j        |                                          dTS )z(?:r  r&  )r4  escapelowerupper).0cs     r1  
<listcomp>z1Tads3Lexer._make_string_state.<locals>.<listcomp>  sc      3  3  3$%A 02y/C/C/C/C/1y/C/C/C/C!E  3  3  3r2  r   '+|(?!{2})tdsz%sqtz%s{3,}r"   z\\%s+
s/verbatimz[^\\<&{}%s]+z\\?<(/|\\\\|(?!z)\\)z
(?=[\s=>])z%sqsz\\?<!([^><\\]|<(?!<)|\\r  z|\\.)*>?z(?i)\\?<listing(?=[\s=>]|\\>)z%sqs/listingz(?i)\\?<xmp(?=[\s=>]|\\>)z%sqs/xmpz\\?<([^\s=><\\z|\\.)*s/entitys/escape	\{([^}<\\|\\.)*\}z[\\&{}<])joinr   rQ  rJ  rP  r)  r   r   Tagr   r}  r  )
tripledoubleverbatim_escapecharr0  escaped_quotesr~   tag_state_namerj  s
             r1  _make_string_statezTads3Lexer._make_string_state  s    	4ww  3  3)1 3  3  3 4 4H 'tt4!':V]<BKKTTT44488"(033b02H##S2HI& 	0T!5&1D&-0u EE LL$v.///L!!t#U+
 	
  	 LLL"77HHH.(VVf_n$MO P P P P E$$nnnggg78?8IK148.61>BD-tx*v-~>@ @ $$nnnggg78<! 
## E 	JddDD...'''34:OE% 	
 	
 r2  c                 @   |rdnd}| rdnd}| rdnd|rdndd}|rt           j        nt           j        }| r	d	|d
|dnd}|||dfdt          fdt	          t
          t           j                  d|z  fdt	          t
          t           j                  d|z  fdt
          d|z  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  {3,}r  r  r  r  qtr  r  r  r2   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   rQ  rJ  r
   r   r   r   r  r  	Attributer   )r  r  r  r  
quantifier
state_namer0  r  s           r1  _make_tag_statezTads3Lexer._make_tag_stateB  st   'tt4 &/WWC
(.!6B!6v8N38N8NO
!':V]<BKKTTT44488jj)5(;D!8K??
"$8K??
"$;: 56dh''ddDD...'''34:OE E ddDD...'''348NDJL!!J(!
 	
r2  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|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  r0   z\\?r"   r  r  r  r  r  r  z([^\s"\'<%s{}\\&])+>r  z["\'\s&{<}\\])r   rQ  rJ  rZ  r   r  )	
terminatorhost_triplehost_doubler  r0  	host_charhost_quantifier
host_tokenr  s	            r1  _make_attribute_value_statez&Tads3Lexer._make_attribute_value_state[  s;   ","4"4","4"4&, 	'1DDT	%09''c&1DV]]v}
(2 2iiiCC.1 	 "	??3ZJ$44&@**MFL!!JiiNNNGGG=>DoO#u/D/Dtt#NJu%
 	
r2  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)blockrl  z)(z*)(\()
whitespacerm  )block?/rootmore/parametersmain/parametersz\++z[^\s!"%-(*->@-_a-z{-~]+z(?!\Z)z	main/rootz
main/basic)r"   object-body/no-bracesclassesr   r  r/   r"   )r"   r   r.   z\}r3   )r  r   z?)()block?r  r  z*)(\{)z*)(:))r  r  r   z->|%smainzmain/object-bodyz*)(=?))r"   morer  r2   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  r3   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           	   +     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	|z  |          rd}nCt          j        d
|z  |          r|dz  }n%t          j        d|z  |          r|dz  }nt          }|||fV  d S )Nr  z*#*r   ifz+(0|nil)z*$\n?r%  z%sel(if|se)\bz%sifz	%sendif\b)_ws_ppr   r'  r   rI  r4  match)r   r+  kwargsppif_false_levelr/  r0  r&   s           r1  r'  z!Tads3Lexer.get_tokens_unprocessedC  sI       KKK5-dDCCFCC	& 	&E5%""W_,,H bb$+++t{{{<=BD D - &'NGO++&!++(#3b#8%@@ ,)*'B,66 ,&!+,"3U;; ,&!+#E%%%%%%	& 	&r2  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?r\  r7  s     r1  r9  zTads3Lexer.analyse_textZ  sJ     t}44cMF D  Vt^^cMFr2  )>r:  r;  r<  r=  r   r?  r@  r4  rB  rA  rC  _comment_single_comment_multiliner  rD  	_no_quote	_operator_wsr  r  r  r  r
   r   r   r   rW  r   r   r   r   r   r(  r   ReservedrL  r   r  r   rS  rR  OctrU  rQ  rJ  RegexrX  rY  rM  r   rK  r[  	ExceptionrZ  r   rI  r}  rP  Entityr
  r'  r9  r\  r2  r1  r   r     s         DiGII$E6O7%GEI3II /1C1C1C
DCC*9//;M;M;MNF48' 0 0 0 0d 18 
 
 
 
4 -4
 
 
 
.OtK/K > @DWN N "',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5"'%%-XdmUU4|%D%D%D!# #=? ? "',XdmUU4|%D%D%D!# #$+- - !&sss+XdmUU4|%D%D%D!# #:< GL!!	!;7G&''%
7O^ 	GL!!!!&,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+,, %sss+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 +S0Xg&d,(G(G(G!# #EG1U
8 )3.Xg&d,(G(G(G&( (>@9U
@ 4c9Xg&d,(G(G(GHHJAU
D *C/Xg&d,(G(G(G&( ()=?EU
J *C/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 ,c1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#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 	"'%%-XdmUU4|%D%D%DEEvO O!&UUU3Xdj%%L"A"A"Am% %&,. [!GL!!DM6*GFOO

QOf 	#c)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!!"S(Xk55\#B#B#BGLL Y&4DM"GH	
W	Oj	 	;'
k	Op	 	)6?;;"'%%-tV<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!!9$k2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 	179K9K9KL_gn-!23-6=
wOH 	V]F+V]F+6=%(6=%(	
IOT 	w&6
UOZ 	8 :@J J
 =DGGWWWN_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& & &.    r2  r   )r=  r4  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\  r2  r1  <module>r     s    
			                 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (  F F F F F: F F FRI- I- I- I- I-: I- I- I-XF F F F F< F F Fl	 l	 l	 l	 l	 l	 l	 l	 l	 l	r2  