o
    ‡ÎÖaFÝ  ã                   @   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-2021 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dgZdgZejej	B ej
B ZdZdZdZd	Zd
Zi ddeef ejdfedƒg“ddefde 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f edfde efde edfg“dedƒdedfd edfded!fd"e efd#e efd$edfd%e 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d,fd-efd.e edfd'ejfd/ed0fedƒg“d1d ed2fd3edfedƒg“d4d5edfedƒg“d6d$edfedƒg“d7d8ejdfed6ƒg“d9edƒd:eef e j!dfd;eef e"e j!e j#e j!ƒdfd<eef e"e j!e j#e j!ƒdfd=e e jd>fd=e e j$d?fd@eef e%j&dfdAe%j'dfdBe%j(dfdCe%j)dfdDe e"eeƒdfdEe e"eej*j+ƒdfdFedGfdHe e"eej,ƒdfdIej-dJfe.dKdLdM�ej-dfdNej-dfe.dOdPdLdQ�ej-dfe.dRdPdLdQ�ej-dfeedfg“dSdTe j#fdUe e jfdVe jfdWe j#fdXe j#fd=e e jdfg“dYdTe j#fdUe e j$fdVe j$fdZe j#fd[eef e j#fd\eeef e j#fd]eef e j#fd=e e j$dfg“d^d_e e j$fd`e j$fdZe j#fd=e e j$dfg“daedƒeej/dfed9ƒg“dbedƒeej*j+dfed9ƒg“d)edƒeejdfedƒg“i dcedƒeej*dfedƒg“dddee j0dfg“dfedƒeej-dfg“dedƒdIefd/edfdedgfe.dhdPdLdQ�edfdiedjfdkedlfdmednfdoedpfdqe"eeƒfdredsfdtedufdvedwfdxedyfdzeduf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j1d~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$d^feej*fg“dedƒd/efd�edfd3efedƒg“d�edƒd‘ed’fedƒg“d“edƒd”edfeej1dfg“d•edƒded–fedƒg“d—d.e efd˜ejdfedbƒg“d™edƒd/ed2fd$efdšejd›fdœejfd3efed�ƒg“d›edƒd”edfeej1fed9ƒg“dsedƒdžedŸfd�ed fed¡ƒg“d¢edƒd/edfd£efd.e ed9fd¤ed¥fed¡ƒg“d¥edƒdžed‹fedƒg“dwedƒd/edfd$efd¦edbfedbƒg“¥i d§edƒd=e e j$d¨fed©ƒg“dªedƒd=e e j$d«fedƒg“d¬dTe j#fed^ƒg“d­edƒe.d®dLdM�edfd¯efd°e edfg“d¡ed­ƒed9ƒg“d±ed­ƒedƒg“d²edƒd³efedƒg“d´edƒe.dµdLdM�edfedƒg“d¶edƒd�edfd·efe.d¸dLdM�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 edÅfdÆejd)f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 ejdfdÏeef 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d3efedÓƒg“dÔedƒdedÕfedƒg“dÈedƒd=e e j$dÖfeed×fg“d×d3efedØƒg“¥Z2dÙdÚ„ Z3dÛdÜ„ Z4dÝS )Þr   z^
    For `Inform 6 <http://inform-fiction.org/>`_ source code.

    .. versionadded:: 2.0
    zInform 6Úinform6Úi6z*.infz[a-zA-Z_]\w*u	   \-â€�-â€”u   "â€œâ€�u   'â€˜â€™u
   \nÂ…â€¨â€©Úrootz\A(!%%[^%s]*[%s])+Ú	directiveÚ_whitespaceú\s+ú![^%s]*r   ú\[zmany-valuesz:|(?=;)ú#popú<)Ú
expressionÚ_expressionr"   z(?=sp\b)z(?=[%s%s$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[%s][^@][%s]z([%s])(@\{[0-9a-fA-F]*\})([%s])z([%s])(@.{2})([%s])ú[%s])r   údictionary-word)r   Ústringz)\$[+%s][0-9]*\.?[0-9]*([eE][+%s]?[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))ÚprefixrF   )2ÚcallÚcopyÚcreateÚDEBUGÚdestroyÚDICT_CHAR_SIZEÚDICT_ENTRY_BYTESÚDICT_IS_UNICODEÚDICT_WORD_SIZEÚ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ÚWORDSIZEr5   z[~^]+z[^~^\\@({%s]+z[({]z@\{[0-9a-fA-F]*\}z@.{2}r6   z\\z(@(\\\s*[%s]\s*)*@((\\\s*[%s]\s*)*[0-9])*z@@(\\\s*[%s]\s*)*\{((\\\s*[%s]\s*)*[0-9a-fA-F])*(\\\s*[%s]\s*)*\}z!@(\\\s*[%s]\s*)*.(\\\s*[%s]\s*)*.úplain-stringz[^~^\\({\[\]%s]+z
[~^({\[\]]Ú	_constantÚ_globalú	variable?r7   z\S\w*r9   )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!   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)r3   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ÚinitialÚinitstrÚlastÚlongÚmetaÚmultiÚmultiexceptÚ	multiheldÚmultiinsideÚnounÚnumberÚonlyÚprivateÚreplaceÚreverseÚscopeÚscoreÚspecialr6   ÚtableÚterminatingÚtimeÚtopicÚwarningÚwithzstatic\bz[%s]{1,2}>|[+=]rÀ   rÊ   z(additive|long)\brË   )Úassemblyr³   ÚexpressionsÚlinesÚlinkerÚobjectsÚoffÚonÚsymbolsÚtokensÚverbsr&   z[;{}])ÚboxÚbreakÚcontinuer   ÚgiveÚ	inversionÚnew_lineÚquitÚreadÚremoveÚreturnÚrfalseÚrtrueÚspacesr6   Ú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)r1   r¯   r  zprint(_ret)?\b|(?=[%s])z
print-listz\.ú@Úopcodez#(?![agrnw]\$|#)zmove\b)r   r1   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(?=(\s+|(![^%s]*))*\))r  r  )r.   r"   )r2   r"   r2   Úformr  )r   r  )Úoperandsr¬   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   Úget_tokens_unprocessedr   ÚVariabler
   r	   Úappendr   Úpop)r›   ÚtextÚobjectloop_queueÚobjectloop_token_countÚprevious_tokenÚindexÚtokenr#   © r#  ú=/usr/lib/python3/dist-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  Úresultr#  r#  r$  Úanalyse_text  s   zInform6Lexer.analyse_textN)5Ú__name__Ú
