HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/ruby.cpython-38.pyc
U

G�
\�V�@s�dZddlZddlmZmZmZmZmZmZm	Z	m
Z
mZddlm
Z
mZmZmZmZmZmZmZmZmZddlmZdddgZe�d	�Zd
ZGdd�de�ZGdd�de�ZGd
d�de�ZdS)z�
    pygments.lexers.ruby
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for Ruby and related languages.

    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)	�Lexer�
RegexLexer�ExtendedRegexLexer�include�bygroups�default�LexerContext�
do_insertions�words)
�Text�Comment�Operator�Keyword�Name�String�Number�Punctuation�Error�Generic��shebang_matches�	RubyLexer�RubyConsoleLexer�
FancyLexerz.*?
)�*z**�-�+z-@z+@�/�%�&�|�^�`�~z[]z[]=�<<z>>�<�<>z<=>�>z>=z==z===c)@s@eZdZdZdZdddgZdddd	d
ddd
gZddgZej	ej
BZdd�Zdd�Z
dejfdejfdejfeddd�efdeeeej�fdeee�dfdedfdeee�dfed dd�ejfd!ejfed"d#d�ejfd$ejfed%d&dd'�ejfd(ejjfd)efd*efd+ejd,fd-eeej�d.fd/ejd.fd0eeej�d.fd1eej ee�fd2eej!ee�fd3eej"ee�fd4eej#ee�fd5ej$j%fd6ej$j&fd7ej$j'fd8ej$j'fd9ej$j'fd:efe(d;�d<ej)fd=ej*fee+d>d?�eeej�fd@eee�fdAefdBefdCefdDe,fdEefg(dFe,dGfdHeej%eej-�dIfe.dI�gdFe,dGfdJedIfdKej%dIfe.dI�gdLee,e�dIfdFedMfe(dN�gdOej/dMfdPej/dIfe(dN�gdQej/dRfdSej/fdTej/fge(dU�dVej0fge(dU�dWejfdXejfge(dU�dWej1fdXej1fge(dU�dYejfdZejfdWejfd[ejfd\ejdIfgd]ejdIfgd^�Z2e2�3e
��d_d`�Z4daS)brz=
    For `Ruby <http://www.ruby-lang.org>`_ source code.
    ZRuby�rbZrubyZdubyz*.rbz*.rbwZRakefilez*.rakez	*.gemspecz*.rbxz*.dubyZGemfileztext/x-rubyzapplication/x-rubyccs�|�d�}|t|�d�fV|�d�tj|�d�fV|�d�tj|�d�fV|�d�tj|�d�fV|j�dg�}t|�}|�	|�d�dk|�d�f�|�d�|_
|�d�|_|j|d�D]\}}}|||fVq�|��|_
|�r�|D]�\}	}
g}t
�|j|j
�D]�}|	�r$|����}n|����}||
k�r�|D]}
|
��tj|
��fV�q>|��tj|��fV|��|_
q�n
|�	|��q|D]}
|
��t|
��fV�q�q�t|j�|_|dd�=dS)	N�����heredocstackz<<-���context)�startr
�grouprZHeredocZ	Delimiter�__dict__�
setdefault�bool�append�pos�end�get_tokens_unprocessed�line_re�finditer�text�strip�rstripr�len)�self�match�ctxr1r-Z	outermost�i�t�vZtolerantZhdname�linesZcheckZamatch�rG�6/usr/lib/python3/dist-packages/pygments/lexers/ruby.py�heredoc_callback,s>




