|e=dZddlZddlmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZdgZgdZGddeZy)z pygments.lexers.crystal ~~~~~~~~~~~~~~~~~~~~~~~ Lexer for Crystal. :copyright: Copyright 2006-2023 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< eZdZdZdZdZddgZdgZdgZe je jzZ dZ d Zgd ej fed j%d efedj%dd ej(fdej(fegdd ej*fdeeeej2fdeeeej2dfdedfdeeeej2dfedj%dd ej(fdej4j(fedj%dd ej4fdej4j(fde fde fdej6d fd!eeej:d"fd#ej:d"fd$eeej:d"fd%eej>ee fd&eejBee fd'eejDee fd(eejFee fd)eejFee fd*eejFee fd+eejHee fd,ejJjLfd-ejJjNfd.ejJjPfd/ejJjPfd0ejJjPfd1e fe)d2d3ejTfd4ej*fd5ejVd6fd7ejVd8fd9ee eejXd:fee-d;<ee ej@fd=ee efd>efd?e fd@e fdAe.fdBefdCeejLe ej^dDfe0dDgdEejLfdFee.eejLee.fe0dDgdGejVdHfdIejVdDfe)dJgdKejVdLfgdMejbfge)dNe)dOge)dNdPej:fdQej:fge)dNdPejdfdQejdfge)dNdRej:fdSej:fdPej:fdTej:fdUej:dDfgdVej6dDfgd5ejVdHfdWejVdDfdXefe)dJgd7ejVdHfdYejVdDfe)dJgdZe dHfd[e dDfe)dJgd\Z3e3jiey])^rz= For Crystal source code. .. versionadded:: 2.2 Crystalzhttps://crystal-lang.orgcrcrystalz*.crztext/x-crystalc#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 9/usr/lib/python3/dist-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 fi}dtjfttdtjfdtjfdtjfdtjdfdt tjt fd tjd fd tjd fg|d <dtjd fdtjd fdtjdffD],\}}}t|dk(rdndd|z|fd|f||dfg|d|z<.dD]\}}}}d|ztjfg||k7|tjdfgzz|tjdftdd|zdztjfd|zdztjfgz||dz<|d jd |ztj|dzfd!|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_rulesYs FMM * $U 3V]] C )6== 9 +V[[ 9 FMM< 0 & (L M 6==/ 2 &//+< =  y"*6==# >!& s ;!+V__c B!C  D%DEM(?TU#U+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)5__name__ __module__ __qualname____doc__rjurlaliases filenames mimetypesreDOTALL MULTILINEflagsrGror Singlersplitr PseudoConstantrrr NamespaceBuiltinPreprocr rhrOctr HexBinFloatIntegerVariableClassInstanceGlobalrrdInterpol DecoratorrcrFunctionrEscapergtokensupdaterprFrrs D $CYGI!"I 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 ###   R.%R.rp