__module__Ú__qualname__Ú__doc__r”   ÚaliasesÚ	filenamesr%  Ú	MULTILINEÚDOTALLÚUNICODEÚflagsÚ_nameÚ_dashÚ_dquoteÚ_squoteÚ_newliner
   ÚPreprocr   r	   ÚSingler   r   r   ÚWordr   ÚLabelr   r   ÚPseudoÚDeclarationr   ÚCharr   ÚEscapeÚDoubler   ÚFloatÚHexÚBinÚIntegerr  ÚGlobalÚFunctionÚBuiltinr   ÚConstantÚOtherÚClassrý   r  r*  r#  r#  r#  r$  r      sö   ÿýÿþú
ûöÿ
úí

ÿÿ
ñå,úÔ4ýÌ9þÇ=þÃA
þ¿G
ÿ
ÿ
ÿ


ÿ
þý

öõôóÅ¹ ú �ú ÿÿÿþ
ÿô �ò ü �ä #
ý �Ý (ý �Ø -
ý �Ó 2
ý �Î 8
ÿ �È ;
þ �Å Aÿýüÿÿÿÿÿÿÿÿÿ
Ú �¿ j
ý �– o
û �‘ wû �‰ ý ��  
ý � �ú  ý � �õ  

ý � �ð  
ù � �ë  ü � �â  %ü � �Û  +ú � �Õ  3ý � �Í  9û � �Ç  Aý � �¿  Fý � �º  Kþ � �µ  Qûúö � �¯  ]þ � �£  aþ � �Ÿ  eý � �›  jþýú � �–  týüÿÿÿ
ÿç � �Œ   ÿÿþÿ÷ � � �ð   ý � � �å    ý � � �à   %ü � � �Û   +ý � � �Õ   2ý � � �Î   7þ � � �É   =r   c                   @   s>  e Zd ZdZdZddgZddgZejej	B ej
B ZejZejZejZde Zi Zg d¢ZeD �]iZi d	eejd
 ƒ“ddej ejdfg“d
