§
    ‹Ÿj�=  ã                   óˆ   — d Z ddlZddlmZmZmZmZmZmZ ddl	m
Z
mZmZmZmZmZmZmZmZ dgZg d¢Z G d„ de¦  «        ZdS )zÈ
    pygments.lexers.crystal
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexer for Crystal.

    :copyright: Copyright 2006-present 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>=z>>ú>z[]=z[]?z[]ú^z||ú|ú~c                   óÂ  — e Zd ZdZdZdZddgZdgZdgZdZ	e
j        e
j        z  Zd	„ Zd
„ Zg dej        f‘ ed                     ¦   «         d¬¦  «        ef‘ ed                     ¦   «         dd¬¦  «        ej        f‘dej        f‘ eg d¢d¬¦  «        ej        f‘d eeeej        ¦  «        f‘d eeeej        ¦  «        df‘dedf‘d eeeej        ¦  «        df‘ ed                     ¦   «         dd¬¦  «        ej        f‘dej        j        f‘ ed                     ¦   «         dd¬¦  «        ej        f‘dej        j        f‘def‘def‘d ej        d!f‘d" eeej        ¦  «        d#f‘d$ej        d#f‘d% eeej        ¦  «        d#f‘d& eej         ee!¦  «        f‘d' eej"        ee!¦  «        f‘d( eej#        ee!¦  «        f‘d) eej$        ee!¦  «        f‘d* eej$        ee!¦  «        f‘d+ eej$        ee!¦  «        f‘d, eej%        ee!¦  «        f‘d-ej&        j'        f‘d.ej&        j(        f‘d/ej&        j)        f‘d0ej&        j)        f‘d1ej&        j)        f‘d2e!f‘ e*d3¦  «        ‘d4ej+        f‘d5ej        f‘d6ej,        d7f‘d8ej,        d9f‘d: ee!eej-        ¦  «        d;f‘ ee.d<¬=¦  «         ee!ej!        ¦  «        f‘d> ee!e¦  «        f‘d?ef‘d@e!f‘dAe!f‘dBe/f‘dCef‘dD eej'        e!ej0        ¦  «        dEf e1dE¦  «        gdFej'        fdG ee/eej'        ee/¦  «        f e1dE¦  «        gdHej,        dIfdJej,        dEf e*dK¦  «        gdLej,        dMfgdNej2        fg e*dO¦  «         e*dP¦  «        g e*dO¦  «        dQej        fdRej        fg e*dO¦  «        dQej3        fdRej3        fg e*dO¦  «        dSej        fdTej        fdQej        fdUej        fdVej        dEfgdWej        dEfgd6ej,        dIfdXej,        dEfdYef e*dK¦  «        gd8ej,        dIfdZej,        dEf e*dK¦  «        gd[e!dIfd\e!dEf e*dK¦  «        gd]œZ4e4 5                     e¦   «         ¦  «         d^S )_r   z"
    For Crystal source code.
    ÚCrystalzhttps://crystal-lang.orgÚcrÚcrystalz*.crztext/x-crystalz2.2c              #   óÔ  K  — |                      d¦  «        }|t          |                     d¦  «        fV — |                      d¦  «        t          j        |                     d¦  «        fV — |                      d¦  «        t          j        |                     d¦  «        fV — |                      d¦  «        t          j        |                     d¦  «        fV — |j                             dg ¦  «        }t          |¦  «         }| 	                    |                     d¦  «        dk    |                     d¦  «        f¦  «         |                      d¦  «        |_
        |                     d¦  «        |_        t          |¦  «        dk     r|                      |¬	¦  «        E d {V —† n)|j
        t          j        |                     d¦  «        fV — |                     ¦   «         |_
        |�rw|D �]S\  }}g }t          j        |j        |j
        ¦  «        D ]ö}|r'|                     ¦   «                              ¦   «         }	n&|                     ¦   «                              ¦   «         }	|	|k    rŠ|D ]7}
|
                      ¦   «         t          j        |
                     ¦   «         fV — Œ8|                      ¦   «         t          j        |                     ¦   «         fV — |                     ¦   «         |_
         nK| 	                    |¦  «         Œ÷|D ]2}
