
    |eO(                         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y)z
    pygments.lexers.dylan
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for the Dylan language.

    :copyright: Copyright 2006-2023 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j6                  dfdedfdej8                  fdej<                  fdej>                  fdej@                  fdejB                  fdejD                  fdez   dz    eejF                  eejH                        fd eejF                  eejH                        fdez   ejF                  fd e%fd!efd"e&fd#ejN                  d$fd%e(fed&z   e(fd'ez   d(z   ejR                  fd)ez   d)z   ejT                  jV                  fd*ez   ejX                  feefgd+ej6                  fdej6                  d,fd-ej6                  d.fd/ej6                  fgdejN                  d.fd0ejN                  fgded.fd1ejZ                  fd2efd3efd4efgd5Z.y6)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              #     K   t        j                  | |      D ]  \  }}}|t        u r|j                         }|| j                  v r|t        j
                  |f C|| j                  v r|t        |f ]|| j                  v r|t        j
                  |f || j                  v r|t        |f |||f  y w)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#DT4#P 	&E5%}"'++-"dmm3u44"dmm3%//"dnn4u44"dnn4500%%	&s   B<B>\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      s    D
%CiG.I IMME>HHI"IH 1J&* Z  ( ::vFH FO
 Z  XgnnjAB W&&	2 68$?M $ &**% A&,,O &..) VZZ( j  $C C8T\\:< J8T\\:<Z* =kJ H w FMM9- W% #w' :#TZZ0 Z%')=)=> Z/ EC
J ))*W&&0W&&/g''(	
 6==&)'

 66"<fmmL6"fFO
yc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y)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MME 	Z  XgnnjAB 3dnnh
FCE

Fr>  r   c                   V    e Zd ZdZdZddgZdgZdgZdZ e	j                  d      Zd	 Zy
)r   z
    For Dylan interactive console output.

    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dylan-console/consolez\?| c           	   #   L  K   t        di | j                  }d}g }t        j                  |      D ]  }|j	                         }| j
                  j                  |      }|J|j                         }|j                  t        |      dt        j                  |d | fgf       |||d  z  }z|r't        ||j                  |            E d {    d}g }|j                         t        j                  |f  |r$t        ||j                  |            E d {    y y 7 T7 w)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  s1    ,t||,
%%d+ 	:E;;=D%%d+A}eeg!!3w<%&Tc
$C#D#F G4:%,Z-4-K-KG-T V V V G!#JkkmW^^T99	: $Z%,%C%CG%LN N N VNs%   C	D$D AD$D"D$"D$N)r  r   r!  r"  r#  r%  r&  r'  _exampler(  compilerH  r	  r=  r>  r  r   r      sC     D-G"#I'(I&HG$J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>rY     sX    
 6 6 6 ?~ ~BJ :&N &Nr>  