K iXdZddlZddlmZmZmZmZmZmZm Z m Z m Z m Z ddl mZmZmZmZmZmZmZmZmZmZmZddlmZgdZdZGdd eZGd d eZGd d eZy)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 RegexLexerExtendedRegexLexerincludebygroupsdefault LexerContext do_insertionswordsline_re) TextCommentOperatorKeywordNameStringNumber PunctuationErrorGeneric Whitespaceshebang_matches) RubyLexerRubyConsoleLexer FancyLexer)*z**-+z-@z+@/%&|^`~z[]z[]=<><<>z<=>>z>=z==z===c8eZdZdZdZdZgdZgdZddgZdZ e je jzZ d Zd Zgd ej"fd ej$fd ej&feddefdeeeej2fdeeedfdedfdeeedfeddej4fdej8feddej:fdej:fedddej:fdej:j4fd efd!efd"ej<d#fd$eee jBd%fd&e jBd%fd'eee jBd%fd(ee"jFeefd)ee"jHeefd*ee"jJeefd+ee"jLeefd,ejNjPfd-ejNjRfd.ejNjTfd/ejNjTfd0ejNjTfd1efe+d2d3e jXfd4ejZfee.d56eeej6fd7eeefd8efd9efd:efd;e/fdfd?eejPeej`d@fe1d@gd=e/d>fdAed@fdBejPd@fe1d@gdCee/ed@fd=edDfe+dEgdFe jddDfdGe jdd@fe+dEgdHe jddIfdJe jdfdKe jdfge+dLdMe jffge+dLdNe jBfdOe jBfge+dLdNe jhfdOe jhfge+dLdPe jBfdQe jBfdNe jBfdRe jBfdSe jBd@fgdTej<d@fgdU Z5e5jmedVZ7yW)Xrz For Ruby source code. Rubyzhttp://www.ruby-lang.org)rubyrbduby) z*.rbz*.rbwRakefilez*.rakez *.gemspecz*.rbxz*.dubyGemfile Vagrantfilez text/x-rubyzapplication/x-rubyc#FK|jd}|t|jdf|jdtj|jdf|jdtj |jdf|jdtj|jdf|j jdg}t| }|j|jddv|jdf|jd|_ |jd|_ t|dkr|j| Ed{n.|jtj|jdf|j|_ |r`|D]:\}}g}tj|j |jD]}|r|jj#} n|jj%} | |k(r|D]3} | jtj| jf5|jtj |jf|j|_ |j||D])} | jt&| jf+=t|j |_ |dd=yy7w) N heredocstack)z<<-z<<~dcontext)startrgrouprHeredoc Delimiter__dict__ setdefaultboolappendposendlenget_tokens_unprocessedr finditertextstriprstripr) selfmatchctxr>r9 outermosttoleranthdnamelinescheckamatchs Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pygments/lexers/ruby.pyheredoc_callbackzRubyLexer.heredoc_callback+st AXu{{1~--kk!nfnnekk!n<<kk!nf.. A>>kk!nfnnekk!n<<||..~rB \** U[[^~=u{{1~NO++a.))A, | s "2232? ? ?''6>>5;;q>9 9))+ $0 D &$--chh@DE % 3 3 5 % 4 4 6&+QF"(,,.&..&,,."PPQ#kkmV-=-=u{{}LL"'))+ U+D#(D$llneV\\^CCD# D&#((mCGQ-  @sE/L!1L2F-L!c d}d}i}dtjfttdtjfdtjfdtjdfd t tjt fd tj d fd tjd fdtjdfg|d<dtj d fdtjd fdtjd fdtjdffD]&\}}}tdd|d|fd|f||dfg|d|z<(dD]\}}}}d|zdztjf|tjdf|tjdftdd |zdztjfd!|zd"ztjfg||d#z<|djd$|ztj|d#zfd|zdztjf|tjdf|tjdfd |zdztjfd!|zd"ztjfg||d%z<|djd&|ztj|d%zfd|zdztjf|tjdf|d'ztjdftd(d |zdztjfd!|zd"ztjfg||d)z<|djd*|ztj|d)zf|dxxd+|fd,tjfd-|fd.t ttjdfd/t ttjdfd0|fgz cc<|S)1Nc3K|jdtj|jdft |jdddg}|j |D]\}}}|jd|z||f!|jdtj|jdf|j |_yw)Nr5r7rinterpolated-regexr<r8)r>rRegexr?r rIrGrFrNrOrPnctxitvs rWintp_regex_callbackz.intp_regex_callback[s++a.&,, A> > A4H3IJD66t6D -1akk!nQ&1,, -++a.&,, A> >iikCGCCc3K|jdtj|jdft |jdddg}|j |D]\}}}|jd|z||f!|jdtj|jdf|j |_yw)Nr5r7rinterpolated-stringr<r8)r>rOtherr?r rIrGrFr]s rWintp_string_callbackz=RubyLexer.gen_rubystrings_rules..intp_string_callbackcs++a.&,, A> > A4I3JKD66t6D -1akk!nQ&1,, -++a.&,, A> >iikCGrcz\:@{0,2}[a-zA-Z_]\w*[!?]?z\:@{0,2}prefixz:'(\\\\|\\[^\\]|[^'\\])*'z:"z simple-symz([a-zA-Z_]\w*)(:)(?!:)"zsimple-string-double'zsimple-string-singlez(?&!^|~,(])(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)z'^(\s*)(%([\t ])(?:(?:\\\3|(?!\3).)*)\3)z*(%([^a-zA-Z0-9\s]))((?:\\\2|(?!\2).)*)(\2))rSymbolr RUBY_OPERATORSrrDoubleSingleBacktickrrfrEr\r) rbrgstatesnamettyperGlbracerbracebraceccs rWgen_rubystrings_ruleszRubyLexer.gen_rubystrings_rulesZs " "*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!eV$ &F9T> " '! 6 )FFGT G#c)6<<8w/v.-.7"S(&,,7G#d*FLL9 +F4& ' 9  $ $j6&96<<&*>&9&; <G#c)6<<8w/v.7"S(&,,7G#d*FLL9 &F4 > " 9  $ $i&&8&,,&*9n&6 7G#c)6<<8w/-'v> &7"S(&,,7G#d*FLL9 %F4= ! 9  $ $efnfll&*8m&5 6A! 6H y =  "3FLL A 6 ! #M j&,, 5 78 j&,, 5 7; ! ##  * z\A#!.+?$z#.*?$z=begin\s.*?\n=end.*?$)BEGINENDaliasbeginbreakcasezdefined?doelseelsifrGensureforifinnextredorescueraiseretryreturnsuperthenundefunlessuntilwhenwhileyield\bsuffixz.(module)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)z (def)(\s+)funcnamezdef(?=[*%&^`~+-/\[<>=])z (class)(\s+) classname) initializenewlooprextendr attr_reader attr_writer attr_accessorattrcatchthrowprivatemodule_functionpublic protectedtruefalsenilz(not|and|or)\b)autoload block_given const_definedeqlequalfrozenr instance_ofis_aiteratorkind_ofmethod_definedrprivate_method_definedprotected_method_definedpublic_method_defined respond_totaintedz\?z(chomp|chop|exit|gsub|sub)!)eArrayFloatIntegerr__id____send__abort ancestorsat_exitrbindingcallcccallerrchompchop class_evalclass_variablesclonezconst_defined? const_get const_missing const_set constantsdisplaydupevalexecexitrfailforkformatfreezegetcgetsglobal_variablesgsubhashidincluded_modulesinspect instance_evalinstance_methodinstance_methodsinstance_variable_getinstance_variable_setinstance_variableslambdaloadlocal_variablesrmethodmethod_missingmethods module_evalr object_idopenpprintprintfprivate_class_methodprivate_instance_methodsprivate_methodsprocprotected_instance_methodsprotected_methodspublic_class_methodpublic_instance_methodspublic_methodsputcputsrrandreadline readlinesrequirescanselectrNsendset_trace_funcsingleton_methodssleepsplitsprintfsrandsubsyscallsystemtainttestrto_ato_s trace_vartrapuntaint untrace_varwarnz(?~!:])|(?<=(?:\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::rlzI\?(\\[MC]-)*(\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)z[A-Z]\w+z(\.|::)rhz,(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])z[a-zA-Z_]\w*[!?]?z:(\[|\]|\*\*|<>?|>=|<=|<=>|=~|={3}|!~|&&?|\|\||\.{1,3})z[-+/*%=<>&!^|~]=?z [(){};,/?:\\]\s+rvdefexprz(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z\u0080-\uffff][a-zA-Z0-9_\u0080-\uffff]*[!?=]?|!=|!~|=~|\*\*?|[-+!~]@?|[/%&|^]|<=>|<[<=]?|>[>=]?|===?|\[\]=?|`)rqr'z [A-Z_]\w*z (\))(\.|::)?rzrootrrrsz#\{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})rpz[^\\#]+z\\\\z\\/z[^\\/#]+z /[mixounse]*z.+) r-rrr,r.r{ror[rer'r&ct|dS)Nz ruby(1\.\d)?r)rKs rW analyse_textzRubyLexer.analyse_textst_55rN)8__name__ __module__ __qualname____doc__rurlaliases filenames mimetypes version_addedreDOTALL MULTILINEflagsrXrrHashbangr Multiliner rrrr NamespacePseudorWordBuiltinPreprocr rr\rOctHexBinrVariableClassInstanceGlobalrCharConstantr}rFunctionrInterpolEscaperftokensupdater0rrWrrsk D $C$G>I 45IM II $E- ^ePG '** +G w~~ &G &w'8'8 9G =FK L    G % gz4>> : <G HWj9: FG (* =!G "hw ;[ I#G &R  ^^  'G 2 .3G 4BKP Q \\  5G @,T\\ :AG B'*0:%+I,\\- CG p"4<<#6#6 7qG tC  uG z-.> ?{G |* 5}G @.$D&,,79J/ LAG rv||-> ?sG v"8J #E  wG J4 fjj*h 7 9KG N? fjj*h 7 9OG R1 fjj*h 7 9SG V- fnnj( ; =WG \ 3 3 4]G ^t}}55 6_G `t}}++ ,aG b.t}}/C/C DcG d !5!5 6eG fH gG h I iG l[[ mG t$-- (uG z>* 5 h . 0{G ~= h % 'G B"4 (CG D%&. 0EG H"8 ,IG J{ +KG LZ MG RK +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 , CDFJ MM')*6rrcXeZdZdZdZddgZdgZdZdZdZ e jd Z d Z y ) rz8 For Ruby interactive console (**irb**) output. zRuby irb sessionrbconirbztext/x-ruby-shellsessionzhttps://www.ruby-lang.orgr3z rbcon/consolez.irb\([a-zA-Z_]\w*\):\d{3}:\d+[>*"\'] |>> |\?> c #LKtdi|j}d}g}tj|D]}|j }|j j |}|J|j}|jt|dtj|d|fgf|||dz }z|r't||j|Ed{d}g}|jtj|f|r$t||j|Ed{yy7T7w)Nr3rrS)roptionsr rJr? _prompt_rerOrGrErHrPromptr rIr>Output) rNrKrblexercurcode insertionsrOlinemrGs rWrIz'RubyConsoleLexer.get_tokens_unprocesseds1+dll+ %%d+ :E;;=D%%d+A}eeg!!3w<%&Tc $C#D#FG4:%,"G$B$B7$K MMM G!#JkkmW^^T99 : $G::7CE E E  M  Es%C D$ D  A D$D"D$"D$N)r1r2r3r4rr6r8r5r9_exampler:compilerYrIrSrrWrrsJ DG+,I %CMH)*JErrc eZdZdZdZdZddgZddgZdgZd Z d e jd fd e jd fd e jd fde jd fde jd fde jd fde jd fde jd fde jd fde jd fg de fde jdfde jdfde jdfde jdfde jfde jdfde jfde jfde fd e fd!efd"ej$fd#efed$d%&ej*fd'ej,fd(efd)ej$fd*ej0j2fd+ej0j4fd,efd-efd.eej:e efd/eej<e efd0eej>e efd1eej@e efd2ejBfd3ej@fgd4Z"y5)6rz 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 *.fancypackfancyfyztext/x-fancysrcz1.5z"/(\\\\|\\[^\\]|[^/\\])*/[egimosx]*rqz"!(\\\\|\\[^\\]|[^!\\])*![egimosx]*z\\(\\\\|[^\\])*\\[egimosx]*z$\{(\\\\|\\[^\\]|[^}\\])*\}[egimosx]*z"<(\\\\|\\[^\\]|[^>\\])*>[egimosx]*z%\[(\\\\|\\[^\\]|[^\]\\])*\][egimosx]*z$\((\\\\|\\[^\\]|[^)\\])*\)[egimosx]*z"@(\\\\|\\[^\\]|[^@\\])*@[egimosx]*z"%(\\\\|\\[^\\]|[^%\\])*%[egimosx]*z$\$(\\\\|\\[^\\]|[^$\\])*\$[egimosx]*r+zs\{(\\\\|\\[^\\]|[^}\\])*\}\s*balanced-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[(){};,/?|:\\])ObjectrHash DirectoryFilerIrr EnumerableFancyEnumerableBlock TrueClassNilClass FalseClassTupler|StackSet FancySpecMethodPackageRangerrz[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+)rgr-N)#r1r2r3r4rr5r7r6r8r9rr\rrrr|rrrMrr rCrNrrHrJrIrrrErFrGrrrQrSrrWrrsw D -C'IoG"#IM 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 ,fllN O 6 E #V\\3C D'.. ) )6== 9 ,f 5 (& 1& (.t}} =  , ;DI J \\  -dmm < ' 2 $-- ( t}}55 6  3 3 4 H  d #7 fjj*h 7 9 A fjj*h 7 9 3 fjj*h 7 9 , fnnj( ; = ? N V^^ $i5 DFrr) r4r:pygments.lexerrrrrrrr r r r pygments.tokenr rrrrrrrrrr pygments.utilr__all__r}rrrrSrrWr}sq CCC4444) 9 m6"m6` $Eu$ENSSr