Your IP : 216.73.216.61


Current Path : /opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/__pycache__/ruby.cpython-37.pyc

B

Ƚ�\�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-2019 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>=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�|_x&|j|d�D]\}}}|||fVq�W|��|_
|�r�x�|D]�\}	}
g}x�t
�|j|j
�D]�}|	�r,|����}n|����}||
k�r�x$|D]}
|
��tj|
��fV�qHW|��tj|��fV|��|_
Pn
|�	|��qWx"|D]}
|
��t|
��fV�q�Wq�Wt|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�ctxr-r*Z	outermost�i�t�vZtolerantZhdname�lines�checkZamatch�rD�E/opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/ruby.py�heredoc_callback,s>






zRubyLexer.heredoc_callbackc	Cs�dd�}dd�}i}dtjfttdd�tjfdtjfd	tjfd
tjdfdttjt�fd
tjdfdtjdfg|d<xZdtjd
fdtjd
fdtjdffD]4\}}}t	d�d||fd|f||dfg|d|<q�W�xpdD�]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�W|dd*|fd+tj
fd,|fd-tt
tj
d�fd.tt
tj
d�fd/|fg7<|S)0Ncss�|�d�tj|�d�fVt|�d�ddg�}x0|j|d�D] \}}}|�d�|||fVq<W|�d�tj|�d�fV|��|_dS)Nr&r(rzinterpolated-regex)r,r))r-r�Regexr.rr5r4r3)r<r=r>�nctxr?r@rArDrDrE�intp_regex_callbackZsz<RubyLexer.gen_rubystrings_rules.<locals>.intp_regex_callbackcss�|�d�tj|�d�fVt|�d�ddg�}x0|j|d�D] \}}}|�d�|||fVq<W|�d�tj|�d�fV|��|_dS)Nr&r(rzinterpolated-string)r,r))r-r�Otherr.rr5r4r3)r<r=r>rHr?r@rArDrDrE�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�string�sym�backtickr!zstring-intp-escapedz	[^\\%s#]+z[\\#]z#popzsimple-))z\{z\}z{}�cb)z\[z\]z\[\]Zsb)z\(z\)z()�pa)r#r$z<>�abz\\[\\�]z#pushz[\\#z[^\\#z]+z-intp-stringz%[QWx]?z-stringz%[qsw]z[mixounse]*zstring-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�DoubleZBacktickrrJr2rGr)	rIrKZstates�nameZttyper4ZlbraceZrbraceZbraceccrDrDrE�gen_rubystrings_rulesYsr








zRubyLexer.gen_rubystrings_rulesz\A#!.+?$z#.*?$z=begin\s.*?\n=end.*?$)ZBEGINZEND�aliasZbegin�breakZcasezdefined?Zdo�elseZelsifr4Zensure�for�if�in�nextZredoZrescue�raiseZretry�return�superZthenZundefZunlessZuntilZwhen�while�yieldz\b)�suffixz.(module)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)z
(def)(\s+)�funcnamezdef(?=[*%&^`~+-/\[<>=])z(class)(\s+)�	classname)Z
initialize�new�loopr�extendrcZattr_readerZattr_writerZ
attr_accessor�attr�catch�throwZprivateZmodule_function�publicZ	protected�true�false�nilz(not|and|or)\b)�autoloadZblock_givenZ
const_definedZeql�equal�frozenrZinstance_ofZis_a�iteratorZkind_ofZmethod_definedrtZprivate_method_definedZprotected_method_definedZpublic_method_definedZ
respond_toZtaintedz\?z(chomp|chop|exit|gsub|sub)!)e�Array�Float�IntegerrZ__id__Z__send__�abortZ	ancestorsZat_exitruZbindingZcallcc�callerroZchompZchopZ
class_evalZclass_variables�clonezconst_defined?Z	const_getZ
const_missingZ	const_set�	constantsZdisplay�dup�eval�exec�exitrmZfail�fork�formatZfreezeZgetcZgetsZglobal_variablesZgsub�hash�idZincluded_modules�inspectZ
instance_evalZinstance_methodZinstance_methodsZinstance_variable_getZinstance_variable_setZinstance_variables�lambda�loadZlocal_variablesrl�methodZmethod_missing�methodsZmodule_evalrZZ	object_id�open�p�printZprintfZprivate_class_methodZprivate_instance_methodsZprivate_methods�procZprotected_instance_methodsZprotected_methodsZpublic_class_methodZpublic_instance_methodsZpublic_methodsZputcZputsrcZrand�readline�	readlines�require�scan�selectr<�sendZset_trace_funcZsingleton_methods�sleep�splitZsprintfZsrand�subZsyscall�systemZtaint�testrpZto_aZto_sZ	trace_varZtrapZuntaintZuntrace_var�warnz(?<!\.))rLrhz__(FILE|LINE)__\bz/(?<!\w)(<<-?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)z(<<-?)("|\')()(\2)(.*?\n)Z__END__zend-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*)(/)zmultiline-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*)([/?])?z([\d]+(?:_\d+)*)(\s*)([/?])?z@@[a-zA-Z_]\w*z
@[a-zA-Z_]\w*z\$\w+z\$[!@&`\'+~=/\\,;.<>_*$?:"^-]z\$-[0adFiIlpvw]z::rNzI\?(\\[MC]-)*(\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)z[A-Z]\w+z(\.|::))rLz,(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])z[a-zA-Z_]\w*[!?]?z:(\[|\]|\*\*|<<?|>>?|>=|<=|<=>|=~|={3}|!~|&&?|\|\||\.{1,3})z[-+/*%=<>&!^|~]=?z
[(){};,/?:\\]z\s+z\(�defexprz\(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z_]\w*[!?]?|\*\*?|[-+]@?|[/%&|^`~]|\[\]=?|<<|>>|<=?>|>=?|===?)z#popz<<z	[A-Z_]\w*z(\))(\.|::)?z#push�rootz\{z\}z#\{zin-intpz#@@?[a-zA-Z_]\w*z#\$[a-zA-Z_]\w*zstring-intpz2\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})z[\\#]z[^\\#]+z\\\\z\\/z[^\\/#]+z/[mixounse]*z.+)r�rirjr�zin-intpzstring-intpzstring-intp-escapedzinterpolated-regexzinterpolated-stringzmultiline-regexzend-partcCs
t|d�S)Nzruby(1\.\d)?)r)r8rDrDrE�analyse_text�szRubyLexer.analyse_textN)5�__name__�
__module__�__qualname__�__doc__rZ�aliases�	filenames�	mimetypes�re�DOTALL�	MULTILINE�flagsrFr[rZHashbangrXZ	Multiliner
rrrrZ	NamespaceZPseudor
�Word�BuiltinZPreprocrrGr�Oct�Hex�Binr{�Variable�Class�InstanceZGlobalrZChar�ConstantrWr�FunctionrZInterpolZEscaperJ�tokens�updater�rDrDrDrErs�


-h


	













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}x�t�|�D]�}|��}|j�|�}|dk	r~|��}|�t	|�dt
j|d|�fgf�|||d�7}q |r�xt||�
|��D]
}	|	Vq�Wd}g}|��t
j|fVq W|r�xt||�
|��D]
}	|	Vq�WdS)N�r)r�optionsr6r7r.�
_prompt_rer=r4r2r;rZPromptr	r5r-ZOutput)
r<r8ZrblexerZcurcodeZ
insertionsr=�line�mr4�itemrDrDrEr5�s,

z'RubyConsoleLexer.get_tokens_unprocessedN)r�r�r�r�rZr�r�r��compiler�r5rDrDrDrEr�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]*z#popz!(\\\\|\\!|[^!])*![egimosx]*z\\(\\\\|[^\\])*\\[egimosx]*z\{(\\\\|\\\}|[^}])*\}[egimosx]*z<(\\\\|\\>|[^>])*>[egimosx]*z \[(\\\\|\\\]|[^\]])*\][egimosx]*z\((\\\\|\\\)|[^)])*\)[egimosx]*z@(\\\\|\\@|[^@])*@[egimosx]*z%(\\\\|\\%|[^%])*%[egimosx]*z\$(\\\\|\\\$|[^$])*\$[egimosx]*z\s+zs\{(\\\\|\\\}|[^}])*\}\s*zbalanced-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[(){};,/?|:\\])ZObjectryZHashZ	DirectoryZFiler�rrZ
EnumerableZFancyEnumerableZBlockZ	TrueClassZNilClassZ
FalseClassZTuplerVZStack�SetZ	FancySpec�MethodZPackageZRangez\b)rhz[a-zA-Z](\w|[-+?!=*/^><%])*:z[-+*/~,<>=&!?%^\[\].$]+z[A-Z]\w*z
@[a-zA-Z_]\w*z@@[a-zA-Z_]\w*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*)([/?])?z([\d]+(?:_\d+)*)(\s*)([/?])?z/\d+([eE][+-]?[0-9]+)|\d+\.\d+([eE][+-]?[0-9]+)?z\d+)zbalanced-regexr�N)!r�r�r�r�rZr�r�r�rrGrrrXrVrrr�rr
r�r�r
r�r�r�rrr�r�r�r{rzr�rDrDrDrEr�sf	















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

i.