a
    ñ»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de› de› d�ejdfedƒgdefde› d�ejfgedƒdedfdedfdefedƒg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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d-ejd*fd.efd/ejd0fd1efedƒgd#ed2fd3efd4e› d5�ed*fd.ejfd6ed7fed8ƒgd$ed9fd:edfed8ƒgd;ed*fed8ƒgd)edfed8ƒgd<ej dfed=ƒgedƒd4e› d>e› d?�e!j"dfd@e› dAe› dB�e#e!j"e!j$e!j"ƒdfd@e› dCe› dB�e#e!j"e!j$e!j"ƒdfd4e› d?�e!jdDfd4e› d?�e!j%dEfdFe› dGe› dH�e&j'dfdIe&j(dfdJe&j)dfdKe&j*dfdLe› dM�e#eeƒdfdNe› dM�e#eej+j,ƒdfdOedPfdQe› dM�e#eej-ƒdfdRej.dSfe/dTdUdV�ej.dfdWej.dfe/dXdYdUdZ�ej.dfe/d[dYdUdZ�ej.dfeedfged\ƒedƒgd]e› d�e!j$fd^e› d_�e!jfd`e!jfdae!j$fdbe!j$fd4e› d?�e!jdfgdce!j$fdde› d_�e!j%fdee!j%fdfe!j$fdge› dhe› di�e!j$fdge› dje› dke› dl�e!j$fdge› dme› dn�e!j$fd4e› d?�e!j%dfgdoe› d_�e!j%fdpe!j%fdfe!j$fd4e› d?�e!j%dfgedƒeej0dfed\ƒgedƒd)efdqedrfeej0drfedƒgedƒeej+j,dfed\ƒgedƒeejdfedƒgedƒeej+dfedƒgdse!j1dfgedƒeej.dfgedƒdRefd6edfdedtfe/dudYdUdZ�edvfdwedxfdyedzf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edƒeej-dfedƒgedƒd6edfd™efdše!j%d›feej+fgedƒd6efdœedfd:efedƒgedƒd�edžfedƒgedƒdŸedfeej2dfgedƒd#ed fedƒgd4e› d5�efd¡ej dfed¢ƒgedƒd6ed9fd)efd£ej d¤fd¥ej fd:efed¦ƒgedƒdŸedfeej2fed\ƒgedƒdqed§fd™ed¨fed©ƒgedƒd6edfdªefd4e› d5�ed\fd«ed¬fed©ƒgedƒdqed­fedƒgedƒd6edfd)efd®ed¢fed¢ƒgedƒd4e› d?�e!j%d¯fed°ƒgedƒd4e› d?�e!j%d±fedƒgdce!j$fed›ƒgedƒe/d²dUdV�edfd³efd4e› d´�edfgedµƒed\ƒgedµƒedƒgedƒe/d¶d·e› de› d¸�dV�efedƒgedƒe/d¹dUdV�edfedƒgedƒdœedfdºefe/d»dUdV�edvf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› dB�edÈfdÉejd0fdÊedËfdÌedfdedvfdÍedÎfedÎƒgedƒdÏedfdÐe› dÑ�ejdfe› dÒe› dÑ�ej-dfedƒgedƒd#edfedƒgedƒd6edÓfedÓƒgedƒd6edfd:efedÔƒgedƒd#edÕfedƒgedƒd4e› d?�e!j%dÖfd4e› d×�edØfeedØfgd:efedÙƒgdÚœ4Z3dÛ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Â…â€¨â€©z\A(!%[^z]*[ú])+Ú	directiveú\s+ú![^ú]*Ú_whitespaceú\[úmany-valuesz:|(?=;)ú#popú<)Ú