defdejdfde ejdfedƒg“dde ejfde ejdfg“ddejdfdeef ejfde ejdfdeeef edfde edfde ejfg“ddeef efde ejdfd ed!fd"ed#fdejdfd$eef eee e!d%d&d'�eƒfd(eeef ed)fd*e efg“d!d+efdejdfd$eef eee e!d,d-d'�eƒdfedƒg“d#d+efdejdfd$eef eee e!d%d.d'�eƒdfedƒg“dd/ejfdejd0fd1ejdfg“dd2e ejfd3ej"fde ejdfg“d)defdejdfd4e ed5fd6e efd7e ejdfedƒg“d5d+efdejdfd8ed9fedƒg“d9d+efdejdfd:e ed;fed<ƒg“d;d=eef ejfd>eef ej#fd?eef e e!dd@�fdAeef efdejdfg“d&dBeef ejfdCeeef ejfdDeef ejdEfg“d.e$d&ƒdFeeeeƒfg“d-dGeee e!dd@�eƒfg“dHe eeej%eƒfdIe eee&eeeƒdJfdKe eee&eeeƒfdLeee e!dd@�eƒfgdMejfdBeef ejdfdNeef ejfdDeef ejfdOejfgdBeef ejfdPeeef ejfdDeef ejdEfdQeef e&fdRe ej%fdSe eee&eƒdfdTe efgdUœ¥ee< ejD ]+Z'e'd
k�ru�qleeje' ƒee e'< e' (dV¡�s–e$dWƒe$eƒgee e' dXdY…< �qlq.dZd[„ Z)dXS )\r   zW
    For `Inform 7 <http://inform7.com/>`_ source code.

    .. versionadded:: 2.0
    zInform 7Úinform7Úi7z*.niz*.i7xz\A|(?<=[%s]))ú+i6t-not-inlineú+i6t-inlineú+i6t-use-optionú+i6-rootr   ú	+i6t-rootz[^%s]*)r   ú+pz(\|?\s)+r   z+commentr4   )ú+mainú+titlingú+titling-string)rU  ú	+heading?rW  z[^%s]+r   rV  z[^%s.;:|%s]+z[%s]{2}|(?<=[\s%s])\|[\s%s])r   rX  z[.;:]|(?<=[\s%s])\|z[|%s]rU  z(?i)[^%s:a\[(|%s]+z+textr0   z+phrase-definitionz
(?i)\bas\bz+use-optionz(\([%s])(.*?)([%s]\)))rR  r   rO  )ÚstateÚi6tz (%s|(?<=[\s;:.%s]))\|\s|[%s]{2,}rX  z(?i)[a(|%s]r   )rR  r   r   r&   rP  rQ  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+documentationr/   z&(?i)(%s)\s*(chapter|example)\s*:[^%s]*z(?i)(%s)\s*section\s*:[^%s]*z((%s)\t.*?[%s])+©rY  z[^%s\[]+|[%s\[]z(%s)@c( .*?)?([%s]|\Z)z(%s)@([%s]+|Purpose:)[^%s]*z(%s)@p( .*?)?([%s]|\Z)rT  z(\{)(N)(\})z(\{)(\S[^}]*)?(\})z(\{[%s])(![^}]*)(\}?)z(\{[%s])(lines)(:)([^}]*)(\}?)ú+linesz (\{[%s])([^:}]*)(:?)([^}]*)(\}?)z(\(\+)(.*?)(\+\)|\Z)z[^@]+z(%s)@([%s]|Purpose:)r  z(%s)@([%s]|Purpose:)[^%s]*z(%s)@\w*[ %s]r   z(\{)([%s]endlines)(\})z[^@!{]+?([%s]|\Z)|.)ú+i6trT  r\  Ú_r]  Nr   c                 K   sH   |  dd¡}|| jvr| j |¡| _n| j| | _tj| fi |¤Ž d S )NrZ  rO  )ÚgetÚ_all_tokensÚ	__class__Úprocess_tokendefÚ_tokensr   Ú__init__)r›   ÚoptionsÚlevelr#  r#  r$  rd  Ò  s
   
