o
    Ñ­jãÜ  ã                   @   s¬   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„ deƒZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZdS )zç
    pygments.lexers.int_fiction
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for interactive fiction languages.

    :copyright: Copyright 2006-present 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                   @   s¶
  e Zd ZdZdZdZddgZdgZdZe	j
e	jB ZdZd	Zd
ZdZdZi dde› de› d�ejdfedƒg“ddefde› d�ejfg“dedƒdedfdedfdefedƒg“dedƒdedfde› e› d �ed!fd"e› d#�efd$e› d%�edfg“d&edƒd'edfd(edfded)fd*e› d+�efd"e› d,�efd-edfd.e› d/�edfd0ejdfd1efd2ejd3fd4efedƒg“d5d'ed6fd7efd8e› d9�edfd1ejfd:ed;fed&ƒg“d<d(ed=fd>edfed&ƒg“d?d@edfed&ƒg“dAd-edfed&ƒg“dBdCej dfedAƒg“dDedƒd8e› dEe› dF�e!j"dfdGe› dHe› dI�e#e!j"e!j$e!j"ƒdfdGe› dJe› dI�e#e!j"e!j$e!j"ƒdfd8e› dF�e!jdKfd8e› dF�e!j%dLfdMe› dNe› dO�e&j'dfdPe&j(dfdQe&j)dfdRe&j*dfdSe› dT�e#eeƒdfdUe› dT�e#eej+j,ƒdfdVedWfdXe› dT�e#eej-ƒdfdYej.dZfe/d[d\d]�ej.dfd^ej.dfe/d_d`d\da�ej.dfe/dbd`d\da�ej.dfeedfg“dcedDƒedƒg“dddee› d�e!j$fdfe› dg�e!jfdhe!jfdie!j$fdje!j$fd8e› dF�e!jdfg“dkdle!j$fdme› dg�e!j%fdne!j%fdoe!j$fdpe› dqe› dr�e!j$fdpe› dse› dte› du�e!j$fdpe› dve› dw�e!j$fd8e› dF�e!j%dfg“dxdye› dg�e!j%fdze!j%fdoe!j$fd8e› dF�e!j%dfg“d{edƒeej0dfedDƒg“d|edƒd-efd}edcfeej0dcfedƒg“i d~edƒeej+j,dfedDƒg“d3edƒeejdfedƒg“dedƒeej+dfedƒg“d€d�e!j1dfg“d‚edƒeej.dfg“dedƒdYefd:edfdedƒfe/d„d`d\da�edfd…ed†fd‡edˆfd‰edŠfd‹edŒfd�e#eeƒfdŽed�fd�ed‘fd’ed“fd”ed•fd–ed‘fd—ed˜fd™edšfd›edœfd�edžfdŸed fd¡ed¢fd£ed¤fd¥ed¦feej2dšfg“d§edƒeej-dfedƒg“d¨edƒd:edfd©efdªe!j%dxfeej+fg“dedƒd:efd«edfd>efedƒg“d¬edƒd­ed®fedƒg“d¯edƒd°edfeej2dfg“d±edƒd'ed²fedƒg“d³d8e› d9�efd´ej dfed~ƒg“dµedƒd:ed=fd-efd¶ej d·fd¸ej fd>efed¹ƒg“d·edƒd°edfeej2fedDƒg“d�edƒd}edºfd©ed»fed¼ƒg“d½edƒd:edfd¾efd8e› d9�edDfd¿edÀfed¼ƒg“¥i dÀedƒd}ed§fedƒg“d“edƒd:edfd-efdÁed~fed~ƒg“dÂedƒd8e› dF�e!j%dÃfedÄƒg“dÅedƒd8e› dF�e!j%dÆfedƒg“dÇdle!j$fedxƒg“dÈedƒe/dÉd\d]�edfdÊefd8e› dË�edfg“d¼edÈƒedDƒg“dÌedÈƒedƒg“dÍedƒe/dÎdÏe› de› dÐ�d]�efedƒg“dÑedƒe/dÒd\d]�edfedƒg“dÓedƒd«edfdÔefe/dÕd\d]�edfdÖefd×edØfdÙedÚfdÛedÜfdÝedÞfdßedàfdáe› dI�edâfdãejd3fdäedåfdæedfdedfdçedèfedèƒg“déedƒdêedfdëe› dì�ejdfe› díe› dì�ej-dfedƒg“dîedƒd'edfedƒg“dïedƒd:edðfedðƒg“dâedƒd:edfd>efedñƒg“dòedƒd'edófedƒg“dåedƒd8e› dF�e!j%dôfd8e› dõ�edöfeedöfg“¥död>efed÷ƒgi¥Z3dødù„ Z4dúdû„ Z5düS )ý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))Ú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
[^~^/\\@({ú]+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*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]{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|(?=[z
print-listz\.ú@Úopcodez#(?![agrnw]\$|#)zmove\b)r   r5   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  )r2   r%   )r6   r%   r6   Úformr"  )r"   r  )Úoperandsrº   z]{1,2}>r#  )r-   r%   c                 c   sô   � g }d}d }t  | |¡D ]^\}}}|tju r$|dkr$|||gg}d}n=|dkr=|tvr4|tvr4|d8 }| |||f¡ n$|dkr[|d d dkrOt|d d< |rY| d¡V  |sQd}|||fV  |tvrk|tvrk|}q|rx| d¡V  |snd S d S )NéÿÿÿÿÚiné   r   é   r<   )	r   Úget_tokens_unprocessedr   ÚVariabler
   r	   Úappendr   Úpop)r§   ÚtextÚobjectloop_queueÚobjectloop_token_countÚprevious_tokenÚindexÚtokenr&   © r2  úX/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pygments/lexers/int_fiction.pyr(  õ  s8   €ÿÿ€ÿz#Inform6Lexer.get_tokens_unprocessedc                 C   s    d}t  d| t j¡r|d7 }|S )z�We 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,  Úresultr2  r2  r3  Úanalyse_text  s   zInform6Lexer.analyse_textN)6Ú__name__Ú
__module__Ú__qualname__Ú__doc__r    ÚurlÚaliasesÚ	filenamesÚversion_addedr4  Ú	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  r2  r2  r3  r      s*   ÿýÿþú
ûöÿúí
ÿÿ
ñå,úÔ4ýÌ9þÇ=þÃA
þ¿Gÿÿÿ



ÿ
þý

öõóòÄ¹ þ �ú ú �õ ÿþÿõ �í  ü �à '
ý �Ù ,
û �Ô 3ý �Í 8
ý �È =
ý �Ã C
ÿ �½ F
þ �º Lÿýüÿÿÿÿÿÿÿÿÿ
Ú �´ u
ý �‹ z
û �†  û � �ý  ý � �õ  
ý � �ï  ý � �ê  
ý � �å   
ù � �à  )ü � �×  0ü � �Ð  6ú � �Ê  >ý � �Â  Dû � �¼  Lý � �´  Qý � �¯  Vþ � �ª  \ûúö � �¤  hþ � �˜  lþ � �”  pÿþû � ��  wþýú � �‰   ýüÿÿÿ
ÿç � � �þ   ÿÿþÿ÷ � � �ã   (ý � � �Ø   -ý � � �Ó   2ü � � �Î   8ý � � �È   ?ü � � �Á   Eþ � � �»   Kr   c                   @   s&  e Zd ZdZdZdZddgZddgZdZe	j
e	jB 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jdfde› d�ejdfedƒg“dde› d�ejfde› d�ejdfg“ddejdfde› de› d�ejfde› d�ejdfde› de› de› d�ed fd!e› d"�edfd#e› d�ejfg“d$d%e› d&e› d�efde› d�ejd'fd(ed)fd*ed+fdejdfd,e› d-e› d.�ee e!e"d/d0d1�e ƒfd2e› d3e› d4e› d5�ed6fd7e› d�efg“d)d8efdejdfd,e› d-e› d.�ee e!e"d9d:d1�e ƒdfedƒg“d+d8efdejdfd,e› d-e› d.�ee e!e"d/d;d1�e ƒdfedƒg“dd<ejfdejd=fd>ejdfg“d'd?e› d�ejfd@ej#fde› d�ejdfg“d6defdejdfde› dA�edBfde› dC�efdDe› d�ejdfedƒg“dBd8efdejdfdEedFfedƒg“dFd8efdejdfde› dG�edHfedIƒg“dHdJe› dKe› d�ejfdJe› dLe› d�ej$fdMe› dNe› dO�e!e"d$dP�fde› dQe› dR�efdejdfg“d0d2e› dSe› dT�ejfd2e› dUe› dVe› d�ejfd2e› dWe› dT�ejdXfg“d;e%d0ƒdYee ee ƒfg“d:dZee e!e"d$dP�e ƒfg“d[e› d\�ee ej&e ƒfd[e› d]�ee e'e ee ƒd^fd[e› d_�ee e'e ee ƒfd`ee e!e"d$dP�e ƒfgdaejfd2e› dSe› dT�ejdfd2e› dUe› db�ejfd2e› dWe› dT�ejfdcejfgd2e› dSe› dT�ejfd2e› dUe› dde› d�ejfd2e› dWe› dT�ejdXfd2e› dee› d�e'fdfe› d�ej&fdge› dh�ee e'e ƒdfdie› dj�efgdkœ¥ee< ejD ]+Z(e(dk�ré�qàeeje( ƒee e(< e( )dl¡�s
e%dmƒe%eƒgee e( dndo…< �qàq1dpdq„ Z*dnS )rr   z#
    For Inform 7 source code.
    zInform 7zhttp://inform7.com/Úinform7Úi7z*.niz*.i7xr   z\A|(?<=[r9   )ú+i6t-not-inlineú+i6t-inlineú+i6t-use-optionú+i6-rootr   ú	+i6t-rootz[^r    )r   ú+pz(\|?\s)+r!   z+commentr/   r8   )ú+mainú+titlingú+titling-string)re  ú	+heading?rg  r¸   r"   rf  z.;:|z]{2}|(?<=[\sz])\|[\s)r"   rh  z[.;:]|(?<=[\sz])\|z[|re  z(?i)[^z:a\[(|z+textr4   z+phrase-definitionz
(?i)\bas\bz+use-optionz(\([z	])(.*?)([z]\)))rb  r   r_  )ÚstateÚi6tú(z|(?<=[\s;:.z	]))\|\s|[z]{2,}rh  z(?i)[a(|r   )rb  r   r   r)   r`  ra  z[^\[\]]+r.   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+documentationr3   z(?i)(z)\s*(chapter|example)\s*:[^z)\s*section\s*:[^z((z)\t.*?[r   ©ri  z\[]+|[z\[]z)@c( .*?)?([z]|\Z)z)@([z]+|Purpose:)[^z)@p( .*?)?([rd  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)|.)ú+i6trd  rm  Ú_rn  Nr   c                 K   sH   |  dd¡}|| jvr| j |¡| _n| j| | _tj| fi |¤Ž d S )Nrj  r_  )ÚgetÚ_all_tokensÚ	__class__Úprocess_tokendefÚ_tokensr   Ú__init__)r§   ÚoptionsÚlevelr2  r2  r3  ru  Þ  s
   
zInform7Lexer.__init__)+r:  r;  r<  r=  r    r>  r?  r@  rA  r4  rB  rC  rD  r   rF  rG  rI  Ú_startr  Útoken_variantsrw  Úlistr
   rJ  r	   Ú	Multiliner   ÚHeadingr   r   rR  r   r   r   r   ÚInterpolÚ
Subheadingr   rK  r   r1  Ú
startswithru  r2  r2  r2  r3  r     sÊ   
ÿÿÿþ
ÿûúþó
ÿùï
ÿþÿõæ'
þýüøÙ1
ÿþýùÏ:

ýÆ?ýÁD

ÿù¼M
ü³S
ü­Yÿ
ÿ
ù§bÿÿÿûžjþ–nÿÿÿ’
tÿ

ÿþ

ÿÿÿÿ÷ÿÿù
ÿÿÿ
ÿõ �ö 

 €ûr   c                   @   s.   e Zd ZdZdZdgZdgZdZd
dd„Zd	S )r   z%
    For Inform 6 template code.
    zInform 6 templaterj  z*.i6tr   ©rc  c                 C   s   t  | ||¡S )N)r   r(  )r§   r,  Ústackr2  r2  r3  r(  ñ  s   z+Inform6TemplateLexer.get_tokens_unprocessedN)r€  )	r:  r;  r<  r=  r    r?  r@  rA  r(  r2  r2  r2  r3  r   ç  s    r   c                   @   s¤  e Zd ZdZdZdgZdgZdZdZe	j
e	jB 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d„Zefdd„Zefd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"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d0ed-fd1ed2fde› d3e› d!�eejeed"d#�eƒd4fde› d e› d5�eejeed"d#�eƒdfde› d e› d6�eej"eed"d#�eƒd7fed"ƒd8e› �ed9fe!d:ƒg
“d:ed)ƒde› d e› d;�eej"eed"d#�eƒd<fe!d=ƒg“d>ded?fed"ƒd@edAfe!dBƒg“dCded?fed"ƒe!d-ƒg“dDdEefded/fd0ed-fdFe#j$fde› d e› d6�eej%eed"d#�eƒfed"ƒg“dedDƒd'edGfg“dHdIe&j'd-fedDƒd'edJfg“d)g ed"ƒ‘dKed<f‘dLedMf‘dedNf‘dOed-f‘dPe(j)d-f‘dQe(j*d-f‘dRe(j+d-f‘dSe(j,d-f‘dTe&j-dUf‘dVe&j.dWf‘dXe&j-dYf‘dZe&j.d[f‘d\e&j/d]f‘d^e&j/d_f‘d`e&j/daf‘dbe&j/dcf‘dde› de�ee#j$eed"d#�e#j$ƒf‘dfe› d!�ee#j$eed"d#�eƒdgf‘dhe› di�ee#j$eed"d#�e#j$ƒdjf‘dke› dl�ee#j$eed"d#�ƒf‘dme› dn�ee#j$eed"d#�e#j$ƒdof‘dpe› dn�ee#eed"d#�e#j$ƒdqf‘drej0d-f‘dse#j$dtf‘due#j$f‘dve#j$dwf‘dxe#j$dyf‘dze#j$d-f‘d{e#j$d|f‘d}e#j$d~f‘de#j$d€f‘d�e#j$d‚f‘dƒe#j$d„f‘d…e#j$d†f‘d‡e#j$dˆf‘d‰e#j$dŠf‘d‹e#j$d-f‘dŒe#j$d�f‘dŽe#j1d-f‘d�e#j$dBf‘d�e#j$d‘f‘d’e#j$d“f‘d”ej0j2d-f‘d•e#j$dof‘d–e› d!�ee3j4eed"d#�e3ƒd—f‘d˜e3j4f‘d™ej0d-f‘“d9ed)ƒeed-fe!d-ƒg“dšdKed›fdLedGfdœefd�ed9fdžed-fed"ƒee3d9fdŸe3d fd¡e› d¢�ee3j4eed"d#�e3j4ƒfd£e fg
“d¤edšƒe!d-ƒg“d¥d¦e3d-fed¤ƒg“d§dIe&j'd=fed¤ƒg“d¨dKed‚fd‰e#j$d©fed9ƒg“i dªd0ed-fd«ed¨fd¬e#d¨fed¤ƒg“d­eej"d-fed"ƒg“d®d«ed­fed¤ƒg“d¯d°ed9fed¤ƒg“d±de› d e› d²�eej"eed"d#�ƒd-fde› d e› d³e› d�eej5eed"d#�ej"ƒd-fd´efed)ƒeej"d-fe!d-ƒg“dµd¶e› d·�eeeed"d#�ƒfd¸efd¹edºfd«ed±fd»ed¼fed¤ƒg“d½d¾ed-fed¤ƒg“d¿dÀe#d-fed"ƒe!d-ƒg“dÁd«edÂfdÃe3d-fed¤ƒg“dÂdÄe#d-fed"ƒg“dÅdÆefeej6dÇfed"ƒg“dÈed"ƒdÉe#d|fe!d|ƒg“dÊdËefdKedÌfd1edÍfeej5fed"ƒg“dÌed"ƒdÎe&j7d-fg“dÍedÏƒed"ƒdÐe› dÑ�eeeed"d#�e#ƒd9fd8e› dÒ�efeej1fe!d=ƒg“d1d1ed-fg“dÓdÔe&j'fdÕe› dÖe› d×�ed-feejd-fed"ƒg“¥i dØdÙedÚfed"ƒeej5d-fe!d-ƒg“dÛdÜe3j4d-fed"ƒee3fe!d-ƒg“dÝdKedÞfded.fed"ƒg“dßdàed-fedÏƒd‡e#j$fed"ƒdáe› �efeej"fg“dâdOed-fd�e#j$d-fdãe#j$feej5d-fed"ƒe!d-ƒg“dädåedâfed"ƒdæed-fe!d-ƒg“dçdèefd,ed-fdée#j$feej1fed"ƒg“dêeej%d-fed"ƒe!d-ƒg“dëdèefdÃed-fed"ƒeej"fg“d"dìe› díe› dî�e8j9fee8j.fee8j:fdïe› dð�efg“dÏdTe&j-dñfdVe&j.dòfdXe&j-dófdZe&j.dôfg“dõdöe› �e&j;fg“d÷døe&j'fdùe› dúe› dû�e&j'düfg“dýdþej<fg“dñedÿdÿƒ“dòedÿ�d ƒ“dóe�d dÿƒ“¥i dôe�d �d ƒ“�dedÿdÿ�dƒ“�dedÿ�d �dƒ“�de�d dÿ�dƒ“�de�d �d �dƒ“�dedÿdÿ�dƒ“�dedÿ�d �dƒ“�d	e�d dÿ�dƒ“�d
e�d �d �dƒ“�dedÿdÿƒ“�dedÿ�d ƒ“�de�d dÿƒ“�de�d �d ƒ“�dedXdÿdÿƒ“�dedXdÿ�d ƒ“�dedX�d dÿƒ“�dedX�d �d ƒ“¥edZdÿdÿƒedZdÿ�d ƒedZ�d dÿƒedZ�d �d ƒeedÿdÿƒeedÿ�d ƒee�d dÿƒee�d �d ƒ�de&j/f�de&j/f�de&j/d-fdXe&j/fg�de&j/f�de&j/f�de&j/d-fdZe&j/fg�de&j/f�de&j/fdXe&j/d-fg�de&j/f�de&j/fdZe&j/d-fg�dœ¥Z=�d�d„ Z>�d�d„ Z?dS (   r   z!
    For TADS 3 source code.
    zTADS 3Útads3z*.tzhttps://www.tads.orgÚ z(?://(?:[^\\\n]|\\+[\w\W])*$)z(?:/\*(?:[^*]|\*(?!/))*\*/)zM(?:\\(?:[\n\\<>"\'^v bnrt]|u[\da-fA-F]{,4}|x[\da-fA-F]{,2}|[0-3]?[0-7]{1,2}))z(?:[_a-zA-Z]\w*)z(?=\s|\\?>)zD(?:&&|\|\||\+\+|--|\?\?|::|[.,@\[\]~]|(?:[=+\-*/%!&|^]|<<?|>>?>?)=?)z	(?:\\|\s|ú|r<   z(?:\\\n|[^\S\n]|Nc           
      C   s¼  |rd  dd„ |D ƒ¡}|rdnd}|rtjntj}| r%d|› d|› d�nd}d	 | r-d
