Ë
    !täiä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-present 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                   ó8  — e Zd ZdZdZdZg d¢Zg d¢ZddgZd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j2                  «      f‘d eee«      df‘dedf‘d eee«      df‘ edd¬«      ej4                  f‘dej8                  f‘ edd¬«      ej:                  f‘dej:                  f‘ eddd¬«      ej:                  f‘dej:                  j4                  f‘d ef‘d!ef‘d"ej<                  d#f‘d$ eee jB                  «      d%f‘d&e jB                  d%f‘d' eee jB                  «      d%f‘d( ee"jF                  ee«      f‘d) ee"jH                  ee«      f‘d* ee"jJ                  ee«      f‘d+ ee"jL                  ee«      f‘d,ejN                  jP                  f‘d-ejN                  jR                  f‘d.ejN                  jT                  f‘d/ejN                  jT                  f‘d0ejN                  jT                  f‘d1ef‘ e+d2«      ‘d3e jX                  f‘d4ejZ                  f‘ ee.d5¬6«       eeej6                  «      f‘d7 eee«      f‘d8ef‘d9ef‘d:ef‘d;e/f‘d<ef‘d=e/d>fd? eejP                  eej`                  «      d@f e1d@«      gd=e/d>fdAed@fdBejP                  d@f e1d@«      gdC ee/e«      d@fd=edDf e+dE«      gdFe jd                  dDfdGe jd                  d@f e+dE«      gdHe jd                  dIfdJe jd                  fdKe jd                  fg e+dL«      dMe jf                  fg e+dL«      dNe jB                  fdOe jB                  fg e+dL«      dNe jh                  fdOe jh                  fg e+dL«      dPe jB                  fdQe jB                  fdNe jB                  fdRe jB                  fdSe jB                  d@fgdTej<                  d@fgdUœZ5e5jm                   e«       «       dV„ Z7yW)Xr   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-rubyÚ c              #   ó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>   r9   Ú	outermostÚtolerantÚhdnameÚlinesÚcheckÚamatchs              úc/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/lexers/ruby.pyÚheredoc_callbackzRubyLexer.heredoc_callback+   sY  è ø€ ð —‘˜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Ñ �˜&Ø�Ü$×-Ñ-¨c¯h©h¸¿¹Ö@�EÙØ %§¡£× 3Ñ 3Ó 5™à %§¡£× 4Ñ 4Ó 6˜Ø ’Û&+˜FØ"(§,¡,£.´&·.±.À&Ç,Á,Ã.Ð"PÓPð ',à#Ÿk™k›m¬V×-=Ñ-=¸u¿{¹{»}ÐLÒLØ"'§)¡)£+˜œÙàŸ™ UÕ+ð Aó #(˜Ø$Ÿl™l›n¬e°V·\±\³^ÐCÓCò #(ð# %1ô& ˜#Ÿ(™(“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|› d�|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d0|fgz  cc<   |S )1Nc              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)Nr5   r7   r   úinterpolated-regexr<   r8   )r>   r   ÚRegexr?   r	   rI   rG   rF   ©rN   rO   rP   ÚnctxÚiÚtÚvs          rW   Úintp_regex_callbackz<RubyLexer.gen_rubystrings_rules.<locals>.intp_regex_callback[   s¨   è ø€ Ø—+‘+˜a“.¤&§,¡,°·±¸A³Ð>Ò>Ü §¡¨A£°Ð4HÐ3IÓJˆDØ×6Ñ6¸tÐ6ÖD‘��1�aØ—k‘k !“n QÑ&¨¨1Ð,Ó,ð Eà—+‘+˜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)Nr5   r7   r   úinterpolated-stringr<   r8   )r>   r   ÚOtherr?   r	   rI   rG   rF   r]   s          rW   Úintp_string_callbackz=RubyLexer.gen_rubystrings_rules.<locals>.intp_string_callbackc   s¨   è ø€ Ø—+‘+˜a“.¤&§,¡,°·±¸A³Ð>Ò>Ü §¡¨A£°Ð4IÐ3JÓKˆDØ×6Ñ6¸tÐ6ÖD‘��1�aØ—k‘k !“n QÑ&¨¨1Ð,Ó,ð Eà—+‘+˜a“.¤&§,¡,°·±¸A³Ð>Ò>Ø—i‘i“kˆC�Gùrc   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[^\\z#]+ú[\\#]ú#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   rf   rE   r\   r   )	rb   rg   ÚstatesÚnameÚttyperG   ÚlbraceÚrbraceÚbraceccs	            rW   Úgen_rubystrings_ruleszRubyLexer.gen_rubystrings_rulesZ   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�%˜ô
 Ð-Ó.Ø˜˜˜SÐ! 5Ð)Ø˜5Ð!Ø�e˜VÐ$ð	&ˆF�9˜T‘>Ò"ð	!Cô'ñ *ˆ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ð?'ðF 	ˆ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ÚelsifrG   Ú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ÚselectrN   Ú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(?<!\.))ri   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::rl   zI\?(\\[MC]-)*(\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)z[A-Z]\w+z(\.|::)rh   z,(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])z[a-zA-Z_]\w*[!?]?z:(\[|\]|\*\*|<<?|>>?|>=|<=|<=>|=~|={3}|!~|&&?|\|\||\.{1,3})z[-+/*%=<>&!^|~]=?z[(){};,/?:\\]ú\s+rv   ÚdefexprzŽ(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z\u0080-\uffff][a-zA-Z0-9_\u0080-\uffff]*[!?=]?|!=|!~|=~|\*\*?|[-+!~]@?|[/%&|^]|<=>|<[<=]?|>[>=]?|===?|\[\]=?|`)rq   r'   z	[A-Z_]\w*z(\))(\.|::)?rz   Úrootrr   rs   z#\{ú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})rp   z[^\\#]+z\\\\z\\/z[^\\/#]+z/[mixounse]*z.+)r-  r§   r¨   r,  r.  r{   ro   r[   re   r'  r&  c                 ó   — t        | d«      S )Nzruby(1\.\d)?r   )rK   s    rW   Úanalyse_textzRubyLexer.analyse_textˆ  s   € Ü˜t _Ó5Ð5rˆ   N)8Ú__name__Ú
