3
V'íc, ã @ s~ d Z ddlmZmZmZmZmZmZmZ ddl m
Z
mZmZm
Z
mZmZmZmZmZ ddlmZmZ dgZG dd deZdS )zÏ
pygments.lexers.arturo
~~~~~~~~~~~~~~~~~~~~~~
Lexer for the Arturo language.
:copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
é )Ú
RegexLexerÚbygroupsÚ
do_insertionsÚincludeÚthisÚusingÚwords) ÚCommentÚErrorÚKeywordÚNameÚNumberÚOperatorÚPunctuationÚStringÚText)Ú
ClassNotFoundÚget_bool_optÚArturoLexerc ÷ @ sø e Zd ZdZdZddgZdgZdZdd Zd d
Z de
jfde
jfe
dddejfe
ddddejjfdejfdejfdejfdejfdejfdejfdejfdejfdejfdeeee efd ej!d!fd"ejd#fd$ej!d%fd&ejd'fd(ej!d)fd*e fd+ejd,fd-ejd.fe"d/d0efe
dej#fe
de$fd_efd`e%j&fdae'fgdbej(dcfddee fgdeej(dcfddee fge
dej)fge"djdbej(dkfdlej(dmfd ej!dcfdnefge"djdbej(dkfdlej(dmfdgejdcfdoefge"djdbej(dkfdlej(dmfdpej!dcfdqefgdrej)fdbej(dkfdlej(dmfdsejdcfdtej*fge"djdbej(dkfdlej(dmfduej!dcfdvefge"djdbej(dkfdlej(dmfdwejdcfdxefge"djdbej(dkfdlej(dmfdyejdcfdzefge
ddd¿dejfe
ddddejfgdZ+dS ( r zº
For Arturo source code.
See `Arturo's Github <https://github.com/arturo-lang/arturo>`_
and `Arturo's Website <https://arturo-lang.io/>`_.
.. versionadded:: 2.14.0
ZArturoZarturoZartz*.artzhttps://arturo-lang.io/c K s t |dd| _tj| f| d S )NÚhandle_annotatedsT)r r r Ú__init__)ÚselfÚoptions© r ú:/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/arturo.pyr $ s zArturoLexer.__init__c c s ddl m} |jdtj|jdfV |jdtj|jdfV |jdtj|jdfV |jdtj|jdfV d}| j rªy||jdj
}W n tk
r¨ Y nX |jd}|dkrÐ|jdt|fV ntg |j
|E dH |jd tj|jd fV dS )
züAdds syntax from another languages inside annotated strings
match args:
1:open_string,
2:exclamation_mark,
3:lang_name,
4:space_or_newline,
5:code,
6:close_string
r )Úget_lexer_by_nameé é é é Né é )Zpygments.lexersr Ústartr ÚDoubleÚgroupÚInterpolr Ú
Whitespacer Ústripr r Zget_tokens_unprocessed)r Úmatchr ÚlexerÚcoder r r Úhandle_annotated_strings) s
z$ArturoLexer.handle_annotated_stringsz;.*?$z^((\s#!)|(#!)).*?$ÚfalseÚtrueÚmaybez\b)Úsuffixr Úinitz\b\??:?)Úprefixr/ z`.`z\\\w+\b\??:?z#\w+z\b[0-9]+\.[0-9]+z\b[0-9]+z \w+\b\??:z\'(?:\w+\b\??:?)z\:\w+z
\.\w+\??:?z(\()(.*?)(\)\?)ú"zinside-simple-stringõ »zinside-smart-stringu «««zinside-safe-stringz\{\/zinside-regex-stringz\{\:zinside-curly-verb-stringz#(\{)(\!)(\w+)(\s|\n)([\w\W]*?)(^\})z\{zinside-curly-stringz\-{3,}zinside-eof-stringzbuiltin-functionsz[()[\],]ú->ú==>ú|ú::ú@ú#ú$ú&ú!ú!!ú./ú<:ú:>ú:<ú>:ú<\ú<>ú<ú>õ øõ âú+ú-Ú*ú~ú=ú^ú%ú/ú//ú<=>ú<==>ú=>>ú<<=>>ú<<==>>ú-->ú<->ú<-->ú=|ú|=ú-:ú:-Ú_Ú.ú..ú\z\b\w+z\s+z.+$z\|z#popz[^|]+z\|\|\>ú\\ú\nú\tú\"z
string-escapezinside-interpolz\<\|\|zinside-templatez[^|"]+z[^|\n]+u »»»u [^|»]+z\\[sSwWdDbBZApPxucItnvfr0]+z\/\}z[^|\/]+z\:\}z[^|<:]+z\}z[^|<}]+z\Zz[^|<]+ÚallÚandÚanyÚasciiÚattrÚ attributeÚattributeLabelÚbinaryÚ blockcharÚcontainsÚdatabaseÚdateÚ
dictionaryÚemptyÚequalÚevenÚeveryÚexistsÚfloatinÚfunctionÚgreaterÚgreaterOrEqualÚifÚinÚinlineÚintegerÚisÚkeyÚlabelÚleapÚlessÚlessOrEqualÚliteralÚlogicalÚlowerÚnandÚnegativeÚnorÚnotÚnotEqualÚnullÚnumericÚoddÚorÚpathÚ pathLabelÚpositiver1 ÚprimeÚsetÚsomeÚsortedÚ
standaloneÚstringÚsubsetr/ ÚsupersetÚymbolÚtryÚtypeÚunlessÚupperÚwhenÚ
whitespaceÚwordÚxnorÚxorÚzeroz\b\?ÚabsÚacosÚacoshÚacsecÚacsechÚactanÚactanhÚaddÚafterÚalphabetÚangleÚappendÚargÚargsÚarityÚarrayÚasÚasecÚasechÚasinÚasinhÚatanÚatan2ÚatanhÚattrsÚaverageÚbeforeÚ benchmarkÚblendÚbreakÚ builtins1Ú builtins2ÚcallÚ
capitalizeÚcaseÚceilÚchopÚchunkÚclearÚcloseÚclusterÚcolorÚcombineÚconjÚcontinueÚcopyÚcosÚcoshÚcoupleÚcsecÚcsechÚctanÚctanhÚcursorÚdarkenÚdecÚdecodeÚdecoupleÚdefineÚdeleteÚ
desaturateÚ deviationÚ
differenceÚdigestÚdigitsÚdivÚdoÚdownloadÚdropÚdupÚeÚelseÚencodeÚensureÚenvÚepsilonÚescapeÚexecuteÚexitÚexpÚextendÚextractÚfactorsÚfdivÚfilterÚfirstÚflattenÚfloorÚfoldÚfromÚgammaÚgcdÚgetÚgotoÚhashÚhelpÚhypotÚincÚindentÚindexÚinfinityÚinfoÚinputÚinsertÚinspectÚintersectionÚinvertÚjoinÚkeysÚkurtosisÚlastÚletÚlevenshteinÚlightenÚlistÚlnÚlogÚloopÚmailÚmapr( ÚmaxÚmedianÚminÚmodÚmoduleÚmulÚnegÚnewÚ normalizeÚnowÚopenÚoutdentÚpadÚpanicÚpauseÚpermissionsÚ permutateÚpiÚpopÚpowÚpowersetÚpowmodÚprintÚprintsÚprocessÚproductÚqueryÚrandomÚrangeÚreadÚrelativeÚremoveÚrenameÚrenderÚrepeatÚreplaceÚrequestÚreturnÚreverseÚroundÚsampleÚsaturateÚscriptÚsecÚsechÚselectÚserveÚshlÚshrÚshuffleÚsinÚsinhÚsizeÚskewnessÚsliceÚsortÚsplitÚsqrtÚsqueezeÚstackr'