Ë
    |í¼e�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y)zÓ
    pygments.lexers.ruby
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for Ruby and related languages.

    :copyright: Copyright 2006-2023 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                   ó4  — 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j0                  «      f‘d eee«      df‘dedf‘d eee«      df‘ edd¬«      ej2                  f‘dej6                  f‘ edd¬«      ej8                  f‘dej8                  f‘ eddd¬«      ej8                  f‘dej8                  j2                  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!jD                  ee«      f‘d( ee!jF                  ee«      f‘d) ee!jH                  ee«      f‘d* ee!jJ                  ee«      f‘d+ejL                  jN                  f‘d,ejL                  jP                  f‘d-ejL                  jR                  f‘d.ejL                  jR                  f‘d/ejL                  jR                  f‘d0ef‘ e*d1«      ‘d2ejV                  f‘d3ejX                  f‘ ee-d4¬5«       eeej4                  «      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jN                  eej^                  «      d?f e0d?«      gd<e.d=fd@ed?fdAejN                  d?f e0d?«      gdB ee.e«      d?fd<edCf e*dD«      gdEejb                  dCfdFejb                  d?f e*dD«      gdGejb                  dHfdIejb                  fdJejb                  fg e*dK«      dLejd                  fg e*dK«      dMej@                  fdNej@                  fg e*dK«      dMejf                  fdNejf                  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œZ4e4jk                   e«       «       dU„ Z6yV)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              #   óF  K  — |j                  d«      }|t        |j                  d«      f–— |j                  d«      t        j                  |j                  d«      f–— |j                  d«      t        j
                  |j                  d«      f–— |j                  d«      t        j                  |j                  d«      f–— |j                  j                  dg «      }t        |«       }|j                  |j                  d«      dv |j                  d«      f«       |j                  d«      |_
        |j                  d«      |_        t        |«      dk  r| j                  |¬	«      E d {  –—†  n.|j                  t        j                  |j                  d«      f–— |j                  «       |_
        |�r`|D �]:  \  }}g }t        j                  |j                   |j                  «      D ]×  }|r|j                  «       j#                  «       }	n|j                  «       j%                  «       }	|	|k(  r€|D ]3  }
|
j                  «       t        j                  |
j                  «       f–— Œ5 |j                  «       t        j
                  |j                  «       f–— |j                  «       |_
         Œú|j                  |«       ŒÙ |D ])  }
|
j                  «       t&        |
j                  «       f–— Œ+ �Œ= t        |j                   «      |_        |d d …= y y 7 �Œ­­w)
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*   st  è ø€ ð —‘˜A“ˆØ”X˜uŸ{™{¨1›~Ð-Ò-Ø�k‰k˜!‹nœfŸn™n¨e¯k©k¸!«nÐ<Ò<Ø�k‰k˜!‹nœf×.Ñ.°·±¸A³Ð>Ò>Ø�k‰k˜!‹nœfŸn™n¨e¯k©k¸!«nÐ<Ò<à—|‘|×.Ñ.¨~¸rÓBˆÜ˜\Ó*Ð*ˆ	Ø×Ñ˜UŸ[™[¨›^¨~Ð=¸u¿{¹{È1»~ÐNÔOà—+‘+˜a“.ˆŒØ—)‘)˜A“,ˆŒäˆ|Ó˜sÒ"Ø×2Ñ2¸3Ð2Ó?×?Ñ?à—'‘'œ6Ÿ>™>¨5¯;©;°q«>Ð9Ò9Ø—)‘)“+ˆŒâà$0ó DÑ �˜&Ø�Ü$×-Ñ-¨c¯h©h¸¿¹Ó@ò D�EÙØ %§¡£× 3Ñ 3Ó 5™à %§¡£× 4Ñ 4Ó 6˜Ø ’Ø&+ò Q˜FØ"(§,¡,£.´&·.±.À&Ç,Á,Ã.Ð"PÓPðQà#Ÿk™k›m¬V×-=Ñ-=¸u¿{¹{»}ÐLÒLØ"'§)¡)£+˜œÙàŸ™ UÕ+ðDð #(ò D˜Ø$Ÿl™l›n¬e°V·\±\³^ÐCÓCòDð#Dô& ˜#Ÿ(™(“mˆCŒGØšQ‘ð- ð @ûs   ‚E/L!Å1LÅ2F-L!c                  ó  — 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   j                  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   j                  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   j                  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  — |j                  d«      t        j                  |j                  d«      f–— t	        |j                  d«      ddg«      }| j                  |¬«      D ]  \  }}}|j                  d«      |z   ||f–— Œ! |j                  d«      t        j                  |j                  d«      f–— |j                  «       |_        y ­w)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ˆDØ×6Ñ6¸tÐ6ÓDò -‘��1�aØ—k‘k !“n QÑ&¨¨1Ð,Ó,ð-à—+‘+˜a“.¤&§,¡,°·±¸A³Ð>Ò>Ø—i‘i“kˆC�Gùó   ‚CCc              3   ó¤  K  — |j                  d«      t        j                  |j                  d«      f–— t	        |j                  d«      ddg«      }| j                  |¬«      D ]  \  }}}|j                  d«      |z   ||f–— Œ! |j                  d«      t        j                  |j                  d«      f–— |j                  «       |_        y ­w)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ˆDØ×6Ñ6¸tÐ6ÓDò -‘��1�aØ—k‘k !“n QÑ&¨¨1Ð,Ó,ð-à—+‘+˜a“.¤&§,¡,°·±¸A³Ð>Ò>Ø—i‘i“kˆC�Gùrb   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   )	ra   rf   ÚstatesÚnameÚttyperF   ÚlbraceÚrbraceÚbraceccs	            rV   Úgen_rubystrings_ruleszRubyLexer.gen_rubystrings_rulesY   s»  € ò	"ò	"ð ˆð *¬6¯=©=Ð9Ü”>¨+Ô6¼¿¹ÐFØ)¬6¯=©=Ð9Ø”F—M‘M <Ð0Ø&Ü”f—m‘m¤[Ó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Ñ)ˆF�F˜G Tð ˜GÑ# cÑ)¬6¯<©<Ð8ØœŸ™ wÐ/ØœŸ™ vÐ.ÜÐ-Ó.Ø˜7Ñ" SÑ(¬&¯,©,Ð7Ø˜GÑ# dÑ*¬F¯L©LÐ9ð+ˆF�4˜Ñ&Ñ'ð �9Ñ×$Ñ$ j°6Ñ&9¼6¿<¹<Ø&*¨>Ñ&9ð&;ô <ð ˜GÑ# cÑ)¬6¯<©<Ð8ØœŸ™ wÐ/ØœŸ™ vÐ.Ø˜7Ñ" SÑ(¬&¯,©,Ð7Ø˜GÑ# dÑ*¬F¯L©LÐ9ð&ˆF�4˜	‘>Ñ"ð �9Ñ×$Ñ$ i°&Ñ&8¼&¿,¹,Ø&*¨9¡nð&6ô 7ð ˜GÑ# cÑ)¬6¯<©<Ð8ØœŸ™ wÐ/Ø˜-Ñ'¬¯©°vÐ>Ü˜Ó&Ø˜7Ñ" SÑ(¬&¯,©,Ð7Ø˜GÑ# dÑ*¬F¯L©LÐ9ð%ˆF�4˜‘=Ñ!ð �9Ñ×$Ñ$ e¨f¡n´f·l±lØ&*¨8¡mð&5ö 6ðA!	6ðH 	ˆyÓà=Ø ð"ð 3´F·L±LÐAØ6Ø!ð#ð MÜ”j¤&§,¡,°Ó5ð7ð 8Ü”j¤&§,¡,°Ó5ð7ð ;Ø!ð#ð#
ñ 	
Óð* ˆó    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   rZ   rd   r&  r%  c                 ó   — t        | d«      S )Nzruby(1\.\d)?r   )rJ   s    rV   Úanalyse_textzRubyLexer.analyse_text‡  s   € Ü˜t _Ó5Ð5r‡   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/  © r‡   rV   r   r      sf  „ ñð €DØ
$€CÚ$€Gò>€IàÐ 4Ð5€Ià�I‰I˜Ÿ™Ñ$€Eò- ò^eðPG
Ø˜'×*Ñ*Ð+ðG
à�w—~‘~Ð&ðG
ð & w×'8Ñ'8Ð9ðG
ñ
 ð =ð FKô	Lð
 ððG
ð%á�g˜z¨4¯>©>Ó:ð<ðG
ð ™H W¨jÓ9¸:ÐFðG
ð  (¨°*Ð=ð!G
ð" ™h w°
Ó;¸[ÐIð#G
ñ& ð Rð ô	ð
 �^‰^ðð'G
ð2  §¡Ð.ð3G
ñ4 ð Bð KPô	Qð
 �\‰\ðð5G
ð@ ,¨T¯\©\Ð:ðAG
ñB ð 'ð* 0:À%ô+Ið, �\‰\ð-ðCG
ðp " 4§<¡<×#6Ñ#6Ð7ðqG
ðt CØððuG
ðz -Ð.>Ð?ð{G
ð| ˜Ÿ™¨*Ð5ð}G
ð@ñ. $ D¨&¯,©,Ó7Ð9Jð/LðAG
ðr ˜vŸ|™|Ð->Ð?ðsG
ðv "¡8¨J¸¿¹Ó#EØð ðwG
ðJ 4Ù�f—j‘j *¨hÓ7ð9ðKG
ðN ?Ù�f—j‘j *¨hÓ7ð9ðOG
ðR 1Ù�f—j‘j *¨hÓ7ð9ðSG
ðV -Ù�f—n‘n j°(Ó;ð=ðWG
ð\  §¡× 3Ñ 3Ð4ð]G
ð^ ˜tŸ}™}×5Ñ5Ð6ð_G
ð` �t—}‘}×+Ñ+Ð,ðaG
ðb .¨t¯}©}×/CÑ/CÐDðcG
ðd   §¡×!5Ñ!5Ð6ðeG
ðf �HÐðgG
ñh �IÓðiG
ðlð �[‰[ððmG
ðt ˜$Ÿ-™-Ð(ðuG
ñz �>¨*Ô5Ù�h §¡Ó.ð0ð{G
ð~ =Ù�h Ó%ð'ðG
ðB " 4Ð(ðCG
ðD%Ø&.ð0ðEG
ðH " 8Ð,ðIG
ðJ ˜{Ð+ðKG
ðL �ZÐ ðMG
ðR �K Ð+ðñ �d—j‘j (¨D¯M©MÓ:¸FðDñ �F‹Oð
ð �K Ð+Ø�H˜fÐ%Ø˜4Ÿ:™: vÐ.Ù�F‹Oð	
ð ™h {°HÓ=¸vÐFØ�H˜gÐ&Ù�F‹Oð
ð �F—O‘O WÐ-Ø�F—O‘O VÐ,Ù�F‹Oð
ð �V—_‘_ iÐ0Ø  &§/¡/Ð2Ø §¡Ð1ð
ñ �MÓ"ØBØ�]‰]ðð 
ñ �MÓ"Ø�v—|‘|Ð$Ø˜Ÿ™Ð&ð
ñ �MÓ"Ø�v—|‘|Ð$Ø˜Ÿ™Ð&ð 
ñ �MÓ"Ø�f—l‘lÐ#Ø�V—\‘\Ð"Ø�v—|‘|Ð$Ø˜&Ÿ,™,Ð'Ø˜fŸl™l¨FÐ3ð
ð �G—O‘O VÐ,ð
ñCD€FðJ ‡M�MÑ'Ó)Ô*ó6r‡   r   c                   óP   — e Zd ZdZdZddgZdgZdZ ej                  d«      Z
d„ Zy	)
r   z8
    For Ruby interactive console (**irb**) output.
    zRuby irb sessionÚrbconÚirbztext/x-ruby-shellsessionzrbcon/consolez.irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] |>> |\?> c           	   #   óL  K  — t        di | j                  ¤Ž}d}g }t        j                  |«      D ]Å  }|j	                  «       }| j
                  j                  |«      }|�J|j                  «       }|j                  t        |«      dt        j                  |d | fgf«       |||d  z  }Œz|r't        ||j                  |«      «      E d {  –—†  d}g }|j                  «       t        j                  |f–— ŒÇ |r$t        ||j                  |«      «      E d {  –—†  y y 7 ŒT7 Œ­w)NÚ r   rQ  )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—  s1  è ø€ ÜÑ+˜dŸl™lÑ+ˆàˆØˆ
Ü×%Ñ% dÓ+ò 	:ˆEØ—;‘;“=ˆDØ—‘×%Ñ% dÓ+ˆAØˆ}Ø—e‘e“g�Ø×!Ñ!¤3 w£<Ø%&¬¯©¸¸T¸c¸
Ð$CÐ#Dð#Fô Gà˜4  ˜:Ñ%‘áÜ,Ø" G×$BÑ$BÀ7Ó$Kó M÷ Mð Mà �GØ!#�JØ—k‘k“m¤W§^¡^°TÐ9Ó9ð	:ñ Ü$Ø˜G×:Ñ:¸7ÓCóE÷ Eñ Eð ðMøðEús%   ‚C	D$ÃD ÃAD$ÄD"ÄD$Ä"D$N)r0  r1  r2  r3  r�   r5  r7  Ú_exampler8  ÚcompilerX  rH   rQ  r‡   rV   r   r   ‹  s@   „ ñð €DØ˜Ð€GØ+Ð,€IØ€Hà�—‘ð )ó *€JóEr‡   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.                  j0                  fd*ej.                  j2                  fd+efd,efd- eej8                  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!y4)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ÚFilerG  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+)rf  r,  N)"r0  r1  r2  r3  r�   r4  r6  r5  r7  r   r[   r   r   r~   r{   r   r   rK  r   r   rA  rL  r   rF  rH  rG  r   r   rC  rD  rE  rË   rÊ   rO  rQ  r‡   rV   r   r   °  sr  „ ñð €DØ
-€CØ˜Ð'€IØ˜ˆo€GØ"Ð#€Ið
 3°F·L±LÀ&ÐIØ2°F·L±LÀ&ÐIØ+¨V¯\©\¸6ÐBØ4°f·l±lÀFÐKØ2°F·L±LÀ&ÐIØ5°v·|±|ÀVÐLØ4°f·l±lÀFÐKØ2°F·L±LÀ&ÐIØ2°F·L±LÀ&ÐIØ4°f·l±lÀFÐKð
ð �ZÐ ð /°·±Ð>NÐOØ,¨f¯l©lÐ<LÐMØ/°·±Ð?OÐPØ.°·±Ð>NÐOØ6¸¿¹ÐEØ# V§\¡\Ð3CÐDð ˜'Ÿ.™.Ð)à)¨6¯=©=Ð9à,¨fÐ5à(¨&Ð1ðØ&ð(ð .¨t¯}©}Ð=Ø Ð,áð ;ð DIô	Jð
 �\‰\ðð -¨d¯m©mÐ<à'¨Ð2Ø˜$Ÿ-™-Ð(Ø˜tŸ}™}×5Ñ5Ð6Ø §¡× 3Ñ 3Ð4Ø�HÐØ˜dÐ#ð 7Ù�f—j‘j *¨hÓ7ð9àAÙ�f—j‘j *¨hÓ7ð9à3Ù�f—j‘j *¨hÓ7ð9à,Ù�f—n‘n j°(Ó;ð=à?ÀÇÁÐNØ�V—^‘^Ð$ði5
ñD�Fr‡   r   ) r3  r8  Ú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   rQ  r‡   rV   ú<module>r|     sq   ðñó 
÷C÷ C÷ C÷4÷ 4÷ 4ñ 4å )â
9€ð€ôl6Ð"ô l6ô^"E�uô "EôJT�õ Tr‡   