§
    £E±c÷X  ã                   óâ   — d Z ddlZddlmZmZmZmZmZmZm	Z	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mZmZ ddlmZ g d¢ZdZ G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        ZdS )zÓ
    pygments.lexers.ruby
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for Ruby and related languages.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)
ÚLexerÚ
RegexLexerÚExtendedRegexLexerÚincludeÚbygroupsÚdefaultÚLexerContextÚdo_insertionsÚwordsÚline_re)ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚErrorÚGenericÚ
Whitespace©Úshebang_matches)Ú	RubyLexerÚRubyConsoleLexerÚ
FancyLexer)Ú*z**ú-ú+z-@z+@ú/ú%ú&ú|ú^ú`ú~z[]z[]=ú<<z>>ú<ú<>z<=>ú>z>=z==z===c                   óÔ  — e Zd ZdZdZdZg d¢Zg d¢ZddgZe	j
        e	j        z  Zd„ Zd	„ Zg d
ej        f‘dej        f‘dej        f‘ edd¬¦  «        ef‘d eeeej        ¦  «        f‘d eee¦  «        df‘dedf‘d eee¦  «        df‘ edd¬¦  «        ej        f‘dej        f‘ edd¬¦  «        ej        f‘dej        f‘ eddd¬¦  «        ej        f‘dej        j        f‘def‘d ef‘d!ej        d"f‘d# eeej         ¦  «        d$f‘d%ej         d$f‘d& eeej         ¦  «        d$f‘d' ee!j"        ee¦  «        f‘d( ee!j#        ee¦  «        f‘d) ee!j$        ee¦  «        f‘d* ee!j%        ee¦  «        f‘d+ej&        j'        f‘d,ej&        j(        f‘d-ej&        j)        f‘d.ej&        j)        f‘d/ej&        j)        f‘d0ef‘ e*d1¦  «        ‘d2ej+        f‘d3ej,        f‘ ee-d4¬5¦  «         eeej        ¦  «        f‘d6 eee¦  «        f‘d7ef‘d8ef‘d9ef‘d:e.f‘d;ef‘d<e.d=fd> eej'        eej/        ¦  «        d?f e0d?¦  «        gd<e.d=fd@ed?fdAej'        d?f e0d?¦  «        gdB ee.e¦  «        d?fd<edCf e*dD¦  «        gdEej1        dCfdFej1        d?f e*dD¦  «        gdGej1        dHfdIej1        fdJej1        fg e*dK¦  «        dLej2        fg e*dK¦  «        dMej         fdNej         fg e*dK¦  «        dMej3        fdNej3        fg e*dK¦  «        dOej         fdPej         fdMej         fdQej         fdRej         d?fgdSej        d?fgdTœZ4e4 5                     e¦   «         ¦  «         dU„ Z6dVS )Wr   z
    For Ruby source code.
    ÚRubyzhttp://www.ruby-lang.org)ÚrubyÚrbÚduby)	z*.rbz*.rbwÚRakefilez*.rakez	*.gemspecz*.rbxz*.dubyÚGemfileÚVagrantfileztext/x-rubyzapplication/x-rubyc              #   óÐ  K  — |                      d¦  «        }|t          |                     d¦  «        fV — |                      d¦  «        t          j        |                     d¦  «        fV — |                      d¦  «        t          j        |                     d¦  «        fV — |                      d¦  «        t          j        |                     d¦  «        fV — |j                             dg ¦  «        }t          |¦  «         }| 	                    |                     d¦  «        dv |                     d¦  «        f¦  «         |                      d¦  «        |_
        |                     d¦  «        |_        t          |¦  «        dk     r|                      |¬	¦  «        E d {V —† n)|j
        t          j        |                     d¦  «        fV — |                     ¦   «         |_
        |�rw|D �]S\  }}g }t          j        |j        |j
        ¦  «        D ]ö}|r'|                     ¦   «                              ¦   «         }	n&|                     ¦   «                              ¦   «         }	|	|k    rŠ|D ]7}
|
                      ¦   «         t          j        |
                     ¦   «         fV — Œ8|                      ¦   «         t          j        |                     ¦   «         fV — |                     ¦   «         |_
         nK| 	                    |¦  «         Œ÷|D ]2}
|
                      ¦   «         t&          |
                     ¦   «         fV — Œ3�ŒUt          |j        ¦  «        |_        |d d …= d S d S )
Né   é   é   é   Úheredocstack)z<<-z<<~é   éd   ©Úcontext)Ústartr   Úgroupr   ÚHeredocÚ	DelimiterÚ__dict__Ú
setdefaultÚboolÚappendÚposÚendÚlenÚget_tokens_unprocessedr   ÚfinditerÚtextÚstripÚrstripr   )ÚselfÚmatchÚctxr=   r8   Ú	outermostÚtolerantÚhdnameÚlinesÚcheckÚamatchs              ú6/usr/lib/python3/dist-packages/pygments/lexers/ruby.pyÚheredoc_callbackzRubyLexer.heredoc_callback*   s  è è € ð —’˜A‘”ˆØ•X˜uŸ{š{¨1™~œ~Ð-Ð-Ð-Ð-Ø�kŠk˜!‰nŒn�fœn¨e¯kªk¸!©n¬nÐ<Ð<Ð<Ð<Ø�kŠk˜!‰nŒn�fÔ.°·²¸A±´Ð>Ð>Ð>Ð>Ø�kŠk˜!‰nŒn�fœn¨e¯kªk¸!©n¬nÐ<Ð<Ð<Ð<à”|×.Ò.¨~¸rÑBÔBˆÝ˜\Ñ*Ô*Ð*ˆ	Ø×Ò˜UŸ[š[¨™^œ^¨~Ð=¸u¿{º{È1¹~¼~ÐNÑOÔOÐOà—+’+˜a‘.”.ˆŒØ—)’)˜A‘,”,ˆŒåˆ|ÑÔ˜sÒ"Ð"Ø×2Ò2¸3Ð2Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?à”'�6œ>¨5¯;ª;°q©>¬>Ð9Ð9Ð9Ð9Ø—)’)‘+”+ˆŒàñ 	 à$0ð Dñ DÑ �˜&Ø�Ý$Ô-¨c¬h¸¼Ñ@Ô@ð Dð D�EØð 7Ø %§¢¡¤× 3Ò 3Ñ 5Ô 5˜˜à %§¢¡¤× 4Ò 4Ñ 6Ô 6˜Ø ’�Ø&+ð Qð Q˜FØ"(§,¢,¡.¤.µ&´.À&Ç,Â,Á.Ä.Ð"PÐPÐPÐPÐPØ#Ÿkšk™mœm­VÔ-=¸u¿{º{¹}¼}ÐLÐLÐLÐLØ"'§)¢)¡+¤+˜œØ˜àŸš UÑ+Ô+Ð+Ð+ð #(ð Dð D˜Ø$Ÿlšl™nœn­e°V·\²\±^´^ÐCÐCÐCÐCÐCùÝ˜#œ(‘m”mˆCŒGØ˜Q˜Q˜Q���ð-	 ð 	 ó    c                  óv  — d„ } d„ }i }dt           j        ft          t          d¬¦  «        t           j        fdt           j        fdt           j        dfd	t	          t           j        t
          ¦  «        fd
t           j        dfdt           j        dfdt           j        dfg|d<   dt           j        d
fdt           j        dfdt           j        d
fdt           j        dffD ])\  }}}t          d¦  «        d|z  |fd|f||dfg|d|z   <   Œ*dD �]È\  }}}}d|z   dz   t           j
        f|t           j
        df|t           j
        dft          d¦  «        d|z   dz   t           j
        fd |z   d!z   t           j
        fg||d"z   <   |d                              d#|z   t           j
        |d"z   f¦  «         d|z   dz   t           j
        f|t           j
        df|t           j
        dfd|z   dz   t           j
        fd |z   d!z   t           j
        fg||d$z   <   |d                              d%|z   t           j
        |d$z   f¦  «         d|z   dz   t           j        f|t           j        df|d&z   t           j        dft          d'¦  «        d|z   dz   t           j        fd |z   d!z   t           j        fg||d(z   <   |d                              d)|z   t           j        |d(z   f¦  «         �ŒÊ|dxx         d*| fd+t           j
        fd,|fd-t	          t          t           j
        d ¦  «        fd.t	          t          t           j
        d ¦  «        fd/|fgz  cc<   |S )0Nc              3   óÖ  K  — |                      d¦  «        t          j        |                     d¦  «        fV — t	          |                     d¦  «        ddg¦  «        }|                      |¬¦  «        D ]#\  }}}|                      d¦  «        |z   ||fV — Œ$|                      d¦  «        t          j        |                     d¦  «        fV — |                     ¦   «         |_        d S )Nr4   r6   r   úinterpolated-regexr;   r7   )r=   r   ÚRegexr>   r	   rH   rF   rE   ©rM   rN   rO   ÚnctxÚiÚtÚvs          rV   Úintp_regex_callbackz<RubyLexer.gen_rubystrings_rules.<locals>.intp_regex_callbackZ   sÕ   è è € Ø—+’+˜a‘.”.¥&¤,°·²¸A±´Ð>Ð>Ð>Ð>Ý §¢¨A¡¤°Ð4HÐ3IÑJÔJˆDØ×6Ò6¸tÐ6ÑDÔDð -ð -‘��1�aØ—k’k !‘n”n QÑ&¨¨1Ð,Ð,Ð,Ð,Ð,Ø—+’+˜a‘.”.¥&¤,°·²¸A±´Ð>Ð>Ð>Ð>Ø—i’i‘k”kˆCŒGˆGˆGrX   c              3   óÖ  K  — |                      d¦  «        t          j        |                     d¦  «        fV — t	          |                     d¦  «        ddg¦  «        }|                      |¬¦  «        D ]#\  }}}|                      d¦  «        |z   ||fV — Œ$|                      d¦  «        t          j        |                     d¦  «        fV — |                     ¦   «         |_        d S )Nr4   r6   r   úinterpolated-stringr;   r7   )r=   r   ÚOtherr>   r	   rH   rF   rE   r]   s          rV   Úintp_string_callbackz=RubyLexer.gen_rubystrings_rules.<locals>.intp_string_callbackb   sÕ   è è € Ø—+’+˜a‘.”.¥&¤,°·²¸A±´Ð>Ð>Ð>Ð>Ý §¢¨A¡¤°Ð4IÐ3JÑKÔKˆDØ×6Ò6¸tÐ6ÑDÔDð -ð -‘��1�aØ—k’k !‘n”n QÑ&¨¨1Ð,Ð,Ð,Ð,Ð,Ø—+’+˜a‘.”.¥&¤,°·²¸A±´Ð>Ð>Ð>Ð>Ø—i’i‘k”kˆCŒGˆGˆGrX   z\:@{0,2}[a-zA-Z_]\w*[!?]?z\:@{0,2}©Úprefixz:'(\\\\|\\[^\\]|[^'\\])*'z:"z
simple-symz([a-zA-Z_]\w*)(:)(?!:)ú"zsimple-string-doubleú'zsimple-string-singlez(?<!\.)`zsimple-backtickÚstringszstring-doublezstring-singleÚsymÚbacktickr%   ústring-intp-escapedz	[^\\%s#]+ú[\\#]ú#popzsimple-))ú\{ú\}z{}Úcb)z\[z\]z\[\]Úsb)ú\(z\)z()Úpa)r(   r*   r)   Úabz\\[\\ú]ú#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_OPERATORSr   r   ÚDoubleÚSingleÚBacktickr   re   rD   r\   r   )	rb   rf   ÚstatesÚnameÚttyperF   ÚlbraceÚrbraceÚbraceccs	            rV   Úgen_rubystrings_ruleszRubyLexer.gen_rubystrings_rulesY   sÕ  € ð	"ð 	"ð 	"ð	"ð 	"ð 	"ð ˆð *­6¬=Ð9Ý•>¨+Ð6Ñ6Ô6½¼ÐFØ)­6¬=Ð9Ø•F”M <Ð0Ø&Ý•f”m¥[Ñ1Ô1ð3à•6”=Ð"8Ð9Ø•6”=Ð"8Ð9Ø�&œ/Ð+<Ð=ð
ˆˆyÑð "1µ&´-ÀÐ EØ!0µ&´-ÀÐ EØ!&­¬°sÐ ;Ø!+­V¬_¸cÐ Bð!Cð 		ð 		ÑˆD�%˜õ
 Ð-Ñ.Ô.Ø Ñ# UÐ+Ø˜5Ð!Ø�e˜VÐ$ð	&ˆF�9˜T‘>Ñ"Ð"ð'ð!	6ñ !	6Ñ)ˆF�F˜G Tð ˜GÑ# cÑ)­6¬<Ð8Ø�œ wÐ/Ø�œ vÐ.ÝÐ-Ñ.Ô.Ø˜7Ñ" SÑ(­&¬,Ð7Ø˜GÑ# dÑ*­F¬LÐ9ð+ˆF�4˜Ñ&Ñ'ð �9Ô×$Ò$ j°6Ñ&9½6¼<Ø&*¨>Ñ&9ð&;ñ <ô <ð <ð ˜GÑ# cÑ)­6¬<Ð8Ø�œ wÐ/Ø�œ vÐ.Ø˜7Ñ" SÑ(­&¬,Ð7Ø˜GÑ# dÑ*­F¬LÐ9ð&ˆF�4˜	‘>Ñ"ð �9Ô×$Ò$ i°&Ñ&8½&¼,Ø&*¨9¡nð&6ñ 7ô 7ð 7ð ˜GÑ# cÑ)­6¬<Ð8Ø�œ wÐ/Ø˜-Ñ'­¬°vÐ>Ý˜Ñ&Ô&Ø˜7Ñ" SÑ(­&¬,Ð7Ø˜GÑ# dÑ*­F¬LÐ9ð%ˆF�4˜‘=Ñ!ð �9Ô×$Ò$ e¨f¡nµf´lØ&*¨8¡mð&5ñ 6ô 6ð 6ñ 6ð 	ˆyÐÐÔà=Ø ð"ð 3µF´LÐAØ6Ø!ð#ð MÝ•j¥&¤,°Ñ5Ô5ð7ð 8Ý•j¥&¤,°Ñ5Ô5ð7ð ;Ø!ð#ð#
ñ 	
ÐÐÑð* ˆrX   z\A#!.+?$z#.*?$z=begin\s.*?\n=end.*?$)ÚBEGINÚENDÚaliasÚbeginÚbreakÚcasezdefined?ÚdoÚelseÚelsifrF   ÚensureÚforÚifÚinÚnextÚredoÚrescueÚraiseÚretryÚreturnÚsuperÚthenÚundefÚunlessÚuntilÚwhenÚwhileÚyieldú\b©Úsuffixz.(module)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)z
(def)(\s+)Úfuncnamezdef(?=[*%&^`~+-/\[<>=])z(class)(\s+)Ú	classname)Ú
initializeÚnewÚloopr   Úextendr—   Úattr_readerÚattr_writerÚattr_accessorÚattrÚcatchÚthrowÚprivateÚmodule_functionÚpublicÚ	protectedÚtrueÚfalseÚnilz(not|and|or)\b)ÚautoloadÚblock_givenÚconst_definedÚeqlÚequalÚfrozenr   Úinstance_ofÚis_aÚiteratorÚkind_ofÚmethod_definedr·   Úprivate_method_definedÚprotected_method_definedÚpublic_method_definedÚ
respond_toÚtaintedz\?z(chomp|chop|exit|gsub|sub)!)eÚArrayÚFloatÚIntegerr   Ú__id__Ú__send__ÚabortÚ	ancestorsÚat_exitr¸   ÚbindingÚcallccÚcallerr¯   ÚchompÚchopÚ
class_evalÚclass_variablesÚclonezconst_defined?Ú	const_getÚconst_missingÚ	const_setÚ	constantsÚdisplayÚdupÚevalÚexecÚexitrª   ÚfailÚforkÚformatÚfreezeÚgetcÚgetsÚglobal_variablesÚgsubÚhashÚidÚincluded_modulesÚinspectÚinstance_evalÚinstance_methodÚinstance_methodsÚinstance_variable_getÚinstance_variable_setÚinstance_variablesÚlambdaÚloadÚlocal_variablesr©   ÚmethodÚmethod_missingÚmethodsÚmodule_evalr�   Ú	object_idÚopenÚpÚprintÚprintfÚprivate_class_methodÚprivate_instance_methodsÚprivate_methodsÚprocÚprotected_instance_methodsÚprotected_methodsÚpublic_class_methodÚpublic_instance_methodsÚpublic_methodsÚputcÚputsr—   ÚrandÚreadlineÚ	readlinesÚrequireÚscanÚselectrM   ÚsendÚset_trace_funcÚsingleton_methodsÚsleepÚsplitÚsprintfÚsrandÚsubÚsyscallÚsystemÚtaintÚtestr°   Úto_aÚto_sÚ	trace_varÚtrapÚuntaintÚuntrace_varÚwarnz(?<!\.))rh   r¤   z__(FILE|LINE)__\bz2(?<!\w)(<<[-~]?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)z(<<[-~]?)("|\')()(\2)(.*?\n)Ú__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::rk   zI\?(\\[MC]-)*(\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)z[A-Z]\w+z(\.|::)rg   z,(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])z[a-zA-Z_]\w*[!?]?z:(\[|\]|\*\*|<<?|>>?|>=|<=|<=>|=~|={3}|!~|&&?|\|\||\.{1,3})z[-+/*%=<>&!^|~]=?z[(){};,/?:\\]ú\s+ru   ÚdefexprzŽ(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z\u0080-\uffff][a-zA-Z0-9_\u0080-\uffff]*[!?=]?|!=|!~|=~|\*\*?|[-+!~]@?|[/%&|^]|<=>|<[<=]?|>[>=]?|===?|\[\]=?|`)rp   r'   z	[A-Z_]\w*z(\))(\.|::)?ry   Úrootrq   rr   z#\{úin-intpz#@@?[a-zA-Z_]\w*z#\$[a-zA-Z_]\w*rz   z2\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})ro   z[^\\#]+z\\\\z\\/z[^\\/#]+z/[mixounse]*z.+)r+  r¥   r¦   r*  r,  rz   rn   r[   rd   r%  r$  c                 ó"   — t          | d¦  «        S )Nzruby(1\.\d)?r   )rJ   s    rV   Úanalyse_textzRubyLexer.analyse_text‡  s   € Ý˜t _Ñ5Ô5Ð5rX   N)7Ú__name__Ú
__module__Ú__qualname__Ú__doc__r�   ÚurlÚaliasesÚ	filenamesÚ	mimetypesÚreÚDOTALLÚ	MULTILINEÚflagsrW   r†   r   ÚHashbangr~   Ú	Multiliner   r   r   r   r   Ú	NamespaceÚPseudor   ÚWordÚBuiltinÚPreprocr   r   r\   r   ÚOctÚHexÚBinrÊ   ÚVariableÚClassÚInstanceÚGlobalr   ÚCharÚConstantr|   r   ÚFunctionr   ÚInterpolÚEscapere   ÚtokensÚupdater.  © rX   rV   r   r      sõ  € € € € € ðð ð €DØ
$€CØ$Ð$Ð$€Gð>ð >ð >€IàÐ 4Ð5€IàŒI˜œÑ$€Eð- ð - ð - ð^eð eð eðPG
Ø˜'Ô*Ð+ðG
à�w”~Ð&ðG
ð & wÔ'8Ð9ðG
ð
 ˆUð =ð FKð	Lñ Lô Lð
 ððG
ð%àˆX�g˜z¨4¬>Ñ:Ô:ð<ðG
ð ˜H˜H W¨jÑ9Ô9¸:ÐFðG
ð  (¨°*Ð=ð!G
ð" ˜h˜h w°
Ñ;Ô;¸[ÐIð#G
ð& ˆUð Rð ð	ñ ô ð
 Œ^ðð'G
ð2  ¤Ð.ð3G
ð4 ˆUð Bð KPð	Qñ Qô Qð
 Œ\ðð5G
ð@ ,¨T¬\Ð:ðAG
ðB ˆUð 'ð* 0:À%ð+Iñ Iô Ið, Œ\ð-ðCG
ðp " 4¤<Ô#6Ð7ðqG
ðt CØððuG
ðz -Ð.>Ð?ð{G
ð| ˜œ¨*Ð5ð}G
ð@ð. $˜8 D¨&¬,Ñ7Ô7Ð9Jð/LðAG
ðr ˜vœ|Ð->Ð?ðsG
ðv " 8 8¨J¸¼Ñ#EÔ#EØð ðwG
ðJ 4ØˆX�f”j *¨hÑ7Ô7ð9ðKG
ðN ?ØˆX�f”j *¨hÑ7Ô7ð9ðOG
ðR 1ØˆX�f”j *¨hÑ7Ô7ð9ðSG
ðV -ØˆX�f”n j°(Ñ;Ô;ð=ðWG
ð\  ¤Ô 3Ð4ð]G
ð^ ˜tœ}Ô5Ð6ð_G
ð` �t”}Ô+Ð,ðaG
ðb .¨t¬}Ô/CÐDðcG
ðd   ¤Ô!5Ð6ðeG
ðf �HÐðgG
ðh ˆG�IÑÔðiG
ðlð Œ[ððmG
ðt ˜$œ-Ð(ðuG
ðz ˆU�>¨*Ð5Ñ5Ô5ØˆX�h ¤Ñ.Ô.ð0ð{G
ð~ =ØˆX�h Ñ%Ô%ð'ðG
ðB " 4Ð(ðCG
ðD%Ø&.ð0ðEG
ðH " 8Ð,ðIG
ðJ ˜{Ð+ðKG
ðL �ZÐ ðMG
ðR �K Ð+ðð ˆX�d”j (¨D¬MÑ:Ô:¸FðDð ˆG�F‰OŒOð
ð �K Ð+Ø�H˜fÐ%Ø˜4œ: vÐ.ØˆG�F‰OŒOð	
ð ˜h˜h {°HÑ=Ô=¸vÐFØ�H˜gÐ&ØˆG�F‰OŒOð
ð �F”O WÐ-Ø�F”O VÐ,ØˆG�F‰OŒOð
ð �V”_ iÐ0Ø  &¤/Ð2Ø ¤Ð1ð
ð ˆG�MÑ"Ô"ØBØŒ]ðð 
ð ˆG�MÑ"Ô"Ø�v”|Ð$Ø˜œÐ&ð
ð ˆG�MÑ"Ô"Ø�v”|Ð$Ø˜œÐ&ð 
ð ˆG�MÑ"Ô"Ø�f”lÐ#Ø�V”\Ð"Ø�v”|Ð$Ø˜&œ,Ð'Ø˜fœl¨FÐ3ð
ð �G”O VÐ,ð
ðCDð D€FðJ ‡M‚MÐ'Ð'Ñ)Ô)Ñ*Ô*Ð*ð6ð 6ð 6ð 6ð 6rX   r   c                   óJ   — e Zd ZdZdZddgZdgZ ej        d¦  «        Z	d„ Z
dS )	r   z¾
    For Ruby interactive console (**irb**) output like:

    .. sourcecode:: rbcon

        irb(main):001:0> a = 1
        => 1
        irb(main):002:0> puts a
        1
        => nil
    zRuby irb sessionÚrbconÚirbztext/x-ruby-shellsessionz.irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] |>> |\?> c           	   #   óx  K  — t          di | j        ¤Ž}d}g }t          j        |¦  «        D ]à}|                     ¦   «         }| j                             |¦  «        }|�\|                     ¦   «         }|                     t          |¦  «        dt          j        |d |…         fgf¦  «         |||d …         z  }ŒŽ|r-t          ||                     |¦  «        ¦  «        E d {V —† d}g }|                     ¦   «         t          j        |fV — Œá|r+t          ||                     |¦  «        ¦  «        E d {V —† d S d S )NÚ r   rP  )r   Úoptionsr   rI   r>   Ú
_prompt_rerN   rF   rD   rG   r   ÚPromptr
   rH   r=   ÚOutput)	rM   rJ   ÚrblexerÚcurcodeÚ
insertionsrN   ÚlineÚmrF   s	            rV   rH   z'RubyConsoleLexer.get_tokens_unprocessedž  s²  è è € ÝÐ+Ð+˜dœlÐ+Ð+ˆàˆØˆ
ÝÔ% dÑ+Ô+ð 	:ð 	:ˆEØ—;’;‘=”=ˆDØ”×%Ò% dÑ+Ô+ˆAØˆ}Ø—e’e‘g”g�Ø×!Ò!¥3 w¡<¤<Ø%&­¬¸¸T¸c¸T¼
Ð$CÐ#Dð#Fñ Gô Gð Gà˜4   œ:Ñ%��àð $Ý,Ø" G×$BÒ$BÀ7Ñ$KÔ$Kñ Mô  Mð Mð Mð Mð Mð Mð Mð Mà �GØ!#�JØ—k’k‘m”m¥W¤^°TÐ9Ð9Ð9Ð9Ð9Øð 	EÝ$Ø˜G×:Ò:¸7ÑCÔCñEô Eð Eð Eð Eð Eð Eð Eð Eð Eð Eð	Eð 	ErX   N)r/  r0  r1  r2  r�   r4  r6  r7  ÚcompilerW  rH   rP  rX   rV   r   r   ‹  sc   € € € € € ð
ð 
ð €DØ˜Ð€GØ+Ð,€Ià�”ð )ñ *ô *€JðEð Eð Eð Eð ErX   r   c                    óê  — e Zd ZdZdZdZddgZddgZdgZd	e	j
        d
fde	j
        d
fde	j
        d
fde	j
        d
fde	j
        d
fde	j
        d
fde	j
        d
fde	j
        d
fde	j
        d
fde	j
        d
fg
defde	j
        dfde	j
        dfde	j
        dfde	j
        dfde	j
        fde	j
        dfdej        fde	j        fde	fde	fd efd!ej        fd"ef ed#d$¬%¦  «        ej        fd&ej        fd'efd(ej        fd)ej        j        fd*ej        j        fd+efd,efd- eej        ee¦  «        fd. eej        ee¦  «        fd/ eej        ee¦  «        fd0 eej        ee¦  «        fd1ej         fd2ej        fgd3œZ!d4S )5r   zá
    Pygments Lexer For Fancy.

    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
    ÚFancyz!https://github.com/bakkdoor/fancyz*.fyz*.fancypackÚfancyÚfyztext/x-fancysrcz"/(\\\\|\\[^\\]|[^/\\])*/[egimosx]*rp   z"!(\\\\|\\[^\\]|[^!\\])*![egimosx]*z\\(\\\\|[^\\])*\\[egimosx]*z$\{(\\\\|\\[^\\]|[^}\\])*\}[egimosx]*z"<(\\\\|\\[^\\]|[^>\\])*>[egimosx]*z%\[(\\\\|\\[^\\]|[^\]\\])*\][egimosx]*z$\((\\\\|\\[^\\]|[^)\\])*\)[egimosx]*z"@(\\\\|\\[^\\]|[^@\\])*@[egimosx]*z"%(\\\\|\\[^\\]|[^%\\])*%[egimosx]*z$\$(\\\\|\\[^\\]|[^$\\])*\$[egimosx]*r)  zs\{(\\\\|\\[^\\]|[^}\\])*\}\s*úbalanced-regexzs<(\\\\|\\[^\\]|[^>\\])*>\s*zs\[(\\\\|\\[^\\]|[^\]\\])*\]\s*zs\((\\\\|\\[^\\]|[^)\\])*\)\s*z&m?/(\\\\|\\[^\\]|[^///\n])*/[gcimosx]*zm(?=[/!\\{<\[(@%$])z#(.*?)\nz\'([^\'\s\[\](){}]+|\[\])z"""(\\\\|\\[^\\]|[^\\])*?"""z"(\\\\|\\[^\\]|[^"\\])*"zJ(def|class|try|catch|finally|retry|return|return_local|match|case|->|=>)\bz(self|super|nil|false|true)\bz[(){};,/?|:\\])ÚObjectrÈ   ÚHashÚ	DirectoryÚFilerF  r   r   Ú
EnumerableÚFancyEnumerableÚBlockÚ	TrueClassÚNilClassÚ
FalseClassÚTupler{   ÚStackÚSetÚ	FancySpecÚMethodÚPackageÚRanger¢   r£   z[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+)rd  r+  N)"r/  r0  r1  r2  r�   r3  r5  r4  r6  r   r\   r   r   r~   r{   r   r   rJ  r   r   r@  rK  r   rE  rG  rF  r   r   rB  rC  rD  rÊ   rÉ   rN  rP  rX   rV   r   r   ·  si  € € € € € ðð ð €DØ
-€CØ˜Ð'€IØ˜ˆo€GØ"Ð#€Ið
 3°F´LÀ&ÐIØ2°F´LÀ&ÐIØ+¨V¬\¸6ÐBØ4°f´lÀFÐKØ2°F´LÀ&ÐIØ5°v´|ÀVÐLØ4°f´lÀFÐKØ2°F´LÀ&ÐIØ2°F´LÀ&ÐIØ4°f´lÀFÐKð
ð �ZÐ ð /°´Ð>NÐOØ,¨f¬lÐ<LÐMØ/°´Ð?OÐPØ.°´Ð>NÐOØ6¸¼ÐEØ# V¤\Ð3CÐDð ˜'œ.Ð)à)¨6¬=Ð9à,¨fÐ5à(¨&Ð1ðØ&ð(ð .¨t¬}Ð=Ø Ð,àˆUð ;ð DIð	Jñ Jô Jð
 Œ\ðð -¨d¬mÐ<à'¨Ð2Ø˜$œ-Ð(Ø˜tœ}Ô5Ð6Ø ¤Ô 3Ð4Ø�HÐØ˜dÐ#ð 7ØˆX�f”j *¨hÑ7Ô7ð9àAØˆX�f”j *¨hÑ7Ô7ð9à3ØˆX�f”j *¨hÑ7Ô7ð9à,ØˆX�f”n j°(Ñ;Ô;ð=à?ÀÄÐNØ�V”^Ð$ði5
ðDð D€F€F€FrX   r   ) r2  r7  Úpygments.lexerr   r   r   r   r   r   r	   r
   r   r   Úpygments.tokenr   r   r   r   r   r   r   r   r   r   r   Úpygments.utilr   Ú__all__r|   r   r   r   rP  rX   rV   ú<module>rz     sõ  ððð ð 
€	€	€	ðCð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð Cð4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4à )Ð )Ð )Ð )Ð )Ð )à
9Ð
9Ð
9€ð€ðl6ð l6ð l6ð l6ð l6Ð"ñ l6ô l6ð l6ð^)Eð )Eð )Eð )Eð )E�uñ )Eô )Eð )EðXTð Tð Tð Tð T�ñ Tô Tð Tð Tð TrX   