o aF@sdZddlZddlmZmZmZmZmZmZm Z ddl m Z m Z m Z mZmZmZmZmZmZmZgdZGdddeZGdd d eZGd d d eZGd d d eZdS)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) RegexLexerincludebygroupsusingthisdefaultwords) TextCommentOperatorKeywordNameStringNumber PunctuationErrorGeneric) Inform6LexerInform6TemplateLexer Inform7Lexer Tads3Lexerc@s eZdZdZdZddgZdgZejej Bej BZ dZ dZ dZd Zd Zid d eefejd fed gddefdeejfgdeddedfdedfdefedgdeddedfdeefedfde efde edfgdeddedfd edfded!fd"eefd#e efd$edfd%e edfd&ejdfd'efd(ejd)fd*efedg d+ded,fd-efd.e edfd'ejfd/ed0fedgd1d ed2fd3edfedgd4d5edfedgd6d$edfedgd7d8ejdfed6gd9edd:eefe j!dfd;eefe"e j!e j#e j!dfdfd=ee j$d?fd@e e fe%j&dfdAe%j'dfdBe%j(dfdCe%j)dfdDe e"eedfdEe e"eej*j+dfdFedGfdHe e"eej,dfdIej-dJfe.dKdLdMej-dfdNej-dfe.dOdPdLdQej-dfe.dRdPdLdQej-dfe edfgdSdTe j#fdUee jfdVe jfdWe j#fdXe j#fd=ee jdfgdYdTe j#fdUee j$fdVe j$fdZe j#fd[eefe j#fd\eeefe j#fd]eefe j#fd=ee j$dfgd^d_ee j$fd`e j$fdZe j#fd=ee j$dfgdaede ej/dfed9gdbede ej*j+dfed9gd)ede ejdfedgidcede ej*dfedgdddee j0dfgdfede ej-dfgd eddIefd/edfdedgfe.dhdPdLdQedfdiedjfdkedlfdmednfdoedpfdqe"eefdredsfdtedufdvedwfdxedyfdzedufd{ed|fd}ed~fdedfdedfdedfdedfdedfdedfe ej1d~fgdede ej,dfedgdedd/edfdefde j$d^fe ej*fgdedd/efdedfd3efedgdeddedfedgdeddedfe ej1dfgdeddedfedgdd.e efdejdfedbgdedd/ed2fd$efdejdfdejfd3efedgdeddedfe ej1fed9gdseddedfdedfedgdedd/edfdefd.e ed9fdedfedgdeddedfedgdwedd/edfd$efdedbfedbgidedd=ee j$dfedgdedd=ee j$dfedgddTe j#fed^gdede.ddLdMedfdefde edfgdeded9gdededgdeddefedgdede.ddLdMedfedgdeddedfdefe.ddLdMedfdefdedfdedfdedfdedfdedfdeedfdejd)fdedfded fdedfdedfed˃gdeddedfdeejdfde efej,dfedgdeddedfedgdedd/edfed҃gdedd/edfd3efedӃgdeddedfedgdedd=ee j$dfe edfgdd3efed؃gZ2ddڄZ3dd܄Z4dS)rz^ For `Inform 6 `_ source code. .. versionadded:: 2.0 zInform 6inform6i6z*.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_]))rvaluez\+\+|[%s]{1,2}(?!>)|~~?z(?=[()\[%s,?@{:;])r!\(\))r statementslocalsz>(?=(\s+|(![^%s]*))*[>;])z\+\+|[%s]{2}(?!>),z6&&?|\|\|?|[=~><]?=|[%s]{1,2}>?|\.\.?[&#]?|::|[<>+*/%%]z*(has|hasnt|in|notin|ofclass|or|provides)\bzsp\bz\?~?label?z[@{]_assembly-expression)#pushr"z[\[\]]z[%s]>;#pop:3_for-expression#pop:2:_keyword-expressionz(from|near|to)\b_list-expression_object-expressionzhas\br#z [%s][^@][%s]z([%s])(@\{[0-9a-fA-F]*\})([%s])z([%s])(@.{2})([%s])[%s])rdictionary-word)rstringz)\$[+%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]\$)robsolete-dictionary-wordz (#r\$)(%s)#)rsystem-constant) childchildreneldereldestglkindirect metaclassparentrandomsiblingyoungeryoungestz\b)suffixz#(?i)(Class|Object|Routine|String)\b)2 Box__RoutineCA__PrCDefArt CInDefArtCl__MsCopy__PrimitiveCP__TabDA__PrDB__PrDefArt Dynam__String EnglishNumber Glk__WrapIA__PrIB__PrInDefArtMain__ Meta__classOB__Move OB__RemoveOC__ClOP__Pr Print__Addr Print__PNamePrintShortNameRA__PrRA__ScRL__Pr R_ProcessRT__ChGRT__ChGt RT__ChLDB RT__ChLDWRT__ChPR RT__ChPrintA RT__ChPrintC RT__ChPrintO RT__ChPrintSRT__ChPSRT__ChR RT__ChSTB RT__ChSTWRT__ChTRT__ErrRT__TrPSRV__Pr Symb__TabUnsigned__CompareWV__Pr Z__Regionz(?i))prefixrF)2callcopycreateDEBUGdestroyDICT_CHAR_SIZEDICT_ENTRY_BYTESDICT_IS_UNICODEDICT_WORD_SIZEfalseFLOAT_INFINITY FLOAT_NANFLOAT_NINFINITYGOBJFIELD_CHAINGOBJFIELD_CHILDGOBJFIELD_NAMEGOBJFIELD_PARENTGOBJFIELD_PROPTABGOBJFIELD_SIBLINGGOBJ_EXT_STARTGOBJ_TOTAL_LENGTHGrammar__VersionINDIV_PROP_STARTINFIXinfix__watching MODULE_MODEnamenothingNUM_ATTR_BYTESprintprint_to_arrayrecreate remainingselfsender STRICT_MODEsw__var sys__glob0 sys__glob1 sys__glob2sys_statusline_flag TARGET_GLULX TARGET_ZCODE temp__global2 temp__global3 temp__global4 temp_globaltrue USE_MODULESWORDSIZEr5z[~^]+z [^~^\\@({%s]+z[({]z@\{[0-9a-fA-F]*\}z@.{2}r6z\\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?r7z\S\w*r9)rr&r' routine-name?) abbreviateendif dictionaryifdefiffalseifndefifnotiftrueifv3ifv5releaseserialswitches system_fileversionz(?i)(array|global)\b)rdirective-keyword?rz(?i)attribute\b)ralias?rz (?i)class\b) object-body duplicates class-namez(?i)(constant|default)\b)rr!rz(?i)(end\b)(.*)z(?i)(extend|verb)\bgrammarz(?i)fake_action\b)rrz (?i)import\bmanifestz(?i)(include|link|origsource)\b)rbefore-plain-string?z(?i)(lowstring|undef)\bz (?i)message\b)r diagnosticz(?i)(nearby|object)\b)r _object-headz(?i)property\b)rrrproperty-keyword*z (?i)replace\b)rrrz(?i)statusline\b)rrz (?i)stub\b)rrz (?i)trace\b)rtrace-keyword?rz(?i)zcharacter\b)rrrrr'z\*"\]rzalias\b)rrrz#(?=[,;]|(class|has|private|with)\b)r)rr!r"rz(class|has|private|with)\brclass\bz class-segmentz(has|private|with)\b)r3r"=)rr)r grammar-linez_directive-keywordrz[/*]z(noun|scope)\bz=routinez (?i)global\br)rmessage-string)rrrr)rrrz_directive-keyword!)$additivealiasbufferclasscreaturedataerror fatalerrorfirsthasheldinitialinitstrlastlongmetamulti multiexcept multiheld multiinsidenounnumberonlyprivatereplacereversescopescorespecialr6table terminatingtimetopicwarningwithzstatic\bz[%s]{1,2}>|[+=]rrz(additive|long)\br) assemblyr expressionslineslinkerobjectsoffonsymbolstokensverbsr&z[;{}])boxbreakcontinuergive inversionnew_linequitreadremovereturnrfalsertruespacesr6untilz (do|else)\bz(font|style)\b)rmiscellaneous-keyword?zfor\b)for(?z(if|switch|while))r!r"rz(jump|save|restore)\b)rr)z objectloop\b)r1rrzprint(_ret)?\b|(?=[%s])z print-listz\.@opcodez#(?![agrnw]\$|#)zmove\b)rr1r"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]*))*\))rr)r.r")r2r"r2formr)rr )operandsrr)r*r"ccsg}d}d}t||D]^\}}}|tjur$|dkr$|||gg}d}n=|dkr=|tvr4|tvr4|d8}||||fn$|dkr[|dddkrOt|dd<|rY|dV|sQd}|||fV|tvrk|tvrk|}q |rx|dV|sndSdS)Ninr)) rget_tokens_unprocessedr Variabler r appendr pop)rtextobjectloop_queueobjectloop_token_countprevious_tokenindextokenr#r#=/usr/lib/python3/dist-packages/pygments/lexers/int_fiction.pyrs8      z#Inform6Lexer.get_tokens_unprocessedcCs d}td|tjr|d7}|S)zWe try to find a keyword which seem relatively common, unfortunately there is a decent overlap with Smalltalk keywords otherwise here..rz origsourceg?)research IGNORECASErresultr#r#r$ analyse_textszInform6Lexer.analyse_textN)5__name__ __module__ __qualname____doc__raliases filenamesr% MULTILINEDOTALLUNICODEflags_name_dash_dquote_squote_newliner Preprocrr Singlerrr Wordr Labelrr Pseudo DeclarationrCharrEscapeDoublerFloatHexBinIntegerrGlobalFunctionBuiltinrConstantOtherClassrrr*r#r#r#r$rs        , 49=A G                 # ( - 2 8 ; A  j o w     %+ 39AFKQ ]aejt   %+27= rc@s>eZdZdZdZddgZddgZejej Bej BZ e j Z e jZe jZdeZiZgdZeD]iZid ee jd d d e jejd fgd defdejdfdeejdfedgddeejfdeejdfgddejdfdeefejfdeejdfdeeefedfdeedfdeejfgddeefefdeejdfd ed!fd"ed#fdejdfd$e e feee e!d%d&d'efd(eeefed)fd*eefgd!d+efdejdfd$e e feee e!d,d-d'edfedgd#d+efdejdfd$e e feee e!d%d.d'edfedgdd/ejfdejd0fd1ejdfgdd2eejfd3ej"fdeejdfgd)defdejdfd4e ed5fd6e efd7eejdfedgd5d+efdejdfd8ed9fedgd9d+efdejdfd:e ed;fed<gd;d=eefejfd>eefej#fd?eefe e!dd@fdAeefefdejdfgd&dBeefejfdCee efejfdDeefejdEfgd.e$d&dFeeeefgd-dGeee e!dd@efgdHe eeej%efdIe eee&eeedJfdKe eee&eeefdLeee e!dd@efgdMejfdBeefejdfdNee fejfdDeefejfdOejfgdBeefejfdPee efejfdDeefejdEfdQeefe&fdReej%fdSe eee&edfdTeefgdUee<e jD]+Z'e'd kruqlee je'eee'<e'(dVse$dWe$egeee'dXdY<qlq.dZd[Z)dXS)\rzW For `Inform 7 `_ source code. .. versionadded:: 2.0 zInform 7inform7i7z*.niz*.i7xz \A|(?<=[%s]))+i6t-not-inline +i6t-inline+i6t-use-option+i6-rootr +i6t-rootz[^%s]*)r+pz(\|?\s)+rz+commentr4)+main+titling+titling-string)rU +heading?rWz[^%s]+rrVz [^%s.;:|%s]+z[%s]{2}|(?<=[\s%s])\|[\s%s])rrXz[.;:]|(?<=[\s%s])\|z[|%s]rUz(?i)[^%s:a\[(|%s]+z+textr0z+phrase-definitionz (?i)\bas\bz +use-optionz(\([%s])(.*?)([%s]\)))rRrrO)statei6tz (%s|(?<=[\s;:.%s]))\|\s|[%s]{2,}rXz (?i)[a(|%s]r)rRrrr&rPrQz[^\[\]]+r+rz[^\[%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])+rYz[^%s\[]+|[%s\[]z(%s)@c( .*?)?([%s]|\Z)z(%s)@([%s]+|Purpose:)[^%s]*z(%s)@p( .*?)?([%s]|\Z)rTz (\{)(N)(\})z(\{)(\S[^}]*)?(\})z(\{[%s])(![^}]*)(\}?)z(\{[%s])(lines)(:)([^}]*)(\}?)+linesz (\{[%s])([^:}]*)(:?)([^}]*)(\}?)z(\(\+)(.*?)(\+\)|\Z)z[^@]+z(%s)@([%s]|Purpose:)rz(%s)@([%s]|Purpose:)[^%s]*z (%s)@\w*[ %s]rz(\{)([%s]endlines)(\})z[^@!{]+?([%s]|\Z)|.)+i6trTr\_r]NrcKsH|dd}||jvr|j||_n|j||_tj|fi|dS)NrZrO)get _all_tokens __class__process_tokendef_tokensr__init__)roptionslevelr#r#r$rds   zInform7Lexer.__init__)*r+r,r-r.rr/r0r%r1r2r3r4rr6r7r9_startrtoken_variantsrflistr r:r MultilinerHeadingrrrBrrrrInterpol Subheadingrr;r r" startswithrdr#r#r#r$rs            (  2  ;  @ E   N T  Z    d   lpv             !    rc@s*eZdZdZdZdgZdgZd ddZdS) rz For `Inform 6 template `_ code. .. versionadded:: 2.0 zInform 6 templaterZz*.i6trScCst|||S)N)rr)rrstackr#r#r$rsz+Inform6TemplateLexer.get_tokens_unprocessedN)ro)r+r,r-r.rr/r0rr#r#r#r$rs rc@s eZdZdZdZdgZdgZejej BZ dZ dZ dZ dZd Zd Zd e e fZd e e fZd e fddZe fddZe fddZiddefdedfdefdedfdeefeejeeddedfeddefd efd!ed"fg d"ed#ed$gd%d&ed'fded(fedgdd&efded)fd*ed'fd+ed,fd-eefeejeedded.fd/eefeejeeddedfd0eefeej eedded1fedd2eed3fed4g d4ed#d5eefeej eedded6fed7gd8ded9fedd:ed;fed<gd=ded9feded'gd>d?efded)fd*ed'fd@e!j"fd0eefeej#eeddefedgded>d!edAfgdBdCe$j%d'fed>d!edDfgd#geddEed6fdFedGfdedHfdIed'fdJe&j'd'fdKe&j(d'fdLe&j)d'fdMe&j*d'fdNe$j+dOfdPe$j,dQfdRe$j+dSfdTe$j,dUfdVe$j-dWfdXe$j-dYfdZe$j-d[fd\e$j-d]fd^eee!j"eedde!j"fd_eee!j"eedded`fdaeee!j"eedde!j"dbfdceee!j"eeddfddeee!j"eedde!j"defdfeee!eedde!j"dgfdhej.d'fdie!j"djfdke!j"fdle!j"dmfdne!j"dofdpe!j"d'fdqe!j"drfdse!j"dtfdue!j"dvfdwe!j"dxfdye!j"dzfd{e!j"d|fd}e!j"d~fde!j"dfde!j"d'fde!j"dfde!j/d'fde!j"d`_ source code. zTADS 3tads3z*.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 Csz|r ddd|D}|rdnd}|rtjntj}|r"d||fnd}d|r)dnd|r.d nd f}d |}g} |rN| d ||d fd|tjf||fg7} n| ||d f| tdd||fg7} |rw| d||ftjd d||ffn0| d||||ft j fdtjd d||ffdtjd d||ffd||||ftj|ftdg7} | tdd||||ftj fd|fg7} | S)NcSs,g|]}dt|t|fqS)z (?:%s|%s))r%escapelowerupper).0cr#r#r$ s   z1Tads3Lexer._make_string_state..r' +|%s(?!%s{2})%s%stdsz%sqtz%s{3,}rz\\%s+ s/verbatimz [^\\<&{}%s]+z!\\?<(/|\\\\|(?!%s)\\)%s(?=[\s=>])z%sqsz(\\?<\\%s]|<(?!<)|\\%s%s|%s|\\.)*>?z(?i)\\?]|\\>)z %sqs/listingz(?i)\\?]|\\>)z%sqs/xmpz(\\?<([^\s=><\\%s]|<(?!<)|\\%s%s|%s|\\.)*s/entitys/escape%\{([^}<\\%s]|<(?!<)|\\%s%s|%s|\\.)*\}z[\\&{}<]) joinrrBr;rArrr Tagr rjrl) tripledoubleverbatim_escapecharr"escaped_quotesrytag_state_namerYr#r#r$_make_string_statesr           zTads3Lexer._make_string_statec Cs|rdnd}|r dnd}d|rdnd|rdndf}|rtjntj}|r*d ||fnd}d ||f|d fd tfd tttjd|fdtttjd|fdtd|fdtjdfd||||ftjfd||||ftj ft dt dt ddtj fg S)Nrry{3,}rrz%s%sqtr|r}r~rzr{r/z (\s|\\\n)+z (=)(\\?")zdqs/%sz (=)(\\?')zsqs/%srzuqs/%sz\\?>rrz$([^\s=><\\%s]|<(?!<)|\\%s%s|%s|\\.)+rrrz[\\{}&]) rrBr;r rrr rrl Attributer)rrrr quantifier state_namer"rr#r#r$_make_tag_state3s<        zTads3Lexer._make_tag_statec Cs|dkrtjn |dkrtjntj}|rdnd}|rdnd}|r"tjntj}|r-d||fnd}d||f|dfd|tjur?dnd|f|d ftd td d ||||ftjfd |tjur^dnd|ftdd|fgS)Nrryrrrrzr{r-z\\?rrrrz([^\s"\'<%s{}\\&])+>rz ["\'\s&{<}\\])rrBr;rKrrl) terminator host_triple host_doublerr" host_charhost_quantifier host_tokenrr#r#r$_make_attribute_value_stateLs6   z&Tads3Lexer._make_attribute_value_stateruz\{rz;+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?/rootmore/parametersmain/parametersz\++z[^\s!"%-(*->@-_a-z{-~]+z(?!\Z)z main/rootz main/basic)robject-body/no-bracesclassesrrr,r)rrr+z\}r0)rrz(%s?)(%s*)(\())block?rrz (%s)(%s*)(\{)z (%s)(%s*)(:))rrrz->|%smainzmain/object-bodyz (%s)(%s*)(=?))rmorerr/r)rrz(?=[\[\'"<(:]))rrr grammar-rules)rrrz block/basicz[;:]+z default\b)rr block/embedz>>) more/embedrr$r)r more/listr)r more/inner main/innerrrz\*|\.{3}z(?i)0x[\da-f]+z5(\d+\.(?!\.)\d*|\.\d+)([eE][-+]?\d+)?|\d+[eE][-+]?\d+z0[0-7]+z\d+z""")rtdqsz''')rtsqsr)rdqsry)rsqszR""")rtdqrzR''')rtsqrzR")rdqrzR')rsqrz(extern)(%s+)(object\b)z(function|method)(%s*)(\())rrrrz(modify)(%s+)(grammar\b))rrr0rz#(new)(%s+(?=(?:function|method)\b))z(object)(%s+)(template\b))rtemplatez(string)(%s+)(template\b))r function-namez>(argcount|definingobj|invokee|replaced|targetobj|targetprop)\bz(break|continue|goto)\b)rlabelz0(case|extern|if|intrinsic|return|static|while)\bzcatch\b)rcatchr)rrrz(default|do|else|finally|try)\bz(dictionary|property)\b)r constantszenum\b)renumzexport\b)rrz(for|foreach)\b)rrrz(function|method)\b)rrrz grammar\b)rrrz inherited\b)r inheritedzlocal\b)r more/local main/localz)(modify|replace|switch|throw|transient)\bznew\b)rrz (nil|true)\bzobject\bz operator\b)roperatorz propertyset\b)r propertysetrzself\bz template\bz(__objref|defined)(%s*)(\())r more/__objrefrz 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)rrz\.{3}z->|\.\.z (?=;)|[:)\]]z\?)rmore/conditionalrz(is|not)(%s+)(in\b)z[^\s!"%-_a-z{-~]+rrz:(?!:)rr)rrrr(z (in|step)\brrrz[,:]rz(%s)(%s*)(?=:)z (%s)(%s+)(%s)z\[+rz(:)(%s*(?=[?=,:)]))z[?\]]+z[:)])r multimethod?r)more/parameterrrz(?=[,)])rz multimethod\brmoder%z(error|warn)\brz\(+)r variablesrztoken\brz\)+z grammar-tagra!"""([^\\"<]|""?(?!")|\\"+|\\.|<(?!<))+("{3,}|<<)|R"""([^\\"]|""?(?!")|\\"+|\\.)+"{3,}|'''([^\\'<]|''?(?!')|\\'+|\\.|<(?!<))+('{3,}|<<)|R'''([^\\']|''?(?!')|\\'+|\\.)+'{3,}|"([^\\"<]|\\.|<(?!<))+("|<<)|R"([^\\"]|\\.)+"|'([^\\'<]|\\.|<(?!<))+('|<<)|R'([^\\']|\\.)+'|([^)\s\\/]|/(?![/*]))+|\)r6z(\[)(%s*)(badness)z ->|%s|[()]rz(<<([^>]|>>>|>(?!>))*>>)+z(?=%s?%s*[({])rr )rrrrznegate\br)rrrz(?=;)z->|\?|%srz transient\brz[:,]rrz,+z property\brrz^%s*#(%s|[^\n]|(?<=\\)\n)*\n?z\\+\n+%s*#?|\n+|([^\S\n]|\\)+rrrrrz \{\{|\}\}|%srz<<\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)?)rrrrz'(?i)&(#(x[\da-f]+|\d+)|[a-z][\da-z]*);?TFz tdqs/listinglistingz tsqs/listingz dqs/listingz sqs/listingztdqs/xmpxmpztsqs/xmpzdqs/xmpzsqs/xmptdqttsqtdqtsqtzdqs/tdqtzdqs/tsqtzdqs/dqtzdqs/sqtz[^\\"]+z\\"*z"{3,}z[^\\']+z\\'*z'{3,}z\\"?z\\'?) zsqs/tdqtzsqs/tsqtzsqs/dqtzsqs/sqtzuqs/tdqtzuqs/tsqtzuqs/dqtzuqs/sqtrrrrcksd|j|jf}d}tj||fi|D]T\}}}|dkr3|tjur2td||j|jf|r2d}n0|tjura|dkrGtd||rGd}ntd||rT|d7}ntd||r`|d8}nt}|||fVqdS)Nz^%s*#%s*rz%sif%s+(0|nil)%s*$\n?rz %sel(if|se)\bz%sifz %sendif\b)_ws_pprrr r:r%match)rrkwargsppif_false_levelr!r"r#r#r#r$r4s8     z!Tads3Lexer.get_tokens_unprocessedcCs8d}d|vs d|vr|d7}d|vrd|vr|d7}|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? versionInfoIFIDg?r#r(r#r#r$r*Ks zTads3Lexer.analyse_text)>r+r,r-r.rr/r0r%r2r1r4_comment_single_comment_multilinerr5 _no_quote _operator_wsrrrrr rrr rHrrrrrrr Reservedr=rrlrrDrCOctrFrBr;RegexrIrJr>r r<rL ExceptionrKr r:rjrAEntityrrr*r#r#r#r$rs    2      / 6>C MQ V            "%) +, ./ 12 4 568: <=? A B C DE G HJMO-2@EJ O T[ _di   t}  #- 7: @ F LQ [  cip u}             ! " # $ % & ' * + , - . / 0 1 2                   Tr)r.r%pygments.lexerrrrrrrrpygments.tokenr r r r r rrrrr__all__rrrrr#r#r#r$s $0}L