expressionÚ_expressionz(?=sp\b)z(?=[z$0-9#a-zA-Z_]))r"   Úvaluez\+\+|[z]{1,2}(?!>)|~~?z(?=[()\[z,?@{:;])ú\(ú\))r"   Ú
statementsÚlocalsz>(?=(\s+|(![^z
]*))*[>;])z	]{2}(?!>)ú,r%   z&&?|\|\|?|[=~><]?=|[z]{1,2}>?|\.\.?[&#]?|::|[<>+*/%]z*(has|hasnt|in|notin|ofclass|or|provides)\bzsp\bz\?~?úlabel?z[@{])ú#pushr%   z[\[\]]ú[z]>ú;ú#pop:3r$   ú#pop:2ú:z(from|near|to)\bzhas\bú_list-expressionz][^@][ú]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ÚchildrenZelderZeldestZglkZindirectÚ	metaclassÚparentÚrandomZsiblingZyoungerZyoungestz\b)Úsuffixz#(?i)(Class|Object|Routine|String)\b)2ZBox__RoutineZCA__PrZCDefArtZ	CInDefArtZCl__MsZCopy__PrimitiveZCP__TabZDA__PrZDB__PrZDefArtZDynam__StringZEnglishNumberZ	Glk__WrapZIA__PrZIB__PrZInDefArtZMain__ZMeta__classZOB__MoveZ
OB__RemoveZOC__ClZOP__PrZPrint__AddrZPrint__PNameZPrintShortNameZRA__PrZRA__ScZRL__PrZ	R_ProcessZRT__ChGZRT__ChGtZ	RT__ChLDBZ	RT__ChLDWZRT__ChPRZRT__ChPrintAZRT__ChPrintCZRT__ChPrintOZRT__ChPrintSZRT__ChPSZRT__ChRZ	RT__ChSTBZ	RT__ChSTWZRT__ChTZRT__ErrZRT__TrPSZRV__PrZ	Symb__TabZUnsigned__CompareZWV__PrZ	Z__Regionz(?i))ÚprefixrA   )8ÚcallÚcopyÚcreateÚDEBUGÚdestroyZDICT_CHAR_SIZEZDICT_ENTRY_BYTESZDICT_IS_UNICODEZDICT_WORD_SIZEZDOUBLE_HI_INFINITYZDOUBLE_HI_NANZDOUBLE_HI_NINFINITYZDOUBLE_LO_INFINITYZDOUBLE_LO_NANZDOUBLE_LO_NINFINITYÚfalseZFLOAT_INFINITYZ	FLOAT_NANZFLOAT_NINFINITYZGOBJFIELD_CHAINZGOBJFIELD_CHILDZGOBJFIELD_NAMEZGOBJFIELD_PARENTZGOBJFIELD_PROPTABZGOBJFIELD_SIBLINGZGOBJ_EXT_STARTZGOBJ_TOTAL_LENGTHZGrammar__VersionZINDIV_PROP_STARTZINFIXZinfix__watchingZMODULE_MODEÚnameZnothingZNUM_ATTR_BYTESÚprintZprint_to_arrayZrecreateÚ	remainingÚselfZsenderZSTRICT_MODEZsw__varZ
sys__glob0Z
sys__glob1Z
sys__glob2Zsys_statusline_flagZTARGET_GLULXZTARGET_ZCODEZtemp__global2Ztemp__global3Ztemp__global4Ztemp_globalÚtrueZUSE_MODULESZWORDSIZEr&   z
[~^]+|//[^z
[^~^/\\@({ú]+z[/({]z@\{[0-9a-fA-F]*\}z@.{2}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*)*.z[^~^\\({\[\]z
[~^({\[\]]ú=úvalue?z\S\w*)r   r)   r*   úroutine-name?)Z
abbreviateÚendifÚ
dictionaryZifdefZiffalseZifndefZifnotZiftrueZifv3Zifv5ÚreleaseÚserialZswitchesZsystem_fileÚversionr   z(?i)(array|global)\b)r   údirective-keyword?Ú_globalz(?i)attribute\b)r   úalias?Ú	_constantz(?i)class\b)úobject-bodyÚ
duplicatesú
class-namez(?i)(constant|default)\b)r   ú	constant*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   rZ   r[   úproperty-keyword*z(?i)replace\b)r   rR   rR   z(?i)statusline\b)r   rX   z
(?i)stub\b)r   rR   z(?i)trace\b)r   útrace-keyword?rf   z(?i)zcharacter\b)r   rX   rX   z\*ú"úplain-stringú\]zalias\b)r"   r[   z#(?=[,;]|(class|has|private|with)\b))r"   r$   r%   z(class|has|private|with)\brY   úclass\búclass-segmentz(has|private|with)\b)ú_object-expressionr%   )r"   r   )r"   úgrammar-lineú_directive-keywordz[/*]z(noun|scope)\bú=routinerR   z(?i)global\b)r"   úmessage-string)r"   rb   rX   )r"   rh   )%ÚadditiveÚaliasÚbufferÚclassZcreatureÚdataÚerrorZ
fatalerrorÚfirstÚhasZheldÚ
individualÚinitialZinitstrÚlastÚlongÚmetaÚmultiZmultiexceptZ	multiheldZmultiinsideZnounÚnumberÚonlyÚprivateÚreplaceÚreverseÚscopeZscoreZspecialr7   ÚtableZterminatingÚtimeZtopicÚwarningÚwithzstatic\bz]{1,2}>|[+=]ú_directive-keyword!)rq   ry   r|   z\b(?=(\s*|(![^z]))*[_a-zA-Z]))ZassemblyrT   ZexpressionsÚlinesZlinkerÚobjectsÚoffÚonÚsymbolsÚtokensZverbsz[;{}])ÚboxÚbreakÚcontinuer   ZgiveZ	inversionÚnew_lineÚquitÚreadÚremoveÚreturnZrfalseZrtrueÚspacesr7   Z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)ú_keyword-expressionú	variable?r›   zprint(_ret)?\b|(?=[ú
print-listz\.ú@Úopcodez#(?![agrnw]\$|#)zmove\b)r   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+|(![^)ú_for-expressionr%   )r3   r%   r3   Úform)r"   r™   )Úoperandsrh   z]{1,2}>r£   )ú_assembly-expressionr%   )4Úrootr   r   r%   r$   r¤   r¡   rœ   r3   rl   r&   rQ   r6   r7   rh   r[   r_   rY   r,   r�   r9   r;   r   rR   r*   r!   rZ   r^   r]   rd   r\   rk   r`   rm   ro   ra   rc   rb   rp   r‰   rn   rX   re   rf   r)   r™   r›   rš   rž   r¢   r    r£   c                 c   sê   g }d}d }t  | |¡D ]º\}}}|tju rF|dkrF|||gg}d}nx|dkrx|tvrf|tvrf|d8 }| |||f¡ nF|dkr²|d d dkrœt|d d< |r®| d¡V  qœd}|||fV  |tvr|tvr|}q|ræ| d¡V  qÔd S )NéÿÿÿÿÚiné   r   é   r8   )	r   Úget_tokens_unprocessedr   ÚVariabler
   r	   Úappendr   Úpop)rL   ÚtextZobjectloop_queueZobjectloop_token_countZprevious_tokenÚindexÚtokenr&   © r±   úAE:\soccer\ml_env\Lib\site-packages\pygments/lexers/int_fiction.pyrª   õ  s0    ÿ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®   Úresultr±   r±   r²   Úanalyse_text  s    zInform6Lexer.analyse_textN)6Ú__name__Ú
