o
    	ȷe(                     @   s   d Z ddlZddl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mZ g dZG dd deZG dd	 d	eZG d
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)TextCommentOperatorKeywordNameStringNumberPunctuationGenericLiteral
Whitespace)
DylanLexerDylanConsoleLexerDylanLidLexerc                   @   s  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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 d eej#eej$fdeej#eej$fd e ej#fd!e%fd"efd#e&fd$ej'd%fd&e(fed' e(fd(e d) ej)fd*e d* ej*j+fd+e ej,feefgd,ejfdejd-fd.ejd/fd0ejfgdej'd/fd1ej'fgded/fd2ej-fd3efd4efd5efgd6Z.d7S )8r   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secondrU   valuesvectorceilingcomposeconjoindisjoinelementlimitedreduce1reverseidentitynegativetruncate	dimension	remainderr;   
complement
dimensions
initializeconcatenateintersectionz\\?[\w!&*<>|^$%@\-+~?/=]+c                 c   s    t | |D ]E\}}}|tu rF| }|| jv r!|tj|fV  q|| jv r-|t|fV  q|| jv r:|tj|fV  q|| j	v rF|t
|fV  q|||fV  qd S )N)r   get_tokens_unprocessedr   lowerbuiltinsBuiltinkeywordsr
   	functions	operatorsr	   )selftextindextokenvaluelowercase_value r  L/var/www/ideatree/venv/lib/python3.10/site-packages/pygments/lexers/dylan.pyr  ]   s$   



z!DylanLexer.get_tokens_unprocessed\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-]+:rd   rf   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tokensr  r  r  r  r      s    	$



E



r   c                	   @   s^   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    r   c                   @   sD   e Zd ZdZdZddgZdgZdgZe	dZ
e	dZd	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.*?
z\?| c           	   	   c   s    t di | j}d}g }| j|D ]I}| }| j|}|d urB| }|t	|dt
j|d | fgf |||d  7 }q|rSt|||E d H  d}g }| t
j|fV  q|rlt|||E d H  d S d S )N r   r  )r   options_line_refinditergroup
_prompt_rematchr@   appendlenr   Promptr   r  startOutput)	r  r  dylexercurcode
insertionsrC  linemr@   r  r  r  r  	  s2   

z(DylanConsoleLexer.get_tokens_unprocessedN)r  r  r  r   r!  r#  r$  r%  r&  compiler?  rB  r  r  r  r  r  r      s    

r   )r   r&  pygments.lexerr   r   r   r   r   pygments.tokenr   r   r	   r
   r   r   r   r   r   r   r   __all__r   r   r   r  r  r  r  <module>   s    
4 B