zInform7Lexer.__init__)*r+  r,  r-  r.  r”   r/  r0  r%  r1  r2  r3  r4  r   r6  r7  r9  Ú_startrý   Útoken_variantsrf  Úlistr
   r:  r	   Ú	Multiliner   ÚHeadingr   r   rB  r   r   r   r   ÚInterpolÚ
Subheadingr   r;  r   r"  Ú
startswithrd  r#  r#  r#  r$  r     sÖ   
ÿÿÿþ

ÿûúþó
ÿùï

ÿþÿÿÿ
ôæ(

þýüøØ2

ÿþýùÎ;

ýÅ@ýÀE

ÿù»N
ü²T
ü¬Zÿÿ
ÿ

ÿ
ø¦d
ÿÿ
ÿûœlþ”pÿÿÿ�vÿ
ÿþ
ÿÿÿÿ÷
ÿ
ÿù

ÿÿ
ÿÿ
õ �ô 
!
 €ûr   c                   @   s*   e Zd ZdZdZdgZdgZd	dd„ZdS )
r   z„
    For `Inform 6 template
    <http://inform7.com/sources/src/i6template/Woven/index.html>`_ code.

    .. versionadded:: 2.0
    zInform 6 templaterZ  z*.i6t©rS  c                 C   s   t  | ||¡S )N)r   r  )r›   r  Ústackr#  r#  r$  r  ç  s   z+Inform6TemplateLexer.get_tokens_unprocessedN)ro  )r+  r,  r-  r.  r”   r/  r0  r  r#  r#  r#  r$  r   Û  s    r   c                   @   s¨  e Zd ZdZdZdgZdgZejej	B Z
dZdZdZdZd	Zd
Zdeef Zdeef 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ef 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d*ed'fd+ed,fd-eef eejeedd�eƒd.fd/eef eejeedd�eƒdfd0eef eej eedd�eƒd1fedƒd2e ed3fed4ƒg
“d4ed#ƒd5eef eej eedd�eƒd6fed7ƒg“d8ded9fedƒd:ed;fed<ƒg“d=ded9fedƒed'ƒg“d>d?efded)fd*ed'fd@e!j"fd0eef eej#eedd�eƒfedƒg“ded>ƒd!edAfg“dBdCe$j%d'fed>ƒd!edDfg“d#g edƒ‘dEed6f‘dFedGf‘dedHf‘dIed'f‘dJe&j'd'f‘dKe&j(d'f‘dLe&j)d'f‘dMe&j*d'f‘dNe$j+dOf‘dPe$j,dQf‘dRe$j+dSf‘dTe$j,dUf‘dVe$j-dWf‘dXe$j-dYf‘dZe$j-d[f‘d\e$j-d]f‘d^e ee!j"eedd�e!j"ƒf‘d_e ee!j"eedd�eƒd`f‘dae ee!j"eedd�e!j"ƒdbf‘dce ee!j"eedd�ƒf‘dde ee!j"eedd�e!j"ƒdef‘dfe ee!eedd�e!j"ƒdgf‘dhej.d'f‘die!j"djf‘dke!j"f‘dle!j"dmf‘dne!j"dof‘dpe!j"d'f‘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!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.j0d'f‘d‹e!j"def‘dŒe ee1j2eedd�e1ƒd�f‘dŽe1j2f‘d�ej.d'f‘“d3ed#ƒeed'fed'ƒg“d�dEed‘fdFedAfd’efd“ed3fd”ed'fedƒee1d3fd•e1d–fd—e ee1j2eedd�e1j2ƒfd˜efg
“d™ed�ƒed'ƒg“dšd›e1d'fed™ƒg“dœdCe$j%d7fed™ƒg“d�dEedxfde!j"džfed3ƒg“i dŸd*e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d3fed™ƒg“d¦d§eef eej eedd�ƒd'fd¨eeef eej3eedd�ej ƒd'fd©efed#ƒeej d'fed'ƒg“dªd«e 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·e1d'fed™ƒg“d¶d¸e!d'fedƒg“d¹dºefeej4d»fedƒg“d¼edƒd½e!drfedrƒg“d¾d¿efdEedÀfd+edÁfeej3fedƒg“dÀedƒdÂe$j5d'fg“dÁedÃƒedƒdÄe eeeedd�e!ƒd3fdÅe efeej/fed7ƒg“d+d+ed'fg“dÆdÇe$j%fdÈeef ed'feejd'fedƒg“¥i dÉdÊedËfedƒeej3d'fed'ƒg“dÌdÍe1j2d'fedƒee1fed'ƒg“dÎdEe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ÓdIed'fd…e!j"d'fdÔe!j"feej3d'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j/f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ef e6j7fee6j,fee6j8fdÞe efg“dÃdNe$j+dßfdPe$j,dàfdRe$j+dáfdTe$j,dâfg“dãdäe e$j9fg“dådæe$j%fdçeef 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dRdëdëƒ“düedRdëdìƒ“dýedRdìdëƒ“dþedRdìdìƒ“¥edTdëdëƒedTdëdìƒedTdìdëƒedTdì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dRe$j-fg�de$j-f�de$j-f�de$j-d'fdTe$j-fgdÿe$j-f�de$j-fdRe$j-d'fg�de$j-f�de$j-fdTe$j-d'fg�dœ¥Z;�d�d	„ Z<�d
�d„ Z=dS (  r   z;
    For `TADS 3 <http://www.tads.org/>`_ 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|%s|%s)z(?:\\\n|[^\S\n]|%s|%s)Nc           
   	   C   sz  |rd  dd„ |D ƒ¡}|rdnd}|rtjntj}| r"d||f nd}d| r)dnd|r.d	nd
