3

V'íc"!ã@sndZddlmZmZmZddlmZmZmZm	Z	m
Z
mZmZm
Z
mZdgZGdd„deƒZGdd„deƒZdS)	a
    pygments.lexers.slash
    ~~~~~~~~~~~~~~~~~~~~~

    Lexer for the `Slash <https://github.com/arturadib/Slash-A>`_ programming
    language.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é)ÚExtendedRegexLexerÚbygroupsÚDelegatingLexer)	ÚNameÚNumberÚStringÚCommentÚPunctuationÚOtherÚKeywordÚOperatorÚ
WhitespaceÚ
SlashLexerch@s`eZdZdZdd„Zdd„Zdejedƒfdejedƒfd	ejfd
ejedƒfde	fgde
jed
ƒfde
edƒfde
jdfde
fgde
jedƒfde
jedƒfde
jedƒfde
jedƒfde
jedƒfde
jedƒfgde
j
edƒfde
j
fde
j
dfde
j
fgde
j
dfde
j
fde
j
dfgdejedƒfde
edƒfde
fde
j
ed ƒfd!ejfd"ejfd#ejfd$ejfd%ejfd&eejfd'eejfd(eejfd)eejfd*eeeejƒfd+eefd,eefd-eeeejeeeejƒfd.eeeejƒfd/eefd0eefd1eefd2eefd3eefd4eefd5eefd6eefd7eefd8eefd9eefd:eefd;eefd<eefd=eefd>eefd?eefd@eefdAeefdBeefdCeefdefdDefdEeejjfdFeejjfdGeejfdHeefdIeejjfdJeejjfdKefdLefdMefdNefdOefdPefdQefdRefdSefdTefdUefdVefdWefdXefdYefdZefd[efd\efd]efd^efd_efd`efdaefdbefdcefddefdeefdfefdgefdhefdiefdjefdkefdlefdmefdnefdoefdpefdqefdrefdsefdtefduefdvefdwefdxefdyefdzefd{efd|efdHejfgbd}œZd~S)ÚSlashLanguageLexerz(?=[^a-zA-Z_0-9])cCsd|fS)Nz#pop©)Z	new_staterrú9/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/slash.pyÚ
move_stateszSlashLanguageLexer.move_stateccsFt|jƒdkr&|jddkr&|jjƒ|jƒtjdfV|jƒ|_dS)NééÚstringÚ}éþÿÿÿ)ÚlenÚstackÚpopÚstartrÚInterpolÚendÚpos)ÚlexerÚmatchÚctxrrrÚright_angle_brackets


z&SlashLanguageLexer.right_angle_bracketz<%=Úslashz<%!!z<%#.*?%>z<%z.|\nz\\Ústring_ez\"z#\{ÚnrÚtÚrÚezx[a-fA-F0-9]{2}Ú.z}[a-z]*z\\(.|\n)Ú{Úregexp_rz#popz%>Úrootz'[a-zA-Z0-9_]+z%r{Úregexpz	/\*.*?\*/z(#|//).*?\nz-?[0-9]+e[+-]?[0-9]+z-?[0-9]+\.[0-9]+(e[+-]?[0-9]+)?z-?[0-9]+ÚnilÚtrueÚfalseÚselfz"(class)(\s+)([A-Z][a-zA-Z0-9_\']*)ÚclassZextendsz{(def)(\s+)(self)(\s*)(\.)(\s*)([a-z_][a-zA-Z0-9_\']*=?|<<|>>|==|<=>|<=|<|>=|>|\+|-(self)?|~(self)?|\*|/|%|^|&&|&|\||\[\]=?)zg(def)(\s+)([a-z_][a-zA-Z0-9_\']*=?|<<|>>|==|<=>|<=|<|>=|>|\+|-(self)?|~(self)?|\*|/|%|^|&&|&|\||\[\]=?)ÚdefÚifZelsifÚelseZunlessÚforÚinÚwhileZuntilÚandÚorÚnotÚlambdaÚtryZcatchÚreturnÚnextÚlastÚthrowZuseÚswitchuλZ__FILE__Z__LINE__z[A-Z][a-zA-Z0-9_\']*z[a-z_][a-zA-Z0-9_\']*z@[a-z_][a-zA-Z0-9_\']*z@@[a-z_][a-zA-Z0-9_\']*z\(z\)z\[z\]z\{z\}ú;ú,z<<=z>>=z<<z>>z==z!=z=>ú=z<=>z<=z>=ú<ú>z\+\+z\+=z-=z\*\*=z\*=z\*\*z\*z/=z\+ú-ú/z%=ú%z^=z&&=z&=z&&ú&z\|\|=z\|=z\|\|z\|ú!z\.\.\.z\.\.z\.z::ú:z(\s|\n)+)r,rr$r-r+r#N) Ú__name__Ú
__module__Ú__qualname__Z_nkwrr"rZPreprocZ	Multiliner
rZEscaperÚRegexÚSinglerZFloatZIntegerrZBuiltinrrr
ZClassr	ZFunctionZPseudoÚConstantÚVariableZInstancerÚtokensrrrrrsü	



























rcs0eZdZdZdZdgZdgZ‡fdd„Z‡ZS)rzN
    Lexer for the Slash programming language.

    .. versionadded:: 2.4
    ZSlashr#z*.slacs"ddlm}tƒj|tf|ŽdS)Nr)Ú	HtmlLexer)Zpygments.lexers.webrVÚsuperÚ__init__r)r1ÚoptionsrV)Ú	__class__rrrX¶szSlashLexer.__init__)	rNrOrPÚ__doc__ÚnameÚaliasesÚ	filenamesrXÚ
__classcell__rr)rZrr«s
N)r[Zpygments.lexerrrrZpygments.tokenrrrrr	r
rrr
Ú__all__rrrrrrÚ<module>
s,