|
                      ¦   «         t&          |
                     ¦   «         fV — Œ3�ŒUt          |j        ¦  «        |_        |d d …= d S d S )
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              úd/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/pygments/lexers/crystal.pyÚheredoc_callbackzCrystalLexer.heredoc_callback)   s  è è € ð —’˜A‘”ˆØ•X˜uŸ{š{¨1™~œ~Ð-Ð-Ð-Ð-Ø�kŠk˜!‰nŒn�fœn¨e¯kªk¸!©n¬nÐ<Ð<Ð<Ð<Ø�kŠk˜!‰nŒn�fÔ.°·²¸A±´Ð>Ð>Ð>Ð>Ø�kŠk˜!‰nŒn�fœn¨e¯kªk¸!©n¬nÐ<Ð<Ð<Ð<à”|×.Ò.¨~¸rÑBÔBˆÝ˜\Ñ*Ô*Ð*ˆ	Ø×Ò˜UŸ[š[¨™^œ^¨uÒ4°e·k²kÀ!±n´nÐEÑFÔFÐFà—+’+˜a‘.”.ˆŒØ—)’)˜A‘,”,ˆŒåˆ|ÑÔ˜sÒ"Ð"Ø×2Ò2¸3Ð2Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?à”'�6œ>¨5¯;ª;°q©>¬>Ð9Ð9Ð9Ð9Ø—)’)‘+”+ˆŒàñ 	 à$0ð Dñ DÑ �˜&Ø�Ý$Ô-¨c¬h¸¼Ñ@Ô@ð Dð D�EØð 7Ø %§¢¡¤× 3Ò 3Ñ 5Ô 5˜˜à %§¢¡¤× 4Ò 4Ñ 6Ô 6˜Ø ’�Ø&+ð Qð Q˜FØ"(§,¢,¡.¤.µ&´.À&Ç,Â,Á.Ä.Ð"PÐPÐPÐPÐPØ#Ÿkšk™mœm­VÔ-=¸u¿{º{¹}¼}ÐLÐLÐLÐLØ"'§)¢)¡+¤+˜œØ˜àŸš UÑ+Ô+Ð+Ð+ð #(ð Dð D˜Ø$Ÿlšl™nœn­e°V·\²\±^´^ÐCÐCÐCÐCÐCùÝ˜#œ(‘m”mˆCŒGØ˜Q˜Q˜Q���ð-	 ð 	 ó    c            
      óÖ  — i } dt           j        ft          t          d¬¦  «        t           j        fdt           j        fdt           j        fdt           j        dfdt          t           j        t          ¦  «        fd	t           j        d
fdt           j        dfg| d<   dt           j        d	fdt           j        d	fdt           j        dffD ]2\  }}}t          |dk    rdnd¦  «        d|› d�|fd|f||dfg| d|z   <   Œ3dD �]ì\  }}}}d|z   t           j
        fg||k    |t           j
        dfgz  z   |t           j
        dft          d¦  «        d|z   dz   t           j
        fd|z   dz   t           j
        fgz   | |d z   <   | d                              d!|z   t           j
        |d z   f¦  «         d"|z   dz   t           j
        fg||k    |t           j
        dfgz  z   |t           j
        dfd|z   dz   t           j
        fd|z   dz   t           j
        fgz   | |d#z   <   | d                              d$|z   t           j
        |d#z   f¦  «         d"|z   dz   t           j        fg||k    |t           j        dfgz  z   |d%z   t           j        dft          d&¦  «        d|z   dz   t           j        fd|z   dz   t           j        fgz   | |d'z   <   | d                              d(|z   t           j        |d'z   f¦  «         �Œî| S ))Nz