__module__Ú__qualname__Ú__doc__r‚   ÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedÚreÚDOTALLÚ	MULTILINEÚflagsrX   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ÚEscaperf   ÚtokensÚupdater0  © rˆ   rW   r   r      sk  „ ñð €DØ
$€CÚ$€Gò>€IàÐ 4Ð5€IØ€Mà�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                   óX   — e Zd ZdZdZddgZdgZdZd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https://www.ruby-lang.orgr3   z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)Nr3   r   rS  )r   Úoptionsr   rJ   r?   Ú
_prompt_rerO   rG   rE   rH   r   ÚPromptr
   rI   r>   ÚOutput)	rN   rK   ÚrblexerÚcurcodeÚ
insertionsrO   ÚlineÚmrG   s	            rW   rI   z'RubyConsoleLexer.get_tokens_unprocessedš  s,  è ø€ ÜÑ+˜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)r1  r2  r3  r4  r‚   r6  r8  r5  r9  Ú_exampler:  ÚcompilerY  rI   rS  rˆ   rW   r   r   Œ  sJ   „ ñð €DØ˜Ð€GØ+Ð,€IØ
%€CØ€MØ€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	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j0                  j2                  fd+ej0                  j4                  fd,efd-efd. eej:                  ee«      fd/ eej<                  ee«      fd0 eej>                  ee«      fd1 eej@                  ee«      fd2ejB                  fd3ej@                  fgd4œZ"y5)6r   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.
    ÚFancyz!https://github.com/bakkdoor/fancyz*.fyz*.fancypackÚfancyÚfyztext/x-fancysrcz1.5z"/(\\\\|\\[^\\]|[^/\\])*/[egimosx]*rq   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ÚFilerI  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+)rg  r-  N)#r1  r2  r3  r4  r‚   r5  r7  r6  r8  r9  r   r\   r   r   r   r|   r   r   rM  r   r   rC  rN  r   rH  rJ  rI  r   r   rE  rF  rG  rÌ   rË   rQ  rS  rˆ   rW   r   r   ³  sw  „ ñð €DØ
-€CØ˜Ð'€IØ˜ˆo€GØ"Ð#€IØ€Mð
 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   ) r4  r:  Ú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   rS  rˆ   rW   Ú<module>r}     sq   ðñó 
÷C÷ C÷ C÷4÷ 4÷ 4ñ 4å )â
9€ð€ôm6Ð"ô m6ô`$E�uô $EôNS�õ Srˆ   