§
    £E±cŒ(  ã                   ó¾   — 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mZ g d¢Z G d„ de¦  «        Z G d„ d	e¦  «        Z G d
„ de¦  «        ZdS )zÍ
    pygments.lexers.dylan
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for the Dylan language.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)ÚLexerÚ
RegexLexerÚbygroupsÚdo_insertionsÚdefaultÚline_re)
ÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚGenericÚLiteralÚ
Whitespace)Ú
DylanLexerÚDylanConsoleLexerÚDylanLidLexerc                   ó  — e Zd ZdZdZdZdgZg d¢ZdgZe	j
        Zh d£Zh d£Zh d	£Zh d
£ZdZd„ Zdefdej        fd eej        eee¦  «        f ed¦  «        gdefd eej        e¦  «        fdej        dfdedfdej        fdej        fdej        fdej         fdej!        fdej"        fdez   dz    eej#        eej$        ¦  «        fd eej#        eej$        ¦  «        fdez   ej#        fd e%fd!efd"e&fd#ej'        d$fd%e(fed&z   e(fd'ez   d(z   ej)        fd)ez   d)z   ej*        j+        fd*ez   ej,        feefgd+ej        fdej        d,fd-ej        d.fd/ej        fgdej'        d.fd0ej'        fgded.fd1ej-        fd2efd3efd4efgd5œZ.d6S )7r   z<
    For the Dylan language.

    .. versionadded:: 0.7
    ÚDylanzhttp://www.opendylan.org/Údylan)z*.dylanz*.dylz*.intrztext/x-dylan>%   úinline-onlyúcompiler-openúeach-subclassúcompiler-sidewaysÚopenÚslotÚblockÚclassÚmacroÚdomainÚimportÚinlineÚmethodÚmoduleÚsealedÚthreadÚdynamicÚexcludeÚgenericÚhandlerÚkeywordÚlibraryÚprimaryÚvirtualÚabstractÚconcreteÚconstantÚfunctionÚinstanceÚrequiredÚsidewaysÚsubclassÚvariableÚ	exceptionÚ	inheritedÚ	interfaceÚ	singleton>   ÚbyÚifÚinÚtoÚendÚforÚletÚuseÚcaseÚelseÚfromÚthenÚwhenÚaboveÚbeginÚbelowÚlocalÚuntilÚwhileÚcreateÚdefineÚelseifÚexportÚrenameÚselectÚsignalÚunlessÚcleanupÚfinallyÚ	otherwiseÚ
