U
    luf"!  ã                   @   sn   d Z ddl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 dgZG dd„ deƒZG dd„ deƒZdS )	a  
    pygments.lexers.slash
    ~~~~~~~~~~~~~~~~~~~~~

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

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )ÚExtendedRegexLexerÚbygroupsÚDelegatingLexer)	ÚNameÚNumberÚStringÚCommentÚPunctuationÚOtherÚKeywordÚOperatorÚ
WhitespaceÚ
SlashLexerc                h   @   s`  e Zd ZdZdd„ Zdd„ Zdejedƒfdejedƒfd	ejfd
ejedƒfde	fgde
jedƒfde
edƒfde
jdfde
fgde
jedƒfde
jedƒfde
jedƒfde
jedƒfde
jedƒfde
jedƒfgde
jedƒfde
jfde
jdfde
jfgde
jdfde
jfde
jdfgdejedƒfde
edƒfde
fde
jed ƒfd!ejfd"ejfd#ejfd$ejfd%ejfd&e ejfd'e ejfd(e ejfd)e ejfd*eeeejƒfd+e efd,e efd-eeeejeeeejƒfd.eeeejƒfd/e efd0e efd1e efd2e efd3e efd4e efd5e efd6e efd7e efd8e efd9e efd:e efd;e efd<e efd=e efd>e efd?e efd@e efdAe efdBe efdCe efdefdDefdEe ejjfdFe ejjfdGe ejfdHe efdIe ejjfdJe ejjfdKefdLefdMefdNefdOefdPefdQefdRefdSefdTefdUefdVefdWefdXefdYefdZefd[efd\efd]efd^efd_efd`efdaefdbefdcefddefdeefdfefdgefdhefdiefdjefdkefdlefdmefdnefdoefdpefdqefdrefdsefdtefduefdvefdwefdxefdyefdzefd{efd|efdHejfgbd}œZd~S )ÚSlashLanguageLexerz(?=[^a-zA-Z_0-9])c                 C   s   d| fS )Nú#pop© )Z	new_stater   r   ú9/tmp/pip-unpacked-wheel-7eq1ciah/pygments/lexers/slash.pyÚ
move_state   s    zSlashLanguageLexer.move_statec                 c   sF   t |jƒdkr&|jd dkr&|j ¡  | ¡ tjdfV  | ¡ |_d S )Né   éþÿÿÿÚstringÚ})ÚlenÚstackÚpopÚstartr   ÚInterpolÚendÚpos)ÚlexerÚmatchÚctxr   r   r   Úright_angle_bracket   s
    

z&SlashLanguageLexer.right_angle_bracketz<%=Úslashz<%!!z<%#.*?%>z<%z.|\nz\\Ústring_ez\"z#\{Únr   ÚtÚrÚezx[a-fA-F0-9]{2}Ú.z}[a-z]*z\\(.|\n)Ú{Úregexp_rr   z%>Ú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_\']*)ÚclassZextendsz{(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ÚifZelsifÚelseZunlessÚforÚinÚwhileZuntilÚandÚorÚnotÚlambdaÚtryZcatchÚreturnÚnextÚlastÚthrowZuseÚ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,   r   r$   r-   r+   r#   N) Ú__name__Ú
__module__Ú__qualname__Z_nkwr   r"   r   ZPreprocZ	Multiliner
   r   ZEscaper   ÚRegexÚSingler   ZFloatZIntegerr   ZBuiltinr   r   r   ZClassr	   ZFunctionZPseudoÚConstantÚVariableZInstancer   Útokensr   r   r   r   r      s  	û
üú	
ü

ýÿ

ÿÿ





















›ßr   c                       s0   e Zd ZdZdZdgZdgZ‡ fdd„Z‡  ZS )r   zN
    Lexer for the Slash programming language.

    .. versionadded:: 2.4
    ZSlashr#   z*.slac                    s"   ddl m} tƒ j|tf|Ž d S )Nr   )Ú	HtmlLexer)Zpygments.lexers.webrV   ÚsuperÚ__init__r   )r1   ÚoptionsrV   ©Ú	__class__r   r   rX   ¶   s    zSlashLexer.__init__)	rN   rO   rP   Ú__doc__ÚnameÚaliasesÚ	filenamesrX   Ú__classcell__r   r   rZ   r   r   «   s
   N)r\   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   r   Ú__all__r   r   r   r   r   r   Ú<module>   s   , 