\:\w+[!?]?z\:©Úprefixz:'(\\\\|\\[^\\]|[^'\\])*'z'(\\\\|\\'|[^']|\\[^'\\]+)'z:"z
simple-symz([a-zA-Z_]\w*)(:)(?!:)ú"zsimple-stringz(?<!\.)`zsimple-backtickÚstringsÚstringÚsymÚbacktickú`ústring-escapedústring-intp-escapedz[^\\z#]+ú[\\#]ú#popzsimple-))ú\{ú\}z{}Úcb)ú\[ú\]z\[\]Úsb)z\(z\)z()Úpa)r   r   z<>Ú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ÚCharr   r   ÚDoubleÚBacktickr   ÚOtherr4   ÚRegex)ÚstatesÚnameÚttyper6   ÚlbraceÚrbraceÚbraceccs          rF   Úgen_crystalstrings_rulesz%CrystalLexer.gen_crystalstrings_rulesX   sŽ  € Øˆà�FœMÐ*ÝÕ$¨UÐ3Ñ3Ô3µV´]ÐCØ)­6¬=Ð9à+­V¬[Ð9Ø•F”M <Ð0à&­µ´ÅÑ(LÔ(LÐMØ•6”= /Ð2Ø�&œ/Ð+<Ð=ð
ˆˆyÑð "*­6¬=¸#Ð >Ø!&­¬°sÐ ;Ø!+­V¬_¸cÐ Bð!Cð 	ð 	ÑˆD�%˜õ ¨D°EªM¨MÐ(Ð(Ð?TÑUÔUØ!˜Ð!Ð!Ð! 5Ð)Ø˜5Ð!Ø�e˜VÐ$ð	&ˆF�9˜T‘>Ñ"Ð"ð,ð)	6ñ )	6Ñ)ˆF�F˜G Tð ˜‘¥¤Ð.ð+à˜6Ò!Ø�œ wÐ/ð&ñ ñ+ð
 �œ vÐ.ÝÐ-Ñ.Ô.Ø˜7Ñ" SÑ(­&¬,Ð7Ø˜GÑ# dÑ*­F¬LÐ9ð	ñ		+ˆF�4˜Ñ&Ñ'ð �9Ô×$Ò$ f¨v¡oµv´|Ø&*¨>Ñ&9ð&;ñ <ô <ð <ð ˜GÑ# cÑ)­6¬<Ð8ð&à˜6Ò!Ø�œ wÐ/ð&ñ ñ&ð
 �œ vÐ.Ø˜7Ñ" SÑ(­&¬,Ð7Ø˜GÑ# dÑ*­F¬LÐ9ðñ	&ˆF�4˜	‘>Ñ"ð �9Ô×$Ò$ i°&Ñ&8½&¼,Ø&*¨9¡nð&6ñ 7ô 7ð 7ð ˜GÑ# cÑ)­6¬<Ð8ð%à˜6Ò!Ø�œ wÐ/ð&ñ ñ%ð
 ˜)Ñ#¥V¤\°6Ð:Ý˜Ñ&Ô&Ø˜7Ñ" SÑ(­&¬,Ð7Ø˜GÑ# dÑ*­F¬LÐ9ð	ñ		%ˆF�4˜‘=Ñ!ð �9Ô×$Ò$ e¨f¡nµf´lØ&*¨8¡mð&5ñ 6ô 6ð 6ñ 6ð ˆrH   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(?<!\.))rK   rq   z(\.(is_a\?|nil\?|responds_to\?|as\?|as\b))ÚtrueÚfalseÚnilz2(module|lib)(\s+)([a-zA-Z_]\w*(?:::[a-zA-Z_]\w*)*)z)(def|fun|macro)(\s+)((?:[a-zA-Z_]\w*::)*)Úfuncnamezdef(?=[*%&^`~+-/\[<>=])zI(annotation|class|struct|union|type|alias|enum)(\s+)((?:[a-zA-Z_]\w*::)*)Ú	classnamezN
                instance_sizeof offsetof pointerof sizeof typeof
            z+(?<!\.)(debugger\b|p!|pp!|record\b|spawn\b)z�
                abort at_exit caller exit gets loop main p pp print printf puts
                raise rand read_line sleep spawn sprintf system
            z(?<!\.)(((class_)?((getter|property)\b[!?]?|setter\b))|(def_(clone|equals|equals_and_hash|hash)|delegate|forward_missing_to)\b)z/(?<!\w)(<<-?)(["`\']?)([a-zA-Z_]\w*)(\2)(.*?\n)z(<<-?)("|\')()(\2)(.*?\n)Ú__END__úend-partab  (?:^|(?<=[=<>~!:])|(?<=(?:\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::rM   zi\?(\\[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(\.|::)rJ   z,(\.|::)([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*[!?]?|\*\*?|[-+]@?|[/%&|^`~]|\[\]=?|<<|>>|<=?>|>=?|===?)rU   z	[A-Z_]\w*z(\()(\s*)([A-Z_]\w*)(\s*)(\))rV   r`   rW   Ú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 ]+\})rb   rR   rT   z[^\\#]+z\\\\z\\/z[^\\/#]+z/[imsx]*z.+z%\}z(for|verbatim)\bz\}\}rY   rZ   )r}   ru   rv   r~   rb   rR   rS   zinterpolated-regexzinterpolated-stringry   rx   rz   r{   r|   N)6Ú__name__Ú
__module__Ú__qualname__Ú__doc__rk   ÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedÚreÚDOTALLÚ	MULTILINEÚflagsrG   rp   r	   ÚSingler   Úsplitr   ÚPseudoÚConstantr   r   r   Ú	NamespaceÚBuiltinÚPreprocr   ri   r   ÚOctr
   ÚHexÚBinÚFloatÚIntegerÚVariableÚClassÚInstanceÚGlobalr   re   ÚInterpolÚ	Decoratorrd   r   ÚFunctionr   ÚEscaperh   ÚtokensÚupdate© rH   rF   r   r      s"  € € € € € ðð ð €DØ
$€CØ�YÐ€GØ�€IØ!Ð"€IØ€MàŒI˜œÑ$€Eð- ð - ð - ð^Fð Fð FðRF
Ø�w”~Ð&ðF
ð ˆUð ÷ ’‘” ð	'ñ 'ô 'ð )0ð	1ðF
ð ˆUð ÷ ’‘” 
°5ð:ñ :ô :ð <C¼>ðKðF
ð 9¸'¼.ÐIðF
ð ˆUÐ+Ð+Ð+°EÐ:Ñ:Ô:¸GÔ<LÐMðF
ð  CØˆX�g˜z¨4¬>Ñ:Ô:ð<ð!F
ð$ :ØˆX�g˜z¨4¬>Ñ:Ô:¸JðHð%F
ð( (¨°*Ð=ð)F
ð* ZØˆX�g˜z¨4¬>Ñ:Ô:¸KðIð+F
ð0 ˆUð ç’‘” 
°5ð:ñ :ô :à;B¼>ðKð1F
ð8 <¸T¼\Ô=PÐQð9F
ð< ˆUð ÷ ’‘” 
°5ð:ñ :ô :ð <@¼<ðIð=F
ðFYàŒ\Ô ð"ðGF
ðN @ØððOF
ðT *Ð+;Ð<ðUF
ðV ˜œ¨*Ð5ðWF
ðZð. $˜8 J°´Ñ=Ô=Ð?Pð/Rð[F
ðL ˜vœ|Ð->Ð?ðMF
ðP " 8 8¨J¸¼Ñ#EÔ#EØð ðQF
ðd FØˆX�f”j *¨hÑ7Ô7ð9ðeF
ðh RØˆX�f”j *¨hÑ7Ô7ð9ðiF
ðl DØˆX�f”j *¨hÑ7Ô7ð9ðmF
ðt,àˆX�f”l J°Ñ9Ô9ð;ðuF
ðz,àˆX�f”l J°Ñ9Ô9ð;ð{F
ð@+àˆX�f”l J°Ñ9Ô9ð;ðAF
ðF IØˆX�f”n j°(Ñ;Ô;ð=ðGF
ðL  ¤Ô 3Ð4ðMF
ðN ˜tœ}Ô5Ð6ðOF
ðP �t”}Ô+Ð,ðQF
ðR .¨t¬}Ô/CÐDðSF
ðT   ¤Ô!5Ð6ðUF
ðV �HÐðWF
ðX ˆG�IÑÔðYF
ð\ð Œ[ðð]F
ðd (¨¬Ð7ðeF
ðh �V”_Ð&8Ð9ðiF
ðj �f”o Ð7ðkF
ðn 2ØˆX�h 
¨D¬NÑ;Ô;¸ZðIðoF
ðv ˆUÐ$¨ZÐ8Ñ8Ô8ØˆX�h ¤Ñ.Ô.ð0ðwF
ðz =ØˆX�h Ñ%Ô%ð'ð{F
ð@ +¨DÐ1ðAF
ðB%Ø&.ð0ðCF
ðF " 8Ð,ðGF
ðH ˜{Ð+ðIF
ðJ �ZÐ ðKF
ðP6ð ˆX�d”j (¨D¬MÑ:Ô:¸FðDð ˆG�F‰OŒOð
ð ˜4œ:Ð&Ø-ØˆX�k :¨t¬z¸:À{ÑSÔSðUàˆG�F‰OŒOð	
ð �F”O WÐ-Ø�F”O VÐ,ØˆG�F‰OŒOð
ð �V”_ iÐ0ð
ð
 cØŒ]ðð
ð ˆG�MÑ"Ô"ØˆGÐ$Ñ%Ô%ð 
ð
 ˆG�MÑ"Ô"Ø�v”|Ð$Ø˜œÐ&ð
ð ˆG�MÑ"Ô"Ø�v”|Ð$Ø˜œÐ&ð 
ð ˆG�MÑ"Ô"Ø�f”lÐ#Ø�V”\Ð"Ø�v”|Ð$Ø˜&œ,Ð'Ø˜&œ,¨Ð/ð
ð �G”O VÐ,ð
ð �V”_ gÐ.Ø�V”_ fÐ-Ø  'Ð*ØˆG�F‰OŒOð	
ð �f”o wÐ/Ø�f”o vÐ.ØˆG�F‰OŒOð
ð �H˜gÐ&Ø�H˜fÐ%ØˆG�F‰OŒOð
ðMKð K€FðX ‡M‚MÐ*Ð*Ñ,Ô,Ñ-Ô-Ð-Ð-Ð-rH   )r‚   rˆ   Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr	   r
   r   r   r   r   r   r   r   Ú__all__rd   r   r¢   rH   rF   ú<module>r¦      s3  ððð ð 
€	€	€	ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð#ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð #ð Ð
€ðð ð Ð ðQ.ð Q.ð Q.ð Q.ð Q.Ð%ñ Q.ô Q.ð Q.ð Q.ð Q.rH   