nd|r2dnd¡}|› d�}g }	| rU|	|› d�|dfd|› d�tjf||fg7 }	n|	 ||df¡ |	tdƒd|› d�|fg7 }	|r„|	 d|› d|› d�tj	d|› d�|ff¡ n>|	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7 }	|	td$ƒd%|› d|› |› d|› d&�tjfd'|fg7 }	|	S )(Nrƒ  c              	   S   s2   g | ]}d t  | ¡ ¡› dt  | ¡ ¡› d�‘qS )z(?:r„  r<   )r4  ÚescapeÚlowerÚupper)Ú.0Úcr2  r2  r3  Ú
<listcomp>  s    *ÿz1Tads3Lexer._make_string_state.<locals>.<listcomp>rÜ   ú'ú+|ú(?!ú{2})ú{}{}ÚtÚdÚsÚqtú{3,}r"   r¹   ú+ú
s/verbatimz[^\\<&{}r¸   z\\?<(/|\\\\|(?!z)\\)z
(?=[\s=>])Úqsz\\?<!([^><\\ú]|<(?!<)|\\r„  z|\\.)*>?z(?i)\\?<listing(?=[\s=>]|\\>)z
qs/listingz(?i)\\?<xmp(?=[\s=>]|\\>)zqs/xmpz\\?<([^\s=><\\z|\\.)*ús/entityús/escapeú	\{([^}<\\ú|\\.)*\}z[\\&{}<])Újoinr   rR  rK  ÚformatrQ  r*  r   r   ÚTagr
   r{  r}  )