afterwards>   ú<=ú==ú>=ú~=ú~==Ú*ú&ú+ú-ú<ú=ú>ú^ú|ú~>ž   úadd!úany?úodd?úeven?úfill!úsort!úzero?úempty?úevery?úfloor/úmap-asúone-ofúround/úadd-newúlogbit?úmember?úremove!úadd-new!úceiling/úfalse-orúfind-keyúkey-testúmap-intoúpop-lastúreverse!úsubtype?ú	choose-byú	instance?ú	integral?ú	negative?ú	positive?ú	push-lastú	truncate/ú
add-methodú
check-typeú
type-unionúaref-setterúdo-handlersúfind-methodúhead-setterúlast-setterúnext-methodúobject-hashúremove-key!úsize-setterútail-setterúas-lowercaseúas-uppercaseúfirst-setterúkey-sequenceúobject-classúreturn-queryúshallow-copyúthird-setterúas-lowercase!úas-uppercase!úcopy-sequenceúremove-methodúrestart-queryúsecond-setterútype-for-copyúconcatenate-asúelement-setterútable-protocolúdefault-handlerúreturn-allowed?úrow-major-indexúall-superclassesúmerge-hash-codesútype-error-valueúdirect-subclassesúremove-duplicatesúreplace-elements!úslot-initialized?úapplicable-method?úfunction-argumentsúremove-duplicates!úreturn-descriptionúdirect-superclassesúreplace-subsequence!úsubsequence-positionúfunction-specializersúfunction-return-valuesúcondition-format-stringúgeneric-function-methodsútype-error-expected-typeúsorted-applicable-methodsúcondition-format-argumentsúforward-iteration-protocolúbackward-iteration-protocolú#generic-function-mandatory-keywordsÚasÚdoÚabsÚaddÚashÚgcdÚlcmÚmapÚmaxÚminÚpopÚarefÚheadÚlastÚlistÚmakeÚpairÚpushÚrankÚsizeÚsortÚtailÚabortÚapplyÚbreakÚcurryÚerrorÚfirstÚfloorÚrangeÚroundÚthirdÚunionÚalwaysÚcerrorÚchooseÚlogandÚlogiorÚlognotÚlogxorÚmoduloÚrcurryÚreduceÚremoveÚsecondrW   ÚvaluesÚvectorÚceilingÚcomposeÚconjoinÚdisjoinÚelementÚlimitedÚreduce1ÚreverseÚidentityÚnegativeÚtruncateÚ	dimensionÚ	remainderr=   Ú
complementÚ
dimensionsÚ
initializeÚconcatenateÚintersectionz\\?[\w!&*<>|^$%@\-+~?/=]+c              #   óN  K  — t          j        | |¦  «        D ]Œ\  }}}|t          u rv|                     ¦   «         }|| j        v r|t          j        |fV — Œ>|| j        v r|t          |fV — ŒT|| j        v r|t          j        |fV — Œo|| j	        v r|t          |fV — Œ…|||fV — Œ�d S )N)r   Úget_tokens_unprocessedr   ÚlowerÚbuiltinsÚBuiltinÚkeywordsr   Ú	functionsÚ	operatorsr
   )ÚselfÚtextÚindexÚtokenÚvalueÚlowercase_values         ú7/usr/lib/python3/dist-packages/pygments/lexers/dylan.pyr	  z!DylanLexer.get_tokens_unprocessed^   sï   è è € Ý#-Ô#DÀTÈ4Ñ#PÔ#Pð 	&ð 	&ÑˆE�5˜%Ø�ˆ}ˆ}Ø"'§+¢+¡-¤-�Ø" d¤mÐ3Ð3Ø¥¤¨uÐ4Ð4Ð4Ð4ØØ" d¤mÐ3Ð3Ø¥¨%Ð/Ð/Ð/Ð/ØØ" d¤nÐ4Ð4Ø¥¤¨uÐ4Ð4Ð4Ð4ØØ" d¤nÐ4Ð4Ø¥¨5Ð0Ð0Ð0Ð0ØØ˜ Ð%Ð%Ð%Ð%Ð%ð	&ð 	&ó    ú\s+z//.*?\nz)([a-z0-9-]+)(:)([ \t]*)(.*(?:\n[ \t].+)*)Úcodeú(//.*?)(\n)z/\*Úcommentú"Ústringz/'(\\.|\\[0-7]{1,3}|\\x[a-f0-9]{1,2}|[^\\\'\n])'z#b[01]+z#o[0-7]+z0[-+]?(\d*\.\d+(e[-+]?\d+)?|\d+(\.\d*)?e[-+]?\d+)z[-+]?\d+z#x[0-9a-f]+z(\?z6)(:)(token|name|variable|expression|body|case-body|\*)z9(\?)(:)(token|name|variable|expression|body|case-body|\*)z\?z,(=>|::|#\(|#\[|##|\?\?|\?=|\?|[(){}\[\],.;])z:=z#[tf]z#"r-   z#[a-z0-9-]+ú:rf   rh   z\*z\$z[^*/]+z#pushz\*/z#popz[*/]z[^\\"]+z,\\([\\abfnrtv"\']|x[a-f0-9]{2,4}|[0-7]{1,3})z	[^\\"\n]+z\\\nz\\)Úrootr  r  r-   r  N)/Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚreÚ
IGNORECASEÚflagsr  r  r  r  Ú
valid_namer	  r   r	   ÚSingler   r   Ú	Attributer
   r   r   Ú	MultilineÚCharr   ÚBinÚOctÚFloatÚIntegerÚHexÚTagr  r   r   ÚSymbolr   ÚClassÚVariableÚGlobalÚConstantÚEscapeÚtokens© r  r  r   r      s÷  € € € € € ðð ð €DØ
%€CØˆi€GØ.Ð.Ð.€IØÐ €IàŒM€Eð>ð >ð >€Hðð ð €Hðð ð €Ið"ð "ð "€IðH 1€Jð&ð &ð &ð* �ZÐ ð ˜œÐ(ð :Ø�˜œ¨°:¸vÑFÔFðHð ˆG�F‰OŒOð
ð �ZÐ ð ˜X˜X g¤n°jÑAÔAÐBð �WÔ&¨	Ð2ð �6˜8Ð$Ø?ÀÄÐMð ˜œÐ$ð ˜&œ*Ð%ð AÀ&Ä,ÐOð ˜&œ.Ð)ð ˜VœZÐ(ð �jÑ ð $Cñ Cà�˜œ 8¨T¬\Ñ:Ô:ð<ð JØ�˜œ 8¨T¬\Ñ:Ô:ð<à�ZÑ ¤Ð*ð =¸kÐJð �HÐð �wÐð �F”M 9Ð-ð ˜WÐ%ð ˜#Ñ˜wÐ'ð �:Ñ Ñ# T¤ZÐ0ð �ZÑ %Ñ'¨¬Ô)=Ð>ð �ZÑ ¤Ð/ð ˜ÐðEC
ðJ ˜Ô)Ð*Ø�WÔ&¨Ð0Ø�WÔ&¨Ð/Ø�gÔ'Ð(ð	
ð �6”= &Ð)Ø˜œÐ'ð
ð
 �6˜6Ð"Ø<¸f¼mÐLØ˜6Ð"Ø�fÐØ�FˆOð