__module__Ú__qualname__Ú__doc__rI   ÚurlÚaliasesÚ	filenamesÚversion_addedr³   Ú	MULTILINEÚDOTALLÚflagsÚ_nameÚ_dashÚ_dquoteZ_squoteÚ_newliner
   ÚPreprocr   r	   ÚSingler   r   r   ÚWordr   ÚLabelr   r   ÚPseudoÚDeclarationr   ÚCharr   ÚEscapeÚDoubler   ÚFloatÚHexÚBinÚIntegerr«   ÚGlobalÚFunctionÚBuiltinr   ÚConstantÚOtherÚClassr�   rª   r¸   r±   r±   r±   r²   r      s.  ÿýþû
ÿú	
ÿÿ
ñú	ýþþ
þÿÿÿ



ÿ
þý

öõóòÄ?þú	ÿþÿõü
ý
ûý
ý
ý
ÿ
þÿýüÿÿÿÿÿÿÿÿÿ
Ú*
ý
û	û	ý
ýý
ý
ù
üüú	ýû	ýýþûúöþþÿþûþýúýüÿÿÿ
ÿçÿÿþÿ÷ýýüýüþ€ € € ¾   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 �]lZeejd ƒdej› d�ejdfgdefdejdfde› d�ejdfedƒgde› d�ejfde› d�ejdfg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!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+d,d-�e ƒfd.e› d/e› d0e› d1�ed2fd3e› d�efgd4efdejdfd(e› d)e› d*�ee e!e"d5d6d-�e ƒdfedƒgd4efdejdfd(e› d)e› d*�ee e!e"d+d7d-�e ƒdfedƒgd8ejfdejd9fd:ejdfgd;e› d�ejfd<ej#fde› d�ejdfgdefdejdfde› d=�ed>fde› d?�efd@e› d�ejdfedƒgd4efdejdfdAedBfedƒgd4efdejdfde› dC�edDfedEƒgdFe› dGe› d�ejfdFe› dHe› d�ej$fdIe› dJe› dK�e!e"dLdM�fde› dNe› dO�efdejdfgd.e› dPe› dQ�ejfd.e› dRe› dSe› d�ejfd.e› dTe› dQ�ejdUfge%d,ƒdVee ee ƒfgdWee e!e"dLdM�e ƒfgdXe› dY�ee ej&e ƒfdXe› dZ�ee e'e ee ƒd[fdXe› d\�ee e'e ee ƒfd]ee e!e"dLdM�e ƒfgd^ejfd.e› dPe› dQ�ejdfd.e› dRe› d_�ejfd.e› dTe› dQ�ejfd`ejfgd.e› dPe› dQ�ejfd.e› dRe› dae› d�ejfd.e› dTe› dQ�ejdUfd.e› dbe› d�e'fdce› d�ej&fdde› de�ee e'e ƒdfdfe› dg�efgdhœee< ejD ]VZ(e(dk�rŠ�qxeeje( ƒee e(< e( )di¡�sxe%djƒe%eƒgee e( dkdl…< �qxqbdmdn„ Z*dkS )or   z#
    For Inform 7 source code.
    zInform 7zhttp://inform7.com/Úinform7Úi7z*.niz*.i7xr   z\A|(?<=[r5   )ú+i6t-not-inlineú+i6t-inlineú+i6t-use-optionr¥   z[^r   )r   ú+pz(\|?\s)+r    ú+commentr.   r4   )ú+mainú+titlingú+titling-string)râ   ú	+heading?rN   r"   z.;:|rä   z]{2}|(?<=[\sz])\|[\s)r"   rå   z[.;:]|(?<=[\sz])\|z[|z(?i)[^z:a\[(|ú+textr2   ú+phrase-definitionz