f }d| }g }	| rN|	d| |dfd| tjf||fg7 }	n|	 ||df¡ |	tdƒd| |fg7 }	|rw|	 d||f tjdd| |ff¡ n0|	d||||f t	j
fdtjdd| |ffdtjdd| |ffd||||f tj|ftdƒg7 }	|	tdƒd||||f tjfd|fg7 }	|	S )NÚ c                 S   s,   g | ]}d t  | ¡ ¡t  | ¡ ¡f ‘qS )z	(?:%s|%s))r%  ÚescapeÚlowerÚupper)Ú.0Úcr#  r#  r$  Ú
<listcomp>  s
    þ
ÿz1Tads3Lexer._make_string_state.<locals>.<listcomp>rÌ   ú'ú+|%s(?!%s{2})ú%s%sÚtÚdÚsz%sqtz%s{3,}r   z\\%s+ú
s/verbatimz[^\\<&{}%s]+z!\\?<(/|\\\\|(?!%s)\\)%s(?=[\s=>])z%sqsz(\\?<!([^><\\%s]|<(?!<)|\\%s%s|%s|\\.)*>?z(?i)\\?<listing(?=[\s=>]|\\>)z%sqs/listingz(?i)\\?<xmp(?=[\s=>]|\\>)z%sqs/xmpz(\\?<([^\s=><\\%s]|<(?!<)|\\%s%s|%s|\\.)*ús/entityús/escapeú%\{([^}<\\%s]|<(?!<)|\\%s%s|%s|\\.)*\}z[\\&{}<])Újoinr   rB  r;  rA  r  r   r   ÚTagr
   rj  rl  )