zRubyLexer.heredoc_callbackc	Cs�dd�}dd�}i}dtjfttdd�tjfdtjfd	tjfd
tjdfdttjt�fd
tjdfdtjdfg|d<dtjd
fdtjd
fdtjdffD]4\}}}t	d�d||fd|f||dfg|d|<q�dD�]f\}}}}d|dtj
f|tj
df|tj
dft	d�d|dtj
fd |d!tj
fg||d"<|d�d#|tj
|d"f�d|dtj
f|tj
df|tj
dfd|dtj
fd |d!tj
fg||d$<|d�d%|tj
|d$f�d|dtjf|tjdf|d&tjdft	d'�d|dtjfd |d!tjfg||d(<|d�d)|tj|d(f�q�|dd*|fd+tj
fd,|fd-tt
tj
d�fd.tt
tj
d�fd/|fg7<|S)0Ncss�|�d�tj|�d�fVt|�d�ddg�}|j|d�D] \}}}|�d�|||fVq:|�d�tj|�d�fV|��|_dS)Nr)r+r�interpolated-regexr/r,)r1r�Regexr2rr9r8r7�r@rArBZnctxrCrDrErGrGrH�intp_regex_callbackZsz<RubyLexer.gen_rubystrings_rules.<locals>.intp_regex_callbackcss�|�d�tj|�d�fVt|�d�ddg�}|j|d�D] \}}}|�d�|||fVq:|�d�tj|�d�fV|��|_dS)Nr)r+r�interpolated-stringr/r,)r1r�Otherr2rr9r8r7rLrGrGrH�intp_string_callbackbsz=RubyLexer.gen_rubystrings_rules.<locals>.intp_string_callbackz\:@{0,2}[a-zA-Z_]\w*[!?]?z\:@{0,2}��prefixz:'(\\\\|\\'|[^'])*'z'(\\\\|\\'|[^'])*'z:"z
simple-symz([a-zA-Z_]\w*)(:)(?!:)�"z
simple-stringz(?<!\.)`zsimple-backtick�strings�stringZsymZbacktickr"�string-intp-escapedz	[^\\%s#]+�[\\#]�#popzsimple-))�\{�\}z{}�cb)z\[z\]z\[\]Zsb)�\(z\)z()Zpa)r%r'r&Zabz\\[\\�]�#pushz[\\#z[^\\#z]+z-intp-stringz%[QWx]?z-stringz%[qsw]z[mixounse]*�string-intpz-regexz%rz-(%r([\W_]))((?:\\\2|(?!\2).)*)(\2[mixounse]*)z"%[qsw]([\W_])((?:\\\1|(?!\1).)*)\1z&(%[QWx]([\W_]))((?:\\\2|(?!\2).)*)(\2)z<(?<=[-+/*%=<>&!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)z'^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)z*(%([^a-zA-Z0-9\s]))((?:\\\2|(?!\2).)*)(\2))r�Symbolr
�RUBY_OPERATORS�Singlerr�DoubleZBacktickrrOr6rKr)	rMrPZstates�nameZttyper8ZlbraceZrbraceZbraceccrGrGrH�gen_rubystrings_rulesYs�

�

�


�
�	�

��

��
��������zRubyLexer.gen_rubystrings_rulesz\A#!.+?$z#.*?$z=begin\s.*?\n=end.*?$)ZBEGINZEND�aliasZbegin�breakZcasezdefined?Zdo�elseZelsifr8Zensure�for�if�in�nextZredoZrescue�raiseZretry�return�superZthenZundefZunlessZuntilZwhen�while�yield�\b��suffixz.(module)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)z
(def)(\s+)�funcnamezdef(?=[*%&^`~+-/\[<>=])z(class)(\s+)�	classname)Z
initialize�new�loopr�extendrmZattr_readerZattr_writerZ
attr_accessor�attr�catch�throwZprivateZmodule_functionZpublicZ	protected�trueZfalse�nilz(not|and|or)\b)�autoloadZblock_givenZ
const_definedZeqlZequal�frozenrZinstance_ofZis_a�iteratorZkind_ofZmethod_definedr~Zprivate_method_definedZprotected_method_definedZpublic_method_definedZ
respond_toZtaintedz\?z(chomp|chop|exit|gsub|sub)!)e�Array�Float�IntegerrZ__id__Z__send__�abortZ	ancestorsZat_exitrZbindingZcallccZcallerr{ZchompZchopZ
class_evalZclass_variablesZclonezconst_defined?Z	const_getZ
const_missingZ	const_setZ	constantsZdisplay�dup�eval�exec�exitryZfail�fork�formatZfreezeZgetcZgetsZglobal_variablesZgsub�hash�idZincluded_modules�inspectZ
instance_evalZinstance_methodZinstance_methodsZinstance_variable_getZinstance_variable_setZinstance_variables�lambda�loadZlocal_variablesrx�methodZmethod_missing�methodsZmodule_evalrdZ	object_id�open�p�printZprintfZprivate_class_methodZprivate_instance_methodsZprivate_methods�procZprotected_instance_methodsZprotected_methodsZpublic_class_methodZpublic_instance_methodsZpublic_methodsZputcZputsrmZrand�readline�	readlinesZrequire�scanZselectr@�sendZset_trace_funcZsingleton_methods�sleep�splitZsprintfZsrand�subZsyscall�systemZtaintZtestr|Zto_aZto_sZ	trace_varZtrapZuntaintZuntrace_var�warnz(?<!\.))rRrtz__(FILE|LINE)__\bz/(?<!\w)(<<-?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)z(<<-?)("|\')()(\2)(.*?\n)Z__END__�end-partab(?:^|(?<=[=<>~!:])|(?<=(?:\s|;)when\s)|(?<=(?:\s|;)or\s)|(?<=(?:\s|;)and\s)|(?<=\.index\s)|(?<=\.scan\s)|(?<=\.sub\s)|(?<=\.sub!\s)|(?<=\.gsub\s)|(?<=\.gsub!\s)|(?<=\.match\s)|(?<=(?:\s|;)if\s)|(?<=(?:\s|;)elsif\s)|(?<=^when\s)|(?<=^index\s)|(?<=^scan\s)|(?<=^sub\s)|(?<=^gsub\s)|(?<=^sub!\s)|(?<=^gsub!\s)|(?<=^match\s)|(?<=^if\s)|(?<=^elsif\s))(\s*)(/)�multiline-regexz
(?<=\(|,|\[)/z(\s+)(/)(?![\s=])z#(0_?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?z.(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)(\s*)([/?])?z (0b[01]+(?:_[01]+)*)(\s*)([/?])?�([\d]+(?:_\d+)*)(\s*)([/?])?�@@[a-zA-Z_]\w*�
@[a-zA-Z_]\w*z\$\w+z\$[!@&`\'+~=/\\,;.<>_*$?:"^-]z\$-[0adFiIlpvw]z::rTzI\?(\\[MC]-)*(\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)z[A-Z]\w+z(\.|::)rQz,(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])z[a-zA-Z_]\w*[!?]?z:(\[|\]|\*\*|<<?|>>?|>=|<=|<=>|=~|={3}|!~|&&?|\|\||\.{1,3})z[-+/*%=<>&!^|~]=?z
[(){};,/?:\\]�\s+r\�defexprz\(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z_]\w*[!?]?|\*\*?|[-+]@?|[/%&|^`~]|\[\]=?|<<|>>|<=?>|>=?|===?)rXr$z	[A-Z_]\w*z(\))(\.|::)?r^�rootrYrZz#\{�in-intpz#@@?[a-zA-Z_]\w*z#\$[a-zA-Z_]\w*r_z2\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})rWz[^\\#]+z\\\\z\\/z[^\\/#]+z/[mixounse]*z.+)r�rurvr�r�r_rVrJrNr�r�cCs
t|d�S)Nzruby(1\.\d)?r)r<rGrGrH�analyse_text�szRubyLexer.analyse_textN)5�__name__�
__module__�__qualname__�__doc__rd�aliases�	filenames�	mimetypes�re�DOTALL�	MULTILINE�flagsrIrerZHashbangrbZ	Multiliner
rrrrZ	NamespaceZPseudor
ZWord�BuiltinZPreprocrrKr�Oct�Hex�Binr��Variable�Class�InstanceZGlobalrZChar�Constantrar�FunctionrZInterpolZEscaperO�tokens�updater�rGrGrGrHrs(

�-h���������
�

�
�
����




�

�����
��	
��

�
�����
�	
���Bc@s4eZdZdZdZddgZdgZe�d�Z	dd�Z
d	S)
rz�
    For Ruby interactive console (**irb**) output like:

    .. sourcecode:: rbcon

        irb(main):001:0> a = 1
        => 1
        irb(main):002:0> puts a
        1
        => nil
    zRuby irb sessionZrbconZirbztext/x-ruby-shellsessionz.irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] |>> |\?> c
	cs�tf|j�}d}g}t�|�D]�}|��}|j�|�}|dk	r||��}|�t	|�dt