ÚtripleÚdoubleÚverbatimÚ_escapeÚcharr1  Úescaped_quotesr   Útag_state_nameri  r2  r2  r3  Ú_make_string_state  sX   
ÿ
ýþÿ ÿÿÿø
 ýzTads3Lexer._make_string_statec                 C   s  |rdnd}| r
dnd}d  | rdnd|rdnd¡}|rtjntj}| r-d	|› d
|› d�nd}|› |› �|dfdtfdtttjƒd|› �fdtttjƒd|› �fdtd|› �fdtjdfd|› d|› |› d|› d�tj	fd|› d|› |› d|› d�tj
ftdƒtdƒtdƒdtj
fgS ) NrÜ   r‹  r”  rƒ  z{}{}qtr�  r‘  r’  rŒ  r�  rŽ  r3   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   rR  rK  r	   r   r   r   rŸ  r}  Ú	Attributer   )r   r¡  r£  r¤  Ú
quantifierÚ
state_namer1  r¥  r2  r2  r3  Ú_make_tag_state:  s,   ÿÿ
  òzTads3Lexer._make_tag_statec           	      C   sæ   | 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}|r0d|› d|› d�nd}|› |› �|dfd	 |t ju rCdnd
| ¡|dftdƒtdƒd|› d|› |› d|› d�t jfd|t ju rgdnd |ftdƒd|fgS )NrÜ   r‹  r”  rƒ  rŒ  r�  rŽ  r1   r�  z\\?r"   r–  r™  r›  r˜  r„  rœ  z([^\s"\'<%s{}\\&])+ú>rš  z["\'\s&{<}\\])r   rR  rK  r[  rž  r   r}  )	Ú
terminatorÚhost_tripleÚhost_doubler£  r1  Ú	host_charÚhost_quantifierÚ
host_tokenr¥  r2  r2  r3  Ú_make_attribute_value_stateQ  s.   ÿÿÿÿ ÿöz&Tads3Lexer._make_attribute_value_stater   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)Úblockrk  z)(z*)(\()Ú
whitespacerl  )ú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->|Ú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)(z+)(object\b)z(function|method)()r"   r»  r·  r¸  z	(modify)(z+)(grammar\b))r"   r¹  r4   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   sì   � d| j › d| j › d�}d}tj| |fi |¤ŽD ][\}}}|dkr:|tju r9t |› d| j › d| j › d�|¡r9d}n3|tju rk|dkrOt |› d	�|¡rOd}nt |› d�|¡r]|d7 }nt |› d
�|¡rj|d8 }nt}|||fV  qd S )NrÞ  z*#Ú*r   Úifz+(0|nil)z*$\n?r'  zel(if|se)\bzendif\b)Ú_ws_ppr   r(  r
   rJ  r4  Úmatch)r§   r,  ÚkwargsÚppÚif_false_levelr0  r1  r&   r2  r2  r3  r(  8  s0   €ÿ
 ÿ€
ÿ
€ïz!Tads3Lexer.get_tokens_unprocessedc                 C   s8   d}d| v s
d| v r|d7 }d| v rd| v r|d7 }|S )z·This 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š™™™™™¹?r2  r7  r2  r2  r3  r9  N  s   zTads3Lexer.analyse_text)@r:  r;  r<  r=  r    r?  r@  r>  rA  r4  rC  rB  rD  Ú_comment_singleÚ_comment_multiliner£  rE  Ú	_no_quoteÚ	_operatorÚ_wsrç  r§  r«  r³  r	   r   r   r   rX  r   r   r   r   r   r)  r   ÚReservedrM  r   r}  r   rT  rS  ÚOctrV  rR  rK  ÚRegexrY  rZ  rN  r   rL  r\  Ú	Exceptionr[  r
   rJ  r{  rQ  ÚEntityr  r(  r9  r2  r2  r2  r3  r   õ  sÔ   -
ÿýÿýñÿþîýêÿýÿþÿýîå/ÿþûÑ6ÿúÊ>ýÂCÿÿø½Mþ³Q
ý¯Vÿþýüú
ùÿø

ö
õ
ô
ó
ò
ñ
ð
ï
î
í
ÿÿë
ÿýè
ÿýä
 ÿà
"ÿþÞ
%ÿþÛ)ÿ×
+Õ,ÿÔ
.Ò/ÿÑ
1Ï2ÿÎ
4Ì
5Ë6ÿÊ8ÿÈ:ÿÆ
<Ä=ÿÃ?ÿÁ
A¿
B¾
C½
D¼Eÿ»G¹
H¸
Jÿþ¶M³Oû±ª -ý �Ó 2
ÿÿô �Î @þ �À Eþ �» J
þ �¶ O
ý �± Tü �¬ [
þ �¥ _þ �¡ dþ �œ iÿÿþ
÷ �— t
ÿù �Œ }þ �ƒ  ý � �þ  	ý � �÷  þ � �ò  
ý � �î  ý � �é  û � �ä  #úþ � �Ý  -
þø � �Ó  7ÿ � �É  :
ü � �Æ  @
ü � �À  F
ü � �º  Lý � �´  Qú � �¯  [

ú � �¥  cü � ��  iû � �—  p
ý � ��  uü � �‹  }ÿû � �ƒ   



ü � � �ù   ÿ � � �ó   ýþû � � �ð   ÿ � � �ç   
 � � �ä    � � �ã    � � �â    � � �á     � � �à   ! � � �ß   " � � �Þ   # � � �Ý   $ � � �Ü   % � � �Û   & � � �Ú   ' � � �Ù   * � � �Ö   + � � �Õ   , � � �Ô   - � � �Ó   . � � �Ò   / � � �Ñ   0 � � �Ð   1 � � �Ï   
2


ü

ü


ý


ý � � �
³   T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   r2  r2  r2  r3  Ú<module>   s    
$0     J