3

V'íc•ã@s^dZddlZddlmZmZddlmZmZmZm	Z	m
Z
mZmZm
Z
dgZGdd„deƒZdS)zÌ
    pygments.lexers.urbi
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for UrbiScript language.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
éN)ÚExtendedRegexLexerÚwords)ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚUrbiscriptLexercP@sDeZdZdZdZdgZdgZdgZej	Z
dd„Zdefd	e
fd
e
jdfdefed²d*d+efed³d*d+ejfdPefdQefdRejfdSejfed´d*d+ejfd™ejjfdšefd›ejfdœefdefdžejfdŸejfd ejfd¡ejd¢fd£ej d¤fgd¥efd¦ejd§fgd¨efd©ej d§fgdªe
jfd
e
jd«fd¬e
jd§fd­e
jfgd®œZ!d¯d°„Z"d±S)µrz@
    For UrbiScript source code.

    .. versionadded:: 1.5
    Z
UrbiScriptZ
urbiscriptz*.uzapplication/x-urbiscriptc	csÚ|jdƒ}|jdƒ}|jdƒ}t|ƒ}|jƒt|fV|jt|ƒ7_|j|jƒ|dkrd|d}|jƒt|fV|jt|ƒ7_dS||j|jƒ|jƒ|…d}|jƒtj|fV|jƒ|d|_dS)Néééú)z\B(z)()	ÚgroupÚintÚstartr	ÚposÚlenÚtextÚendZEscape)	ÚlexerÚmatchÚctxZtext_before_blobZ
blob_startZ
blob_size_strZ	blob_sizeÚresultZ	blob_text©rú8/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/urbi.pyÚ
blob_callback&s


"zUrbiscriptLexer.blob_callbackz\s+z//.*?\nz/\*Úcommentz"(every|for|loop|while)(?:;|&|\||,)ÚassertÚatÚbreakÚcaseÚcatchÚclosureÚcomplÚcontinueÚdefaultÚelseÚenumÚeveryÚexternalÚfinallyÚforÚfreezeifÚifÚnewÚonleaveÚreturnÚstopifÚswitchÚthisÚthrowÚtimeoutÚtryÚ	waituntilÚwheneverÚwhilez\b)ÚsuffixÚasmÚautoÚboolÚcharÚ
const_castÚdeleteÚdoubleÚdynamic_castÚexplicitÚexportÚexternÚfloatÚfriendÚgotoÚinlinerÚlongÚmutableÚ	namespaceÚregisterÚreinterpret_castÚshortÚsignedÚsizeofÚstatic_castÚstructÚtemplateÚtypedefÚtypeidÚtypenameÚunionÚunsignedÚusingÚvirtualÚvolatileÚwchar_tz&(emit|foreach|internal|loopn|static)\bz(private|protected|public)\bz(var|do|const|function|class)\bz(true|false|nil|void)\bÚBarrierÚBinaryÚBooleanÚCallMessageÚChannelÚCodeÚ
ComparableÚ	ContainerÚControlÚDateÚ
DictionaryÚ	DirectoryÚDurationÚEnumerationÚEventÚ	ExceptionÚ
ExecutableÚFileÚFinalizableÚFloatÚ
FormatInfoÚ	FormatterÚGlobalÚGroupÚHashÚInputStreamÚ	IoServiceÚJobÚKernelÚLazyÚListÚLoadableÚLobbyÚLocationÚLoggerÚMathÚMutexÚnilÚObjectÚ	OrderableÚOutputStreamÚPairÚPathÚPatternÚPositionÚ	PrimitiveÚProcessÚProfileÚ
PseudoLazyÚPubSubÚ
RangeIterableÚRegexpÚ	SemaphoreÚServerÚ	SingletonÚSocketÚ
StackFrameÚStreamr	ÚSystemÚTagÚTimeoutÚ	TraceableÚTrajectoryGeneratorÚTripletÚTupleÚUObjectÚUValueÚUVarz
(?:this)\bz(?:[-=+*%/<>~^:]+|\.&?|\|\||&&)z?(?:and_eq|and|bitand|bitor|in|not|not_eq|or_eq|or|xor_eq|xor)\bz[{}\[\]()]+z(?:;|\||,|&|\?|!)+z
[$a-zA-Z_]\w*z0x[0-9a-fA-F]+zV(?:[0-9]+(?:(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?)?((?:rad|deg|grad)|(?:ms|s|min|h|d))?)\bú"z
string.doubleú'z
string.singlez%((?:\\\\|\\"|[^"])*?)(\\B\((\d+)\)\()z(\\\\|\\[^\\]|[^"\\])*?"z#popz%((?:\\\\|\\'|[^'])*?)(\\B\((\d+)\)\()z(\\\\|\\[^\\]|[^'\\])*?'z[^*/]z#pushz\*/z[*/])Úrootz
string.doublez
string.singlercCs(d}d|kr|d7}d|kr$|d7}|S)z_This is fairly similar to C and others, but freezeif and
        waituntil are unique keywords.rr/gš™™™™™©?r:r)rrrrrÚanalyse_text†szUrbiscriptLexer.analyse_textN)r r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<)$r>r?r@rArBrCrDrErFrGrHrIrJrKrLrrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`)Erarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rr€rr‚rƒr„r…r†r‡rˆr‰rŠr‹rŒrrŽrrr‘r’r“r”r•r–r—r˜r™ršr	r›rœrržrŸr r¡r¢r£r¤)#Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚreÚDOTALLÚflagsrrrZ	MultilinerrZReservedZDeclarationÚConstantrZBuiltinZPseudorÚWordrZOtherr
ZHexrtr	ÚDoubleÚSingleÚtokensr¨rrrrrs‚




)r¬r±Zpygments.lexerrrZpygments.tokenrrrrrr	r
rÚ__all__rrrrrÚ<module>	s
(