ÚtripleÚdoubleÚverbatimÚ_escapeÚcharr"  Úescaped_quotesry   Útag_state_namerY  r#  r#  r$  Ú_make_string_state  sr   
þý
þÿþ
ÿÿÿÿ
ÿþö
ÿÿüzTads3Lexer._make_string_statec                 C   sò   |rdnd}| r
dnd}d| rdnd|rdndf }|rt jnt j}| r*d	||f nd}d
||f |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||||f t jfd||||f tj	ft
dƒt
dƒt
dƒdtj	fgS )NrÌ   ry  ú{3,}rr  z%s%sqtr|  r}  r~  rz  r{  r/   z
(\s|\\\n)+z	(=)(\\?")zdqs/%sz	(=)(\\?')zsqs/%srÏ   zuqs/%sz\\?>r   r‚  z$([^\s=><\\%s]|<(?!<)|\\%s%s|%s|\\.)+r�  r  r€  z[\\{}&])r   rB  r;  r	   r   r   r   r„  rl  Ú	Attributer   )r…  r†  rˆ  r‰  Ú
quantifierÚ
state_namer"  rŠ  r#  r#  r$  Ú_make_tag_state3  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}|r-d||f nd}d||f |dfd|t ju r?dnd| f |d	ftd
ƒtdƒd||||f t jfd|t ju r^dnd |ftdƒd|fgS )NrÌ   ry  r�  rr  rz  r{  r-   z\\?r   r  r€  r‚  z([^\s"\'<%s{}\\&])+ú>r�  z["\'\s&{<}\\])r   rB  r;  rK  r   rl  )	Ú
terminatorÚhost_tripleÚhost_doublerˆ  r"  Ú	host_charÚhost_quantifierÚ
host_tokenrŠ  r#  r#  r$  Ú_make_attribute_value_stateL  s6   ÿÿÿÿ
ÿÿÿõ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)Úblockz(%s)(%s*)(\()Ú
whitespacer[  )ú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\}r0   )r   rÕ   z(%s?)(%s*)(\())úblock?r�  rž  z(%s)(%s*)(\{)z(%s)(%s*)(:))rŸ  r   rÕ   z->|%sÚmainzmain/object-bodyz(%s)(%s*)(=?))r   Úmorer¢  r/   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   Údqsry  )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Ÿ  r0   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(%s)(%s*)(?=:)z(%s)(%s+)(%s)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\\/]|/(?![/*]))+|\)r6   z(\[)(%s*)(badness)z
->|%s|[()]r³  z(<<([^>]|>>>|>(?!>))*>>)+z(?=%s?%s*[({])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^%s*#(%s|[^\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_<<(%%(_(%s|\\?.)|[\-+ ,#]|\[\d*\]?)*\d*\.?\d*(%s|\\?.)|\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 | j f }d}tj| |fi |¤ŽD ]T\}}}|dkr3|tju r2t d|| j | j f |¡r2d}n0|tju ra|dkrGt d| |¡rGd}nt d| |¡rT|d7 }nt d| |¡r`|d8 }nt}|||fV  qd S )Nz^%s*#%s*r   z%sif%s+(0|nil)%s*$\n?r  z%sel(if|se)\bz%sifz	%sendif\b)Ú_ws_ppr   r  r
   r:  r%  Úmatch)r›   r  ÚkwargsÚppÚif_false_levelr!  r"  r#   r#  r#  r$  r  4  s8   €ÿ
ÿÿÿ€
ÿ
€î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š™™™™™¹?r#  r(  r#  r#  r$  r*  K  s   zTads3Lexer.analyse_text)>r+  r,  r-  r.  r”   r/  r0  r%  r2  r1  r4  Ú_comment_singleÚ_comment_multilinerˆ  r5  Ú	_no_quoteÚ	_operatorÚ_wsrÉ  rŒ  r‘  r™  r	   r   r   r   rH  r   r   r   r   r   r  r   ÚReservedr=  r   rl  r   rD  rC  ÚOctrF  rB  r;  ÚRegexrI  rJ  r>  r   r<  rL  Ú	ExceptionrK  r
   r:  rj  rA  ÚEntityrý   r  r*  r#  r#  r#  r$  r   ë  sÔ   2
ÿý
ÿýñÿþîýê
ÿý
ÿþ
ÿýîå/
ÿþûÑ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.  r%  Úpygments.lexerr   r   r   r   r   r   r   Úpygments.tokenr	   r
   r   r   r   r   r   r   r   r   Ú__all__r   r   r   r   r#  r#  r#  r$  Ú<module>   s    
$0   } L