ðycð c€F€F€Fr  r   c            
       ó”   — e Zd ZdZdZddgZddgZdgZej	        Z
dd	efd
 eej        e¦  «        fd eej        eee¦  «        fgiZdS )r   zZ
    For Dylan LID (Library Interchange Definition) files.

    .. versionadded:: 1.6
    ÚDylanLIDz	dylan-lidÚlidz*.lidz*.hdpztext/x-dylan-lidr  r  r  z"(.*?)(:)([ \t]*)(.*(?:\n[ \t].+)*)N)r   r!  r"  r#  r$  r&  r'  r(  r)  r*  r+  r   r   r	   r-  r   r.  r
   r   r=  r>  r  r  r   r   Ö   s“   € € € € € ðð ð €DØ˜EÐ"€GØ˜'Ð"€IØ#Ð$€IàŒM€Eð 	à�ZÐ ð ˜X˜X g¤n°jÑAÔAÐBð 3ØˆX�d”n h°
¸FÑCÔCðEð

ð€F€F€Fr  r   c                   óP   — e Zd ZdZdZddgZdgZdgZ ej	        d¦  «        Z
d„ Zd	S )
r   zä
    For Dylan interactive console output like:

    .. sourcecode:: dylan-console

        ? let a = 1;
        => 1
        ? a
        => 1

    This is based on a copy of the RubyConsoleLexer.

    .. versionadded:: 1.6
    zDylan sessionzdylan-consolez
dylan-replz*.dylan-consoleztext/x-dylan-consolez\?| c           	   #   óx  K  — t          di | j        ¤Ž}d}g }t          j        |¦  «        D ]à}|                     ¦   «         }| j                             |¦  «        }|�\|                     ¦   «         }|                     t          |¦  «        dt          j        |d |…         fgf¦  «         |||d …         z  }ŒŽ|r-t          ||                     |¦  «        ¦  «        E d {V —† d}g }|                     ¦   «         t          j        |fV — Œá|r+t          ||                     |¦  «        ¦  «        E d {V —† d S d S )NÚ r   r>  )r   Úoptionsr   ÚfinditerÚgroupÚ
_prompt_reÚmatchrB   ÚappendÚlenr   ÚPromptr   r	  ÚstartÚOutput)	r  r  ÚdylexerÚcurcodeÚ
insertionsrI  ÚlineÚmrB   s	            r  r	  z(DylanConsoleLexer.get_tokens_unprocessed	  s²  è è € ÝÐ,Ð,˜tœ|Ð,Ð,ˆàˆØˆ
ÝÔ% dÑ+Ô+ð 	:ð 	:ˆEØ—;’;‘=”=ˆDØ”×%Ò% dÑ+Ô+ˆAØˆ}Ø—e’e‘g”g�Ø×!Ò!¥3 w¡<¤<Ø%&­¬¸¸T¸c¸T¼
Ð$CÐ#Dð#Fñ Gô Gð Gà˜4   œ:Ñ%��àð $Ý,¨ZØ-4×-KÒ-KÈGÑ-TÔ-Tñ Vô  Vð Vð Vð Vð Vð Vð Vð Và �GØ!#�JØ—k’k‘m”m¥W¤^°TÐ9Ð9Ð9Ð9Ð9Øð 	NÝ$ ZØ%,×%CÒ%CÀGÑ%LÔ%LñNô Nð Nð Nð Nð Nð Nð Nð Nð Nð Nð	Nð 	Nr  N)r   r!  r"  r#  r$  r&  r'  r(  r)  ÚcompilerH  r	  r>  r  r  r   r   ó   sd   € € € € € ðð ð €DØ Ð-€GØ"Ð#€IØ'Ð(€Ià�”˜GÑ$Ô$€JðNð Nð Nð Nð Nr  r   )r#  r)  Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr	   r
   r   r   r   r   r   r   r   r   Ú__all__r   r   r   r>  r  r  ú<module>rX     sŠ  ððð ð 
€	€	€	ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð ?Ð
>Ð
>€ð~ð ~ð ~ð ~ð ~�ñ ~ô ~ð ~ðBð ð ð ð �Jñ ô ð ð:,Nð ,Nð ,Nð ,Nð ,N˜ñ ,Nô ,Nð ,Nð ,Nð ,Nr  