K i=dZddlZddlmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZdgZgdZGddeZy)z pygments.lexers.crystal ~~~~~~~~~~~~~~~~~~~~~~~ Lexer for Crystal. :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N)ExtendedRegexLexerincludebygroupsdefaultwordsline_re) CommentOperatorKeywordNameStringNumber PunctuationError Whitespace CrystalLexer)z!=z!~!%z&&&z***+-/z<=>z<=z>>>z[]=z[]?z[]^z|||~c@ eZdZdZdZdZddgZdgZdgZdZ e je jzZ d Zd Zgd ej"fed j'd efedj'dd ej*fdej*fegdd ej,fdeeeej4fdeeeej4dfdedfdeeeej4dfedj'dd ej*fdej6j*fedj'dd ej6fdej6j*fdefdefd ej8d!fd"eeej<d#fd$ej<d#fd%eeej<d#fd&eej@ee!fd'eejDee!fd(eejFee!fd)eejHee!fd*eejHee!fd+eejHee!fd,eejJee!fd-ejLjNfd.ejLjPfd/ejLjRfd0ejLjRfd1ejLjRfd2e!fe*d3d4ejVfd5ej,fd6ejXd7fd8ejXd9fd:ee!eejZd;fee.d<=ee!ejBfd>ee!efd?efd@e!fdAe!fdBe/fdCefdDeejNe!ej`dEfe1dEgdFejNfdGee/eejNee/fe1dEgdHejXdIfdJejXdEfe*dKgdLejXdMfgdNejdfge*dOe*dPge*dOdQej<fdRej<fge*dOdQejffdRejffge*dOdSej<fdTej<fdQej<fdUej<fdVej<dEfgdWej8dEfgd6ejXdIfdXejXdEfdYefe*dKgd8ejXdIfdZejXdEfe*dKgd[e!dIfd\e!dEfe*dKgd]Z4e4jkey^)_rz" For Crystal source code. Crystalzhttps://crystal-lang.orgcrcrystalz*.crztext/x-crystalz2.2c#HK|jd}|t|jdf|jdtj|jdf|jdtj |jdf|jdtj|jdf|j jdg}t| }|j|jddk(|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 heredocstackz<<-d)context)startr groupr Heredoc Delimiter__dict__ setdefaultboolappendposendlenget_tokens_unprocessedrfinditertextstriprstripr) selfmatchctxr-r) outermosttoleranthdnamelinescheckamatchs ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pygments/lexers/crystal.pyheredoc_callbackzCrystalLexer.heredoc_callback)st AXu{{1~--kk!nfnnekk!n<<kk!nf.. A>>kk!nfnnekk!n<<||..~rB \** U[[^u4ekk!nEF++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-  @sE0L"2L3F-L"c hi}dtjfttdtjfdtjfdtjfdtjdfdt tjt fd tjd fd tjd fg|d <dtjd fdtjd fdtjdffD]-\}}}t|dk(rdndd|d|fd|f||dfg|d|z</dD]\}}}}d|ztjfg||k7|tjdfgzz|tjdftdd|zdztjfd|zdztjfgz||d z<|d jd!|ztj|d zfd"|zdztjfg||k7|tjdfgzz|tjdfd|zdztjfd|zdztjfgz||d#z<|d jd$|ztj|d#zfd"|zdztjfg||k7|tjdfgzz|d%ztjdftd&d|zdztjfd|zdztjfgz||d'z<|d jd(|ztj|d'zf|S))Nz \:\w+[!?]?z\:prefixz:'(\\\\|\\[^\\]|[^'\\])*'z'(\\\\|\\'|[^']|\\[^'\\]+)'z:"z simple-symz([a-zA-Z_]\w*)(:)(?!:)"z simple-stringz(?ab)\|r]r]piz\\#pushz[\\#]z[^\\#z]+z -intp-stringz%Q?z\\[\\z-stringz%[qwi]z[imsx]* string-intpz-regexz%r) r SymbolrCRYSTAL_OPERATORSCharrrDoubleBacktickrOtherr4Regex)statesnamettyper6lbracerbracebraceccs rFgen_crystalstrings_rulesz%CrystalLexer.gen_crystalstrings_rulesXs FMM * $U 3V]] C )6== 9 +V[[ 9 FMM< 0 & (L M 6==/ 2 &//+< =  y"*6==# >!& s ;!+V__c B!C  D%DEM(?TUS!5)5!eV$ &F9T> " ,) 6 )FFGT.+6!w/&+ v.-.7"S(&,,7G#d*FLL9  +F4& ' 9  $ $fvov||&*>&9&; <G#c)6<<8&6!w/&& v.7"S(&,,7G#d*FLL9 &F4 > " 9  $ $i&&8&,,&*9n&6 7G#c)6<<8%6!w/&% )#V\\6: &7"S(&,,7G#d*FLL9  %F4= ! 9  $ $efnfll&*8m&5 6Q) 6V z#.*?$z abstract asm begin break case do else elsif end ensure extend if in include next of private protected require rescue return select self super then unless until when while with yield z\b)suffixzz previous_def forall out uninitialized __DIR__ __FILE__ __LINE__ __END_LINE__ z(?=])zI(annotation|class|struct|union|type|alias|enum)(\s+)((?:[a-zA-Z_]\w*::)*) classnamezN instance_sizeof offsetof pointerof sizeof typeof z+(?~!:])|(?<=(?:\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=])z5(0o[0-7]+(?:_[0-7]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?zA(0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?z3(0b[01]+(?:_[01]+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?zU((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)(?:e[+-]?[0-9]+)?(?:_?f[0-9]+)?)(\s*)([/?])?zU((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)(?:_?f[0-9]+)?)(\s*)([/?])?zU((?:0(?![0-9])|[1-9][\d_]*)(?:\.\d[\d_]*)?(?:e[+-]?[0-9]+)?(?:_?f[0-9]+))(\s*)([/?])?z8(0\b|[1-9][\d]*(?:_\d+)*(?:_?[iu][0-9]+)?)\b(\s*)([/?])?z@@[a-zA-Z_]\w*z @[a-zA-Z_]\w*z\$\w+z\$[!@&`\'+~=/\\,;.<>_*$?:"^-]z\$-[0adFiIlpvw]z::rLzi\?(\\[MC]-)*(\\([\\abefnrtv#"\']|[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\{[a-fA-F0-9 ]+\})|\S)(?!\w)z[A-Z][A-Z_]+\b(?!::|\.)z\{%in-macro-controlz\{\{ in-macro-exprz!(@\[)(\s*)([A-Z]\w*(::[A-Z]\w*)*)in-annotz(\.|::)rIz,(\.|::)([a-zA-Z_]\w*[!?]?|[*%&^`~+\-/\[<>=])z[a-zA-Z_]\w*(?:[!?](?!=))?z:(\[|\]\??|\*\*|<=>?|>=|<>?|=~|===|!~|&&?|\|\||\.{1,3})z[-+/*%=<>&!^|~]=?z [(){};,/?:\\]z\s+z\(?:([a-zA-Z_]\w*)(\.))?([a-zA-Z_]\w*[!?]?|\*\*?|[-+]@?|[/%&|^`~]|\[\]=?|<<|>>|<=?>|>=?|===?)rTz [A-Z_]\w*z(\()(\s*)([A-Z_]\w*)(\s*)(\))rUr_rVrootz#\{in-intpzR\\([\\abefnrtv#"\']|[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\{[a-fA-F0-9 ]+\})rarQrSz[^\\#]+z\\\\z\\/z[^\\/#]+z/[imsx]*z.+z%\}z(for|verbatim)\bz\}\}rXrY)r}rurvr~rarQrRzinterpolated-regexzinterpolated-stringryrxrzr{r|N)6__name__ __module__ __qualname____doc__rjurlaliases filenames mimetypes version_addedreDOTALL MULTILINEflagsrGror Singlersplitr PseudoConstantrrr NamespaceBuiltinPreprocr rhrOctr HexBinFloatIntegerVariableClassInstanceGlobalrrdInterpol DecoratorrcrFunctionrEscapergtokensupdaterprFrrs D $CYGI!"IM II $E- ^FRF w~~ &F  ')0  1F  5:> KF 9'.. IF +E :G> : > :J H%F ((* =)F *Z gz4>> :K I+F 0 5:;B>> K1F 8 ?MF P"8J #E  QF dF fjj*h 7 9eF hR fjj*h 7 9iF lD fjj*h 7 9mF t, fllJ 9 ;uF z, fllJ 9 ;{F @+ fllJ 9 ;AF FI fnnj( ; =GF L 3 3 4MF Nt}}55 6OF Pt}}++ ,QF R.t}}/C/C DSF T !5!5 6UF VH WF X I YF \[[ ]F d( 7eF hV__&8 9iF jfoo 7kF n2 h DNN ;Z IoF v$Z 8 h . 0wF z= h % '{F @+D 1AF B%&. 0CF F"8 ,GF H{ +IF JZ KF P6djj(DMM :F D FO  4:: & - k:tzz:{ S U FO  FOOW - FOOV , FO V__i 0 c ]]  M " $ % M " v|| $  & M " v|| $  & M " fll # V\\ " v|| $ &,, ' &,, /  GOOV , V__g . V__f - ' * FO  foow / foov . FO Hg & Hf % FO MKFX MM*,-rp)rrpygments.lexerrrrrrrpygments.tokenr r r r r rrrr__all__rcrrrprFrsI ###   Q.%Q.rp