|eXdZddlZddlmZmZmZmZmZmZm 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-2023 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===c4eZdZdZdZdZgdZgdZddgZe je jzZ dZ d Zgd ej fd ej"fd ej$fed defdeeeej0fdeeedfdedfdeeedfeddej2fdej6feddej8fdej8fedddej8fdej8j2fde fd e fd!ej:d"fd#eeej@d$fd%ej@d$fd&eeej@d$fd'ee!jDeefd(ee!jFeefd)ee!jHeefd*ee!jJeefd+ejLjNfd,ejLjPfd-ejLjRfd.ejLjRfd/ejLjRfd0efe*d1d2ejVfd3ejXfee-d45eeej4fd6eeefd7efd8efd9efd:e.fd;efdeejNeej^d?fe0d?gd>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|z|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 ttjdfd/|fgz cc<|S)0Nc3K|jdtj|jdft |jdddg}|j |D]\}}}|jd|z||f!|jdtj|jdf|j |_yw)Nr4r6rinterpolated-regexr;r7)r=rRegexr>r rHrFrErMrNrOnctxitvs rVintp_regex_callbackz.intp_regex_callbackZs++a.&,, A> > A4H3IJD66t6D -1akk!nQ&1,, -++a.&,, A> >iikCGCCc3K|jdtj|jdft |jdddg}|j |D]\}}}|jd|z||f!|jdtj|jdf|j |_yw)Nr4r6rinterpolated-stringr;r7)r=rOtherr>r rHrFrEr\s rVintp_string_callbackz=RubyLexer.gen_rubystrings_rules..intp_string_callbackbs++a.&,, A> > A4I3JKD66t6D -1akk!nQ&1,, -++a.&,, A> >iikCGrbz\:@{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_OPERATORSrrDoubleSingleBacktickrrerDr[r) rarfstatesnamettyperFlbracerbracebraceccs rVgen_rubystrings_ruleszRubyLexer.gen_rubystrings_rulesYs " "*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% -.#U+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?doelseelsifrFensureforifinnextredorescueraiseretryreturnsuperthenundefunlessuntilwhenwhileyield\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 readlinesrequirescanselectrMsendset_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::rkzI\?(\\[MC]-)*(\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})|\S)(?!\w)z[A-Z]\w+z(\.|::)rgz,(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])z[a-zA-Z_]\w*[!?]?z:(\[|\]|\*\*|<>?|>=|<=|<=>|=~|={3}|!~|&&?|\|\||\.{1,3})z[-+/*%=<>&!^|~]=?z [(){};,/?:\\]\s+rudefexprz(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z\u0080-\uffff][a-zA-Z0-9_\u0080-\uffff]*[!?=]?|!=|!~|=~|\*\*?|[-+!~]@?|[/%&|^]|<=>|<[<=]?|>[>=]?|===?|\[\]=?|`)rpr'z [A-Z_]\w*z (\))(\.|::)?ryrootrqrrz#\{in-intpz#@@?[a-zA-Z_]\w*z#\$[a-zA-Z_]\w*rzz2\\([\\abefnrstv#"\']|x[a-fA-F0-9]{1,2}|[0-7]{1,3})roz[^\\#]+z\\\\z\\/z[^\\/#]+z /[mixounse]*z.+) r,rrr+r-rzrnrZrdr&r%ct|dS)Nz ruby(1\.\d)?r)rJs rV analyse_textzRubyLexer.analyse_textst_55rN)7__name__ __module__ __qualname____doc__rurlaliases filenames mimetypesreDOTALL MULTILINEflagsrWrrHashbangr~ Multiliner rrrr NamespacePseudorWordBuiltinPreprocr rr[rOctHexBinrVariableClassInstanceGlobalrCharConstantr|rFunctionrInterpolEscaperetokensupdater/rrVrrsf D $C$G>I 45I 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')*6rrcPeZdZdZdZddgZdgZdZejdZ dZ y ) rz8 For Ruby interactive console (**irb**) output. zRuby irb sessionrbconirbztext/x-ruby-shellsessionz 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)NrrQ)roptionsr rIr> _prompt_rerNrFrDrGrPromptr rHr=Output) rMrJrblexercurcode insertionsrNlinemrFs rVrHz'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) r0r1r2r3rr5r7_exampler8compilerXrHrQrrVrrs@ DG+,IH)*JErrc eZdZdZdZdZddgZddgZdgZd e jd fd e jd fd e jd fd e jd fde jd fde jd fde jd fde jd fde jd fde jd fg de fde jdfde jdfde jdfde jdfde jfde jdfde jfde jfde fde fd efd!ej"fd"efed#d$%ej(fd&ej*fd'efd(ej"fd)ej.j0fd*ej.j2fd+efd,efd-eej8e efd.eej:e efd/eej<e efd0eej>e efd1ej@fd2ej>fgd3Z!y4)5rz 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 *.fancypackfancyfyztext/x-fancysrcz"/(\\\\|\\[^\\]|[^/\\])*/[egimosx]*rpz"!(\\\\|\\[^\\]|[^!\\])*![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 DirectoryFilerGrr 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+)rfr,N)"r0r1r2r3rr4r6r5r7rr[rrr~r{rrrKrr rArLrrFrHrGrrrCrDrErrrOrQrrVrrsr D -C'IoG"#I 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) r3r8pygments.lexerrrrrrrr r r r pygments.tokenr rrrrrrrrrr pygments.utilr__all__r|rrrrQrrVr|sq CCC4444) 9 l6"l6^ "Eu"EJTTr