
    5hX                         S r SSKrSSKJrJrJrJrJrJrJ	r	J
r
JrJr  SSKJrJrJrJrJrJrJrJrJrJrJr  SSKJr  / SQrSr " S S	\5      r " S
 S\5      r " S S\5      rg)z
pygments.lexers.ruby
~~~~~~~~~~~~~~~~~~~~

Lexers for Ruby and related languages.

:copyright: Copyright 2006-2025 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                   "   \ rS rSrSrSrSr/ SQr/ SQrSS/r	S	r
\R                  \R                  -  rS
 rS r/ S\R$                  4PS\R&                  4PS\R(                  4P\" SSS9\4PS\" \\\R4                  5      4PS\" \\5      S4PS\S4PS\" \\5      S4P\" SSS9\R6                  4PS\R:                  4P\" SSS9\R<                  4PS\R<                  4P\" SSSS9\R<                  4PS \R<                  R6                  4PS!\4PS"\4PS#\R>                  S$4PS%\" \ \!RD                  5      S&4PS'\!RD                  S&4PS(\" \\!RD                  5      S&4PS)\" \#RH                  \\5      4PS*\" \#RJ                  \\5      4PS+\" \#RL                  \\5      4PS,\" \#RN                  \\5      4PS-\RP                  RR                  4PS.\RP                  RT                  4PS/\RP                  RV                  4PS0\RP                  RV                  4PS1\RP                  RV                  4PS2\4P\," S35      PS4\!RZ                  4PS5\R\                  4P\" \/S6S79\" \\R8                  5      4PS8\" \\5      4PS9\4PS:\4PS;\4PS<\04PS=\4PS>\0S?4S@\" \RR                  \\Rb                  5      SA4\2" SA5      /S>\0S?4SB\SA4SC\RR                  SA4\2" SA5      /SD\" \0\5      SA4S>\SE4\," SF5      /SG\!Rf                  SE4SH\!Rf                  SA4\," SF5      /SI\!Rf                  SJ4SK\!Rf                  4SL\!Rf                  4/\," SM5      SN\!Rh                  4/\," SM5      SO\!RD                  4SP\!RD                  4/\," SM5      SO\!Rj                  4SP\!Rj                  4/\," SM5      SQ\!RD                  4SR\!RD                  4SO\!RD                  4SS\!RD                  4ST\!RD                  SA4/SU\R>                  SA4/SV.r6\6Ro                  \" 5       5        SW r8SXr9gY)Zr      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              #   t  #    UR                  S5      nU[        UR                  S5      4v   UR                  S5      [        R                  UR                  S5      4v   UR                  S5      [        R
                  UR                  S5      4v   UR                  S5      [        R                  UR                  S5      4v   UR                  R                  S/ 5      n[        U5      (       + nUR                  UR                  S5      S;   UR                  S5      45        UR                  S5      Ul
        UR                  S5      Ul        [        U5      S:  a  U R                  US	9 S h  vN   O.UR                  [        R                  UR                  S5      4v   UR                  5       Ul
        U(       Gao  U GHH  u  pg/ n[        R                  " UR                   UR                  5       H  nU(       a  UR                  5       R#                  5       n	OUR                  5       R%                  5       n	X:X  a  U H4  n
U
R                  5       [        R                  U
R                  5       4v   M6     UR                  5       [        R
                  UR                  5       4v   UR                  5       Ul
          GM  UR                  U5        M     U H*  n
U
R                  5       [&        U
R                  5       4v   M,     GMK     [        UR                   5      Ul        US S 2	 g g  GN7f)
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?   r:   	outermosttoleranthdnamelinescheckamatchs              _/var/www/html/cementerio_25MayoBackend/env/lib/python3.13/site-packages/pygments/lexers/ruby.pyheredoc_callbackRubyLexer.heredoc_callback+   sT     AXu{{1~--kk!nfnnekk!n<<kk!nf..A>>kk!nfnnekk!n<<||..~rB\**	U[[^~=u{{1~NO++a.))A,|s"2232???''6>>5;;q>99))+$0 $--chh@E % 3 3 5 % 4 4 6&+F"(,,.&..&,,."PP ',#kkmV-=-=u{{}LL"'))+U+ A #($llneV\\^CC #(# %1& #((mCGQ-  @s   E2L84L55GL8c                     S n S n0 nS[         R                  4[        [        SS9[         R                  4S[         R                  4S[         R                  S4S	[	        [         R                  [
        5      4S
[         R                  S4S[         R                  S4S[         R                  S4/US'   S[         R                  S
4S[         R                  S4S[         R                  S
4S[         R                  S44 H%  u  p4n[        S5      SU S3U4SU4XTS4/USU-   '   M'     S GH  u  pgpSU-   S-   [         R                  4U[         R                  S4U[         R                  S4[        S5      S U-   S-   [         R                  4S!U-   S"-   [         R                  4/X#S#-   '   US   R                  S$U-   [         R                  US#-   45        SU-   S-   [         R                  4U[         R                  S4U[         R                  S4S U-   S-   [         R                  4S!U-   S"-   [         R                  4/X#S%-   '   US   R                  S&U-   [         R                  US%-   45        SU-   S-   [         R                  4U[         R                  S4US'-   [         R                  S4[        S(5      S U-   S-   [         R                  4S!U-   S"-   [         R                  4/X#S)-   '   US   R                  S*U-   [         R                  US)-   45        GM     US==   S+U 4S,[         R                  4S-U4S.[	        [        [         R                  S 5      4S/[	        [        [         R                  S 5      4S0U4/-  ss'   U$ )1Nc              3     #    UR                  S5      [        R                  UR                  S5      4v   [	        UR                  S5      SS/5      nU R                  US9 H  u  pEnUR                  S5      U-   XV4v   M      UR                  S5      [        R                  UR                  S5      4v   UR                  5       Ul        g 7f)Nr6   r8   r   interpolated-regexr=   r9   )r?   r   Regexr@   r	   rJ   rH   rG   rO   rP   rQ   nctxitvs          rX   intp_regex_callback<RubyLexer.gen_rubystrings_rules.<locals>.intp_regex_callback[   s     ++a.&,,A>>A4H3IJD66t6Dakk!nQ&,, E++a.&,,A>>iikCG   CCc              3     #    UR                  S5      [        R                  UR                  S5      4v   [	        UR                  S5      SS/5      nU R                  US9 H  u  pEnUR                  S5      U-   XV4v   M      UR                  S5      [        R                  UR                  S5      4v   UR                  5       Ul        g 7f)Nr6   r8   r   interpolated-stringr=   r9   )r?   r   Otherr@   r	   rJ   rH   rG   r_   s          rX   intp_string_callback=RubyLexer.gen_rubystrings_rules.<locals>.intp_string_callbackc   s     ++a.&,,A>>A4I3JKD66t6Dakk!nQ&,, E++a.&,,A>>iikCGrf   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   ri   rF   r^   r   )	rd   rj   statesnamettyperH   lbracerbracebraceccs	            rX   gen_rubystrings_rulesRubyLexer.gen_rubystrings_rulesZ   s   	"	"  *6==9>+6F)6==9FMM<0&fmm[136=="896=="89&//+<=
y "1&-- E!0&-- E!&s ;!+V__c B!CD
 -.S!5)5!V$	&F9T>"	!C' *FG G#c)6<<8w/v.-.7"S(&,,7G#d*FLL9+F&' 9$$j6&96<<&*>&9&; < G#c)6<<8w/v.7"S(&,,7G#d*FLL9&F	>" 9$$i&&8&,,&*9n&6 7 G#c)6<<8w/-'v>&7"S(&,,7G#d*FLL9%F=! 9$$efnfll&*8m&5 6?'F 	y= " 3FLL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elsifrH   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selectrO   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(?<!\.))rm   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::rp   zI\?(\\[MC]-)*(\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)z[A-Z]\w+z(\.|::)rl   z,(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])z[a-zA-Z_]\w*[!?]?z:(\[|\]|\*\*|<<?|>>?|>=|<=|<=>|=~|={3}|!~|&&?|\|\||\.{1,3})z[-+/*%=<>&!^|~]=?z[(){};,/?:\\]\s+rz   defexprz(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z\u0080-\uffff][a-zA-Z0-9_\u0080-\uffff]*[!?=]?|!=|!~|=~|\*\*?|[-+!~]@?|[/%&|^]|<=>|<[<=]?|>[>=]?|===?|\[\]=?|`)ru   r'   z	[A-Z_]\w*z(\))(\.|::)?r~   rootrv   rw   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})rt   z[^\\#]+z\\\\z\\/z[^\\/#]+z/[mixounse]*z.+)r2  r   r   r1  r3  r   rs   r]   rh   r,  r+  c                     [        U S5      $ )Nzruby(1\.\d)?r   )rL   s    rX   analyse_textRubyLexer.analyse_text  s    t_55r    N):__name__
__module____qualname____firstlineno____doc__r   urlaliases	filenames	mimetypesversion_addedreDOTALL	MULTILINEflagsrY   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Escaperi   tokensupdater5  __static_attributes__r7  r   rX   r   r      sk    D
$C$G>I 45IMII$E- ^ePG
'**+G
w~~&G
 &w'8'89G

  = FK	L
 G
%gz4>>:<G
 HWj9:FG
  (*=!G
" hw
;[I#G
&  R 	
 ^^'G
2 .3G
4  B KP	Q
 \\5G
@ ,T\\:AG
B  '* 0:%+I, \\-CG
p "4<<#6#67qG
t CuG
z -.>?{G
| *5}G
@. $D&,,79J/LAG
r v||->?sG
v "8J#E wG
J 4fjj*h79KG
N ?fjj*h79OG
R 1fjj*h79SG
V -fnnj(;=WG
\  3 34]G
^ t}}556_G
` t}}++,aG
b .t}}/C/CDcG
d  !5!56e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%&.0EG
H "8,IG
J {+KG
L Z MG
R K+ djj(DMM:FD FO
 K+Hf%4::v.FO	
 h{H=vFHg&FO
 FOOW-FOOV,FO
 V__i0 &//21
 M"B]] 
 M"v||$&
 M"v||$& 
 M"fll#V\\"v||$&,,'fllF3
 GOOV,
CDFJ MM')*6r   r   c                   `    \ rS rSrSrSrSS/rS/rSrSr	S	r
\R                  " S
5      rS rSrg)r   i  z0
For Ruby interactive console (**irb**) output.
zRuby irb sessionrbconirbztext/x-ruby-shellsessionzhttps://www.ruby-lang.orgr4   zrbcon/consolez.irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] |>> |\?> c           	   #   d  #    [        S0 U R                  D6nSn/ n[        R                  " U5       H  nUR	                  5       nU R
                  R                  U5      nUbJ  UR                  5       nUR                  [        U5      S[        R                  US U 4/45        X6US  -  nM{  U(       a&  [        XBR                  U5      5       S h  vN   Sn/ nUR                  5       [        R                  U4v   M     U(       a#  [        XBR                  U5      5       S h  vN   g g  NZ N7f)Nr4   r   r7  )r   optionsr   rK   r@   
_prompt_rerP   rH   rF   rI   r   Promptr
   rJ   r?   Output)	rO   rL   rblexercurcode
insertionsrP   linemrH   s	            rX   rJ   'RubyConsoleLexer.get_tokens_unprocessed  s$    +dll+
%%d+E;;=D%%d+A}eeg!!3w<%&Tc
$C#D#F G:%,"$B$B7$K M M M G!#JkkmW^^T99 , $::7CE E E MEs%   CD0D,AD0%D.&D0.D0r7  N)r8  r9  r:  r;  r<  r   r>  r@  r=  rA  _examplerB  compilera  rJ   r[  r7  r   rX   r   r     sH     DG+,I
%CMH ) *JEr   r   c                       \ rS rSrSrSrSrSS/rSS/rS	/r	S
r
S\R                  S4S\R                  S4S\R                  S4S\R                  S4S\R                  S4S\R                  S4S\R                  S4S\R                  S4S\R                  S4S\R                  S4/
S\4S\R                  S4S\R                  S4S\R                  S4S\R                  S4S\R                  4S\R                  S4S\R                  4S\R                   4S \4S!\4S"\4S#\R&                  4S$\4\" S%S&S'9\R,                  4S(\R.                  4S)\4S*\R&                  4S+\R2                  R4                  4S,\R2                  R6                  4S-\4S.\4S/\" \R<                  \\5      4S0\" \R>                  \\5      4S1\" \R@                  \\5      4S2\" \RB                  \\5      4S3\RD                  4S4\RB                  4/S5.r#S6r$g7)8r   i  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]*ru   z"!(\\\\|\\[^\\]|[^!\\])*![egimosx]*z\\(\\\\|[^\\])*\\[egimosx]*z$\{(\\\\|\\[^\\]|[^}\\])*\}[egimosx]*z"<(\\\\|\\[^\\]|[^>\\])*>[egimosx]*z%\[(\\\\|\\[^\\]|[^\]\\])*\][egimosx]*z$\((\\\\|\\[^\\]|[^)\\])*\)[egimosx]*z"@(\\\\|\\[^\\]|[^@\\])*@[egimosx]*z"%(\\\\|\\[^\\]|[^%\\])*%[egimosx]*z$\$(\\\\|\\[^\\]|[^$\\])*\$[egimosx]*r0  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FilerQ  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+)rp  r2  r7  N)%r8  r9  r:  r;  r<  r   r=  r?  r>  r@  rA  r   r^   r   r   r   r   r   r   rU  r   r   rK  rV  r   rP  rR  rQ  r   r   rM  rN  rO  r   r   rY  r[  r7  r   rX   r   r     sw    D
-C'IoG"#IM
 3FLL&I2FLL&I+V\\6B4fllFK2FLL&I5v||VL4fllFK2FLL&I2FLL&I4fllFK
 Z  />NO,fll<LM/?OP.>NO6E#V\\3CD '..))6==9,f5(&1&( .t}}=, ; DI	J
 \\ -dmm<'2$--(t}}556 3 34Hd# 7fjj*h79Afjj*h793fjj*h79,fnnj(;=?NV^^$i5
DFr   r   ) r<  rB  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   r7  r   rX   <module>r     sq    
C C C4 4 4 4 )
9m6" m6`$Eu $ENS Sr   