File: //opt/alt/python311/lib/python3.11/site-packages/pygments/lexers/__pycache__/slash.cpython-311.pyc
�
�;f$! � � � d Z ddlmZmZmZ ddlmZmZmZm Z m
Z
mZmZm
Z
mZ dgZ G d� de� � Z G d� de� � ZdS ) z�
pygments.lexers.slash
~~~~~~~~~~~~~~~~~~~~~
Lexer for the Slash programming language.
:copyright: Copyright 2006-2024 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 � � e Zd ZdZd� Zd� Zdej ed� � fdej ed� � fdej fdej ed� � fd e fgd
e
j ed� � fde
ed� � fd
e
j dfd e
fgde
j ed� � fde
j ed� � fde
j ed� � fde
j ed� � fde
j ed� � fde
j ed� � fgde
j
ed� � fde
j
fde
j
dfd e
j
fgde
j
dfde
j
fde
j
dfgg dej ed� � f�de
ed� � f�de
f�de
j
ed� � f�dej f�d ej f�d!ej f�d"ej f�d#ej f�d$ez ej f�d%ez ej f�d&ez ej f�d'ez ej f�d( eeeej � � f�d)ez ef�d*ez ef�d+ eeeej eeeej � � f�d, eeeej � � f�d-ez ef�d.ez ef�d/ez ef�d0ez ef�d1ez ef�d2ez ef�d3ez ef�d4ez ef�d5ez ef�d6ez ef�d7ez ef�d8ez ef�d9ez ef�d:ez ef�d;ez ef�d<ez ef�d=ez ef�d>ez ef�d?ez ef�d@ez ef�dAez ef�d
ef�dBef�dCez ej j f�dDez ej j f�dEez ej f�dFez ef�dGez ej j f�dHez ej j f�dIef�dJef�dKef�dLef�dMef�dNef�dOef�dPef�dQef�dRef�dSef�dTef�dUef�dVef�dWef�dXef�dYef�dZef�d[ef�d\ef�d]ef�d^ef�d_ef�d`ef�daef�dbef�dcef�ddef�deef�dfef�dgef�dhef�dief�djef�dkef�dlef�dmef�dnef�doef�dpef�dqef�dref�dsef�dtef�duef�dvef�dwef�dxef�dyef�dzef�dFej f�d{�Zd|S )}�SlashLanguageLexerz(?=[^a-zA-Z_0-9])c �
� d| fS )N�#pop� )� new_states �H/opt/alt/python311/lib/python3.11/site-packages/pygments/lexers/slash.py�
move_statezSlashLanguageLexer.move_state s
� �� �"�"� c # � K � t |j � � dk r*|j d dk r|j � � � |� � � t j dfV � |� � � |_ d S )N� ����string�})�len�stack�pop�startr �Interpol�end�pos)�lexer�match�ctxs r �right_angle_bracketz&SlashLanguageLexer.right_angle_bracket si � � � ��s�y�>�>�A���#�)�B�-�8�";�";��I�M�M�O�O�O��k�k�m�m�V�_�c�1�1�1�1��)�)�+�+����r z<%=�slashz<%!!z<%#.*?%>z<%z.|\nz\\�string_ez\"z#\{�nr �t�r�ezx[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_\']*)�class�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�if�elsif�else�unless�for�in�while�until�and�or�not�lambda�try�catch�return�next�last�throw�use�switchu λ�__FILE__�__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)+)r2 r r* r3 r1 r) N) �__name__�
__module__�__qualname__�_nkwr r( r �Preproc� Multiliner r �Escaper"