j|d|�fgf�|||d�7}q|r�t||�
|��D]
}	|	Vq�d}g}|��t
j|fVq|r�t||�
|��D]
}	|	Vq�dS)N�r)rZoptionsr:r;r2�
_prompt_rerAr8r6r?rZPromptr	r9r1ZOutput)
r@r<ZrblexerZcurcodeZ
insertionsrA�line�mr8�itemrGrGrHr9�s6
���z'RubyConsoleLexer.get_tokens_unprocessedN)r�r�r�r�rdr�r�r��compiler�r9rGrGrGrHr�s
c@s�eZdZdZdZddgZddgZdgZdej	d	fd
ej	d	fdej	d	fdej	d	fd
ej	d	fdej	d	fdej	d	fdej	d	fdej	d	fdej	d	fg
de
fdej	dfdej	dfdej	dfdej	dfdej	fdej	dfdejfdej
fdefdefdefd ejfd!efed"d#d$�ejfd%ejfd&efd'ejfd(ejjfd)ejjfd*efd+efd,eeje
e�fd-eeje
e�fd.eeje
e�fd/eeje
e�fd0ejfd1ejfgd2�Z d3S)4ra
    Pygments Lexer For `Fancy <http://www.fancy-lang.org/>`_.

    Fancy is a self-hosted, pure object-oriented, dynamic,
    class-based, concurrent general-purpose programming language
    running on Rubinius, the Ruby VM.

    .. versionadded:: 1.5
    ZFancyz*.fyz*.fancypackZfancyZfyztext/x-fancysrcz/(\\\\|\\/|[^/])*/[egimosx]*rXz!(\\\\|\\!|[^!])*![egimosx]*z\\(\\\\|[^\\])*\\[egimosx]*z\{(\\\\|\\\}|[^}])*\}[egimosx]*z<(\\\\|\\>|[^>])*>[egimosx]*z \[(\\\\|\\\]|[^\]])*\][egimosx]*z\((\\\\|\\\)|[^)])*\)[egimosx]*z@(\\\\|\\@|[^@])*@[egimosx]*z%(\\\\|\\%|[^%])*%[egimosx]*z\$(\\\\|\\\$|[^$])*\$[egimosx]*r�zs\{(\\\\|\\\}|[^}])*\}\s*�balanced-regexzs<(\\\\|\\>|[^>])*>\s*zs\[(\\\\|\\\]|[^\]])*\]\s*zs\((\\\\|\\\)|[^)])*\)\s*z m?/(\\\\|\\/|[^/\n])*/[gcimosx]*zm(?=[/!\\{<\[(@%$])z#(.*?)\nz\'([^\'\s\[\](){}]+|\[\])z"""(\\\\|\\"|[^"])*"""z"(\\\\|\\"|[^"])*"zJ(def|class|try|catch|finally|retry|return|return_local|match|case|->|=>)\bz(self|super|nil|false|true)\bz[(){};,/?|:\\])ZObjectr�ZHashZ	DirectoryZFiler�rrZ
EnumerableZFancyEnumerableZBlockZ	TrueClassZNilClassZ
FalseClassZTupler`ZStack�SetZ	FancySpecZMethodZPackageZRangerrrsz[a-zA-Z](\w|[-+?!=*/^><%])*:z[-+*/~,<>=&!?%^\[\].$]+z[A-Z]\w*r�r�z@@?z[a-zA-Z_]\w*z&(0[oO]?[0-7]+(?:_[0-7]+)*)(\s*)([/?])?z1(0[xX][0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)(\s*)([/?])?z#(0[bB][01]+(?:_[01]+)*)(\s*)([/?])?r�z/\d+([eE][+-]?[0-9]+)|\d+\.\d+([eE][+-]?[0-9]+)?z\d+)r�r�N)!r�r�r�r�rdr�r�r�rrKrrrbr`rrr�rr
r�r�r
r�r�r�rrr�r�r�r�r�r�rGrGrGrHr�sx	









�





���

������) r�r�Zpygments.lexerrrrrrrrr	r
Zpygments.tokenrrr
rrrrrrrZ
pygments.utilr�__all__r�r:rarrrrGrGrGrH�<module>s
,0

i.