Ë *ýZ™&ÿùãó€—dZddlZddlmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZdgZgd¢ZGd„de«Zy)zÅ pygments.lexers.crystal ~~~~~~~~~~~~~~~~~~~~~~~ Lexer for Crystal. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. éN)ÚExtendedRegexLexerÚincludeÚbygroupsÚdefaultÚwordsÚline_re) ÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚ PunctuationÚErrorÚ WhitespaceÚ CrystalLexer)z!=z!~Ú!Ú%z&&Ú&z**Ú*Ú+Ú-Ú/z<=>z<=z>>Ú>z[]=z[]?z[]Ú^z||Ú|Ú~có< —eZdZdZdZdZddgZdgZdgZe je jzZ d„Z d „Zgd ej f‘ed j%«d ¬ «ef‘edj%«dd ¬«ej(f‘dej(f‘egd¢d ¬ «ej*f‘deeeej2«f‘deeeej2«df‘dedf‘deeeej2«df‘edj%«dd ¬«ej(f‘dej4j(f‘edj%«dd ¬«ej4f‘dej4j(f‘de f‘de f‘dej6d f‘d!eeej:«d"f‘d#ej:d"f‘d$eeej:«d"f‘d%eej>ee «f‘d&eejBee «f‘d'eejDee «f‘d(eejFee «f‘d)eejFee «f‘d*eejFee «f‘d+eejHee «f‘d,ejJjLf‘d-ejJjNf‘d.ejJjPf‘d/ejJjPf‘d0ejJjPf‘d1e f‘e)d2«‘d3ejTf‘d4ej*f‘d5ejVd6f‘d7ejVd8f‘d9ee eejX«d:f‘ee-d;¬<«ee ej@«f‘d=ee e«f‘d>ef‘d?e f‘d@e f‘dAe.f‘dBef‘dCeejLe ej^«dDfe0dD«gdEejLfdFee.eejLee.«fe0dD«gdGejVdHfdIejVdDfe)dJ«gdKejVdLfgdMejbfge)dN«e)dO«ge)dN«dPej:fdQej:fge)dN«dPejdfdQejdfge)dN«dRej:fdSej:fdPej:fdTej:fdUej:dDfgdVej6dDfgd5ejVdHfdWejVdDfdXefe)dJ«gd7ejVdHfdYejVdDfe)dJ«gdZe dHfd[e dDfe)dJ«gd\œZ3e3jie««y])^rz= For Crystal source code. .. versionadded:: 2.2 ÚCrystalzhttps://crystal-lang.orgÚcrÚcrystalz*.crztext/x-crystalc#óHK—|jd«}|t|jd«f–—|jd«tj|jd«f–—|jd«tj |jd«f–—|jd«tj|jd«f–—|j jdg«}t|« }|j|jd«dk(|jd«f«|jd«|_ |jd«|_ t|«dkr|j|¬ «Ed{–—†n.|jtj|jd«f–—|j«|_ |�r`|D�]:\}}g}tj|j |j«D]×}|r|j«j#«} n|j«j%«} | |k(r€|D]3} | j«tj| j«f–—Œ5|j«tj |j«f–—|j«|_ Œú|j|«ŒÙ|D])} | j«t&| j«f–—Œ+�Œ=t|j «|_ |dd…=yy7�Œ­­w) NééééÚ heredocstackz<<-éé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 úÒ>Ø�k‰k˜!‹nœfŸn™n¨e¯k©k¸!«nÐ<Ò<à—|‘|×.Ñ.¨~¸rÓBˆ ܘ\Ó*Ð*ˆ Ø×јUŸ[™[¨›^¨uÑ4°e·k±kÀ!³nÐEÔFà—+‘+˜a“.ˆŒØ—)‘)˜A“,ˆŒä ˆ|Ó ˜sÒ "Ø×2Ñ2¸3Ð2Ó?× ?Ñ ?à—'‘'œ6Ÿ>™>¨5¯;©;°q«>Ð9Ò 9Ø—)‘)“+ˆŒâ ä$0Ñ �˜&Ø�Ü$×-Ñ-¨c¯h©h¸¿¹Ö@�EÙØ %§ ¡ £ × 3Ñ 3Ó 5™à %§ ¡ £ × 4Ñ 4Ó 6˜Ø ’Û&+˜FØ"(§,¡,£.´&·.±.À&Ç,Á,Ã.Ð"PÓPð',à#Ÿk™k›m¬V×-=Ñ-=¸u¿{¹{»}ÐLÒLØ"'§)¡)£+˜œÙàŸ ™  UÕ+ðAó#(˜Ø$Ÿl™l›n¬e°V·\±\³^ÐCÓCò#(ð#%1ô&˜#Ÿ(™(“mˆCŒGØšQ‘ð- ð @ûs‚E0L"Å2LÅ3F-L"c óf—i}dtjfttd¬«tjfdtjfdtjfdtjdfdt tjt «fd tjd fd tjd fg|d <dtjd fdtjd fdtjdffD],\}}}t|dk(rdnd«d|z|fd|f||dfg|d|z<Œ.dD�]\}}}}d|ztjfg||k7|tjdfgzz|tjdftd«d|zdztjfd|zdztjfgz||dz<|d jd |ztj|dzf«d!|zdztjfg||k7|tjdfgzz|tjdfd|zdztjfd|zdztjfgz||d"z<|d jd#|ztj|d"zf«d!|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 ÚSymbolrÚCRYSTAL_OPERATORSÚCharrrÚDoubleÚBacktickrÚOtherr4ÚRegex)ÚstatesÚnameÚttyper6ÚlbraceÚrbraceÚbraceccs rFÚgen_crystalstrings_rulesz%CrystalLexer.gen_crystalstrings_rulesYs€€Øˆà œFŸM™MÐ *Ü Ô$¨UÔ 3´V·]±]Ð CØ )¬6¯=©=Ð 9à +¬V¯[©[Ð 9Ø ”F—M‘M <Ð 0à &¬´·±Ä Ó(LÐ MØ ”6—=‘= /Ð 2Ø œ&Ÿ/™/Ð+<Ð =ð  ˆˆyÑð"*¬6¯=©=¸#Ð >Ø!&¬¯ © °sÐ ;Ø!+¬V¯_©_¸cÐ Bó!CÑ ˆD�%˜ô¨D°EªMÑ(Ð?TÓUØ Ñ# UÐ+ؘ5Ð!Ø�e˜VÐ$ð &ˆF�9˜T‘>Ò "ð!Cô,ñ *ˆF�F˜G T𘑤§¡Ð.ð+à˜6Ñ!ØœŸ™ wÐ/ð&ññ+𠜟™ vÐ.ÜÐ-Ó.ؘ7Ñ" SÑ(¬&¯,©,Ð7ؘGÑ# dÑ*¬F¯L©LÐ9ð ñ +ˆF�4˜Ñ&Ñ 'ð �9Ñ × $Ñ $ f¨v¡o´v·|±|Ø&*¨>Ñ&9ð&;ô <ð˜GÑ# cÑ)¬6¯<©<Ð8ð&à˜6Ñ!ØœŸ™ wÐ/ð&ññ&𠜟™ vÐ.ؘ7Ñ" SÑ(¬&¯,©,Ð7ؘGÑ# dÑ*¬F¯L©LÐ9ðñ &ˆF�4˜ ‘>Ñ "ð �9Ñ × $Ñ $ i°&Ñ&8¼&¿,¹,Ø&*¨9¡nð&6ô 7ð˜GÑ# cÑ)¬6¯<©<Ð8ð%à˜6Ñ!ØœŸ™ wÐ/ð&ññ%ð ˜)Ñ#¤V§\¡\°6Ð:ܘ Ó&ؘ7Ñ" SÑ(¬&¯,©,Ð7ؘGÑ# dÑ*¬F¯L©LÐ9ð ñ %ˆF�4˜‘=Ñ !ð �9Ñ × $Ñ $ e¨f¡n´f·l±lØ&*¨8¡mð&5ö 6ðO,ðTˆ ó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_rVÚrootz#\{ú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__rjÚurlÚaliasesÚ filenamesÚ mimetypesÚreÚDOTALLÚ MULTILINEÚflagsrGror ÚSinglerÚsplitr ÚPseudoÚConstantrrr Ú NamespaceÚBuiltinÚPreprocr rhrÚOctr ÚHexÚBinÚFloatÚIntegerÚVariableÚClassÚInstanceÚGlobalrrdÚInterpolÚ DecoratorrcrÚFunctionrÚEscapergÚtokensÚupdate©rprFrrs‘„ñð €DØ $€CØ�YЀGØ�€IØ!Ð"€Ià �I‰I˜Ÿ ™ Ñ $€Eò- ò^FðRF Ø �w—~‘~Ð &ðF ñð÷‘“ ô 'ð)0ð  1ðF ñð÷‘“  °5ô:ð¹>ð KðF ð9¸'¿.¹.Ð IðF ñÒ+°EÔ :¸Gש>Ó :ð <ð!F ð$:Ù �g˜z¨4¯>©>Ó :¸Jð Hð%F ð((¨°*Ð =ð)F ð*ZÙ �g˜z¨4¯>©>Ó :¸Kð Ið+F ñ0ðç‘“  °5ô:à;B¿>¹>ð Kð1F ð8<¸T¿\¹\×=PÑ=PÐ Qð9F ñ<ð÷‘“  °5ô:ð<@¿<¹<ð Ið=F ðFYà �\‰\× Ñ ð "ðGF ðN@Ø ð ðOF ðT*Ð+;Ð <ðUF ðV˜Ÿ™¨*Ð 5ðWF ðZñ.$ J°· ± Ó=Ð?Pð/ Rð[F ðL˜vŸ|™|Ð->Ð ?ðMF ðP"¡8¨J¸¿ ¹ Ó#EØ ð ðQF ðdFÙ �f—j‘j *¨hÓ 7ð 9ðeF ðhRÙ �f—j‘j *¨hÓ 7ð 9ðiF ðlDÙ �f—j‘j *¨hÓ 7ð 9ðmF ðt,á �f—l‘l J°Ó 9ð ;ðuF ðz,á �f—l‘l J°Ó 9ð ;ð{F ð@+á �f—l‘l J°Ó 9ð ;ðAF ðFIÙ �f—n‘n j°(Ó ;ð =ðGF ðL § ¡ × 3Ñ 3Ð 4ðMF ðN˜tŸ}™}×5Ñ5Ð 6ðOF ðP�t—}‘}×+Ñ+Ð ,ðQF ðR.¨t¯}©}×/CÑ/CÐ DðSF ðT  §¡×!5Ñ!5Ð 6ðUF ðV�HÐ ðWF ñX �IÓ ðYF ð\ð�[‰[ð ð]F ðd(¨¯©Ð 7ðeF ðh�V—_‘_Ð&8Ð 9ðiF ðj�f—o‘o Ð 7ðkF ðn2Ù �h  ¨D¯N©NÓ ;¸Zð IðoF ñvÐ$¨ZÔ 8Ù �h § ¡ Ó .ð 0ðwF ðz=Ù �h Ó %ð 'ð{F ð@+¨DÐ 1ðAF ðB%Ø&.ð 0ðCF ðF" 8Ð ,ðGF ðH˜{Ð +ðIF ðJ�ZÐ ðKF ðP6ñ�d—j‘j (¨D¯M©MÓ :¸Fð Dñ �F‹Oð  ð˜4Ÿ:™:Ð &Ø -Ù �k :¨t¯z©z¸:À{Ó Sð Uá �F‹Oð  ð�F—O‘O WÐ -Ø �F—O‘O VÐ ,Ù �F‹Oð ð �V—_‘_ iÐ 0ð ð cØ �]‰]ð ð ñ �MÓ "Ù Ð$Ó %ð ñ �MÓ "Ø �v—|‘|Ð $Ø ˜Ÿ™Ð &ð ñ �MÓ "Ø �v—|‘|Ð $Ø ˜Ÿ™Ð &ð ñ �MÓ "Ø �f—l‘lÐ #Ø �V—\‘\Ð "Ø �v—|‘|Ð $Ø ˜&Ÿ,™,Ð 'Ø ˜&Ÿ,™,¨Ð /ð  ð�G—O‘O VÐ ,ð ð�V—_‘_ gÐ .Ø �V—_‘_ fÐ -Ø  'Ð *Ù �F‹Oð  ð�f—o‘o wÐ /Ø �f—o‘o vÐ .Ù �F‹Oð ð �H˜gÐ &Ø �H˜fÐ %Ù �F‹Oð ñMK€FðX ‡M�MÑ*Ó,Õ-rp)r‚r‡Úpygments.lexerrrrrrrÚpygments.tokenr r r r r rrrrÚ__all__rcrr¡rprFÚr¥sIðñó ÷÷÷#÷#õ#ð Ð €òÐô R.Ð%õR.rp