(?i)\bas\bú+use-optionz(\([z	])(.*?)([z]\)))ú+i6-rootr   rÝ   )ÚstateÚi6tú(z|(?<=[\s;:.z	]))\|\s|[z]{2,}rå   z(?i)[a(|r   )ré   r   r   r)   rÞ   rß   z[^\[\]]+r-   ri   z[^\[z\[.*?\]z]{4}\s+ú+documentation-headingz]{1,3}z*(?i)(volume|book|part|chapter|section)\b[^z(?i)documentation\s+ú+documentation-heading2z]{4}\sú+documentationr1   z(?i)(z)\s*(chapter|example)\s*:[^z)\s*section\s*:[^z((z)\t.*?[r   râ   ©rê   z\[]+|[z\[]z)@c( .*?)?([z]|\Z)z)@([z]+|Purpose:)[^z)@p( .*?)?([rà   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)|.)ré   ú	+i6t-rootr¥   rä   rã   râ   rç   rè   rá   ræ   rå   rí   rî   rï   rÝ   rß   rÞ   ú+i6trà   rñ   Ú_ró   Nr   c                 K   sH   |  dd¡}|| jvr&| j |¡| _n| j| | _tj| fi |¤Ž d S )Nrë   rÝ   )ÚgetÚ_all_tokensÚ	__class__Úprocess_tokendefÚ_tokensr   Ú__init__)rL   ÚoptionsÚlevelr±   r±   r²   rú   Þ  s
    
zInform7Lexer.__init__)+r¹   rº   r»   r¼   rI   r½   r¾   r¿   rÀ   r³   rÁ   rÂ   rÃ   r   rÅ   rÆ   rÇ   Ú_startr�   Útoken_variantsrü   Úlistr
   rÈ   r	   Ú	Multiliner   ÚHeadingr   r   rÐ   r   r   r   r   ÚInterpolÚ
Subheadingr   rÉ   r   r°   Ú
startswithrú   r±   r±   r±   r²   r     s€  
ÿÿ
ÿûþ
ÿù

ÿþÿõ
þýüø
ÿþýù


ýý

ÿù

ü
üÿ
ÿ
ù
ÿÿÿû	þÿÿÿ
ÿ

ÿþ

ÿÿÿÿ÷ÿÿù
ÿÿÿ
ÿõ€ ÷
 

&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 templaterë   z*.i6tr   ©rò   c                 C   s   t  | ||¡S )N)r   rª   )rL   r®   Ústackr±   r±   r²   rª   ñ  s    z+Inform6TemplateLexer.get_tokens_unprocessedN)r  )	r¹   rº   r»   r¼   rI   r¾   r¿   rÀ   rª   r±   r±   r±   r²   r   ç  s   r   c                T   @   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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	ed(ƒe!d)ƒgd*ed+fded,fedƒgd*efded-fd.ed+fd/ed0fde› d1e› d �eejeed!d"�eƒd2fde› de› d3�eejeed!d"�eƒdfde› de› d4�eej"eed!d"�eƒd5fed!ƒd6e› �ed7fe!d8ƒg
ed(ƒde› de› d9�eej"eed!d"�eƒd:fe!d;ƒgded<fed!ƒd=ed>fe!d?ƒgded<fed!ƒe!d+ƒgd@efded-fd.ed+fdAe#j$fde› de› d4�eej%eed!d"�eƒfed!ƒgedBƒd&edCfgdDe&j'd+fedBƒd&edEfged!ƒdFed:f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› d`�ee#j$eed!d"�e#j$ƒfdae› d �ee#j$eed!d"�eƒdbfdce› dd�ee#j$eed!d"�e#j$ƒdefdfe› dg�ee#j$eed!d"�ƒfdhe› di�ee#j$eed!d"�e#j$ƒdjfdke› di�ee#eed!d"�e#j$ƒdlfdmej0d+fdne#j$dofdpe#j$fdqe#j$drfdse#j$dtfdue#j$d+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#j1d+fdŠe#j$d?fd‹e#j$dŒfd�e#j$dŽfd�ej0j2d+fd�e#j$djfd‘e› d �ee3j4eed!d"�e3ƒd’fd“e3j4fd”ej0d+fg0ed(ƒeed+fe!d+ƒgdFed•fdGedCfd–efd—ed7fd˜ed+fed!ƒee3d7fd™e3dšfd›e› dœ�ee3j4eed!d"�e3j4ƒfd�e fg
edžƒe!d+ƒgdŸe3d+fed ƒgdDe&j'd;fed ƒgdFed}fd„e#j$d¡fed7ƒgd.ed+fd¢ed£fd¤e#d£fed ƒgeej"d+fed!ƒgd¢ed¥fed ƒgd¦ed7fed ƒg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ª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²ed+fed ƒgd³e#d+fed!ƒe!d+ƒgd¢ed´fdµe3d+fed ƒgd¶e#d+fed!ƒgd·efeej6d¸fed!ƒged!ƒd¹e#dwfe!dwƒgdºefdFed»fd/ed¼feej5fed!ƒged!ƒd½e&j7d+fged¾ƒed!ƒd¿e› dÀ�eeeed!d"�e#ƒd7fd6e› dÁ�efeej1fe!d;ƒgd/ed+fgdÂe&j'fdÃe› dÄe› dÅ�ed+feejd+fed!ƒgdÆedÇfed!ƒeej5d+fe!d+ƒgdÈe3j4d+fed!ƒee3fe!d+ƒgdFedÉfded,fed!ƒgdÊed+fed¾ƒd‚e#j$fed!ƒdËe› �efeej"fgdJed+fdŠe#j$d+fdÌe#j$feej5d+fed!ƒe!d+ƒgdÍedÎfed!ƒdÏed+fe!d+ƒgdÐefd*ed+fdÑe#j$feej1fed!ƒgeej%d+fed!ƒe!d+ƒgdÐefdµed+fed!ƒeej"fgdÒe› dÓe› dÔ�e8j9fee8j.fee8j:fdÕe› dÖ�efgdOe&j-d×fdQe&j.dØfdSe&j-dÙfdUe&j.dÚfgdÛe› �e&j;fgdÜe&j'fdÝe› dÞe› dß�e&j'dàfgdáej<fgedâdâƒedâdãƒedãdâƒedãdãƒedâdâdäƒedâdãdäƒedãdâdäƒedãdãdäƒedâdâdåƒedâdãdåƒedãdâdåƒedãdãdåƒedâdâƒedâdãƒedãdâƒedãdãƒedSdâdâƒedSdâdãƒedSdãdâƒedSdãdãƒedUdâdâƒedUdâdãƒedUdãdâƒedUdã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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îœPZ=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|ú|r8   z(?:\\\n|[^\S\n]|Nc           
      C   s¾  |rd  dd„ |D ƒ¡}|r dnd}|r.tjntj}| rJd|› d|› d�nd}d	 | rZd
nd|rddnd¡}|› d�}g }	| rª|	|› 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	  r8   )r³   ÚescapeÚlowerÚupper)Ú.0Úcr±   r±   r²   Ú
<listcomp>  s   ÿz1Tads3Lexer._make_string_state.<locals>.<listcomp>rg   ú'ú+|ú(?!ú{2})ú{}{}ÚtÚdÚsZqtú{3,}r"   rO   ú+ú
s/verbatimz[^\\<&{}rN   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   rÐ   rÉ   ÚformatrÏ   r¬   r   r   ÚTagr
   r   r  )
ÚtripleÚdoubleZverbatimÚ_escapeÚcharr°   Úescaped_quotesrB   Ztag_state_namerê   r±   r±   r²   Ú_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}| rZd	|› 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 ) Nrg   r  r  r  z{}{}qtr  r  r  r  r  r  r1   z
(\s|\\\n)+z	(=)(\\?")zdqs/z	(=)(\\?')zsqs/rP   zuqs/z\\?>r"   r  r  r	  r   z
([^\s=><\\z|\\.)+r  r  r  z[\\{}&])r"  r   rÐ   rÉ   r	   r   r   r   r#  r  Ú	Attributer   )r$  r%  r&  r'  Z
quantifierZ
state_namer°   r(  r±   r±   r²   Ú_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}|r6dnd}|rDt jnt j}|r`d|› d|› d�nd}|› |› �|dfd	 |t ju r†dnd
| ¡|dftdƒtdƒd|› d|› |› d|› d�t jfd|t ju rÎdnd |ftdƒd|fgS )Nrg   r  r  r  r  r  r  r0   r  z\\?r"   r  r  r  r  r	  r   z([^\s"\'<%s{}\\&])+ú>r  z["\'\s&{<}\\])r   rÐ   rÉ   rÙ   r"  r   r  )	Ú
terminatorZhost_tripleZhost_doubler&  r°   Z	host_charZhost_quantifierZ
host_tokenr(  r±   r±   r²   Ú_make_attribute_value_stateQ  s.    ÿÿÿÿ ÿöz&Tads3Lexer._make_attribute_value_stateu   ï»¿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)Úblockrì   z)(z*)(\()Ú
whitespacerð   )úblock?/rootúmore/parametersúmain/parametersz\++z[^\s!"%-(*->@-_a-z{-~]+z(?!\Z)ú	main/rootú
main/basic)r"   úobject-body/no-bracesÚclassesrt   r/   r"   )r"   r\   r-   z\}r2   )r7  rt   z?)()úblock?r2  r3  z*)(\{)z*)(:))r6  r7  rt   z->|Úmainúmain/object-bodyz*)(=?))r"   Úmorer9  r1   )r"   r/  z(?=[\[\'"<(:]))r"   r6  r`   úgrammar-rules)r"   r6  z[;:]+z	default\búblock/basic)r;  r9  z>>)ú
more/embedr9  r'   r    )r"   ú	more/listr9  )r"   ú
more/innerú
main/innerr2  r3  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"   Útsqsrg   )r"   Údqsr  )r"   ÚsqszR""")r"   ÚtdqrzR''')r"   ÚtsqrzR")r"   ÚdqrzR')r"   Úsqrz	(extern)(z+)(object\b)z(function|method)()r"   r8  r2  r3  z	(modify)(z+)(grammar\b))r"   r6  r2   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"   Úcatchrj   )r"   r6  rt   z(default|do|else|finally|try)\bz(dictionary|property)\b)r"   Ú	constantszenum\b)r"   Úenumzexport\b)r"   r9  z(for|foreach)\b)r"   r@  rA  z(function|method)\b)r"   r8  rK  z	grammar\b)r"   r6  r`   zinherited\b)r"   Ú	inheritedzlocal\b)r"   ú
more/localú
main/localz)(modify|replace|switch|throw|transient)\bznew\b)r"   rt   z(nil|true)\bzobject\bz
operator\b)r"   Úoperatorzpropertyset\b)r"   Úpropertysetr9  zself\bz
template\bz(__objref|defined)()r"   úmore/__objrefr9  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)\b)r?  r9  z\.{3}z->|\.\.z(?=;)|[:)\]]z\?)r9  úmore/conditionalr9  z	(is|not)(z+)(in\b)z[^\s!"%-_a-z{-~]+ú
more/basicz:(?!:)r;  )r"   rR  r+   rA  z(in|step)\brR  z[,:]z*)(?=:)z+)(z\[+z(:)(z*(?=[?=,:)]))z[?\]]+z[:)])r"   úmultimethod?r3  rP   )úmore/parameterr9  z(?=[,)])zmultimethod\bÚmoder(   z(error|warn)\bz\(+)r"   Ú	variablesztoken\bz\)+úgrammar-tagr<  a!  """([^\\"<]|""?(?!")|\\"+|\\.|<(?!<))+("{3,}|<<)|R"""([^\\"]|""?(?!")|\\"+|\\.)+"{3,}|'''([^\\'<]|''?(?!')|\\'+|\\.|<(?!<))+('{3,}|<<)|R'''([^\\']|''?(?!')|\\'+|\\.)+'{3,}|"([^\\"<]|\\.|<(?!<))+("|<<)|R"([^\\"]|\\.)+"|'([^\\'<]|\\.|<(?!<))+('|<<)|R'([^\\']|\\.)+'|([^)\s\\/]|/(?![/*]))+|\)r7   z(\[)(z*)(badness)z|[()]z(<<([^>]|>>>|>(?!>))*>>)+z(?=ú?z*[({])r#   )r"   r7  rt   znegate\b)r2  r3  z(?=;)z->|\?|ztransient\bz[:,]rt   r,  z,+z
property\bú^z*#(z|[^\n]|(?<=\\)\n)*\n?z\\+\n+z*#?|\n+|([^\S\n]|\\)+rB  rC  rD  rE  z
\{\{|\}\}|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)?)úblock/embedr>  r9  z'(?i)&(#(x[\da-f]+|\d+)|[a-z][\da-z]*);?TFZlistingZxmpz[^\\"]+z\\"*z"{3,}z[^\\']+z\\'*z'{3,}z\\"?z\\'?)Pr¥   r4  r6  r\   r:  r1  r8  r=  r/  r_  r5  r9  rW  r;  rV  r>  rA  r@  rR  rQ  r?  r3  r2  rY  rX  rU  rZ  rM  rO  r`   r\  r<  r2   rK  rP  rS  rT  rJ  rt   r7  rN  rL  r[  r0  r7   r  r  r  rB  rC  rD  rE  ztdqs/listingztsqs/listingzdqs/listingzsqs/listingztdqs/xmpztsqs/xmpzdqs/xmpzsqs/xmpZtdqtZtsqtZdqtZsqtzdqs/tdqtzdqs/tsqtzdqs/dqtzdqs/sqtzsqs/tdqtzsqs/tsqtzsqs/dqtzsqs/sqtzuqs/tdqtzuqs/tsqtzuqs/dqtzuqs/sqtrF  rG  rH  rI  c              	   k   sê   d| j › d| j › d�}d}tj| |fi |¤ŽD ]¶\}}}|dkrr|tju rØt |› d| j › d| j › d�|¡rØd}nf|tju rÔ|dkrœt |› d	�|¡rœd}qØt |› d�|¡r¸|d7 }qØt |› d
�|¡rØ|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
   rÈ   r³   Úmatch)rL   r®   ÚkwargsÚppZif_false_levelr¯   r°   r&   r±   r±   r²   rª   8  s(    ÿ
 ÿ
ÿ

z!Tads3Lexer.get_tokens_unprocessedc                 C   s8   d}d| v sd| v r|d7 }d| v r4d| v r4|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   Z__TADSZGameMainDefgš™™™™™É?ZversionInfoZIFIDgš™™™™™¹?r±   r¶   r±   r±   r²   r¸   N  s    zTads3Lexer.analyse_text)@r¹   rº   r»   r¼   rI   r¾   r¿   r½   rÀ   r³   rÂ   rÁ   rÃ   Z_comment_singleZ_comment_multiliner&  rÄ   Z	_no_quoteÚ	_operatorÚ_wsrb  r)  r+  r.  r	   r   r   r   rÖ   r   r   r   r   r   r«   r   ÚReservedrË   r   r  r   rÒ   rÑ   ÚOctrÔ   rÐ   rÉ   ÚRegexr×   rØ   rÌ   r   rÊ   rÚ   Ú	ExceptionrÙ   r
   rÈ   r   rÏ   ÚEntityr�   rª   r¸   r±   r±   r±   r²   r   õ  s�  -ÿ
ýÿýñþýÿýÿþÿýîÿþûÿú	ýÿÿøþ
ý
ÿ










ÿÿ
ÿý
ÿý
ÿ
ÿþ
ÿþÿ
ÿ
ÿ
ÿ

ÿÿÿ
ÿÿ



ÿ

ÿþû±Wý
ÿÿôþþ
þ
ýü
þþþÿÿþ
÷
ÿù
þýýþ
ýýûúþ
þøÿ
ü
ü
üýú

ú	üû
ýü	ÿû




üÿýþû
ÿ




















ü
ü
ý
ý€ € € ¶   Tr   )r¼   r³   Zpygments.lexerr   r   r   r   r   r   r   Zpygments.tokenr	   r
   r   r   r   r   r   r   r   r   Ú__all__r   r   r   r   r±   r±   r±   r²   Ú<module>   s   
$0     J