o
    0 i(                     @   s   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 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-2025 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                   @   s  e Zd ZdZdZdZdgZg dZdgZd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d0fd1ejfgdej(d0fd2ej(fgded0fd3ej.fd4efd5efd6efgd7Z/d8S )9r   z!
    For the Dylan language.
    Dylanhttp://www.opendylan.org/dylan)z*.dylanz*.dylz*.intrztext/x-dylanz0.7>%   subclassZconcreterequiredzeach-subclasshandlerinline	exceptionthreadZsealedclassZ	interfaceZlibraryzinline-onlyblockZabstractZconstantZvirtualslotmacrovariableZdynamic	inheritedexcludefunctionprimarymoduleZgeneric	singletonzcompiler-openopenZsidewaysinstancezcompiler-sidewaysmethoddomainkeywordimport>   whileZaboveZelseiffromZuntildefineelseforbeginselecttoZexportcaseZletlocalsignalcleanupZbelowZ	otherwiseendinfinallyZusewhenrenameZunlessZ
afterwardsZbyZthencreateif>   z==z~==&z<=+^-z~=z>=*=|~><>   z
type-unionrange	dimensionZdisjoinz
add-methodzall-superclasseszlogbit?z
check-typeelementztype-for-copyZlogandzremove-key!addzdirect-superclassestruncatezsize-setterzceiling/r(   zdefault-handlerzadd-newzcopy-sequenceZlogiorzfalse-orz	negative?sizedozmerge-hash-codesapplyzrow-major-indexzremove-methodztable-protocolheadgcdsecondlistlastZcomposeZlimitedZcerrorZmodulozreverse!roundz	integral?breakzelement-setterZarefZashpairfirstztail-setterZconjoinsortzsubsequence-positionzapplicable-method?zas-lowercasezthird-setterzmap-intoZ
complementzempty?zfirst-setterzmember?Zrankz	push-lastZconcatenatezcondition-format-argumentszas-uppercase!zgeneric-function-methodslcmzfind-methodzslot-initialized?zpop-lastzaref-setterzsorted-applicable-methodsz	instance?zone-ofabortzround/reduceztype-error-valuetailfloorzevery?Zreduce1Zceilingerrorz#generic-function-mandatory-keywordsthirdalwayszdo-handlerszremove!zkey-sequenceminz	positive?zconcatenate-asr9   ztype-error-expected-typeabszobject-hashzreturn-descriptioncurryZlognotzrestart-queryaszlast-setterremovez	truncate/zfunction-argumentsintersectionunionzfunction-return-valueszadd-new!zany?negativezforward-iteration-protocolzremove-duplicates!znext-methodzkey-testZrcurryzmap-asvaluesmaxzzero?zreturn-allowed?reversezas-lowercase!zsubtype?zreplace-elements!Zchoosemakezeven?zhead-setterzreplace-subsequence!zfunction-specializerszcondition-format-stringzfloor/zobject-class
dimensionspopmappushZ
initializezsort!zreturn-queryzfind-keyzremove-duplicateszsecond-setterzas-uppercasezfill!Zvectorzadd!	remainderzdirect-subclasseszbackward-iteration-protocolZlogxorzodd?identityz	choose-byzshallow-copyz\\?[\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valueZlowercase_value r   a/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/pygments/lexers/dylan.pyrx   ]   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-]+:rK   rJ   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)0__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesversion_addedre
IGNORECASEflagsrz   r|   r~   r}   Z
valid_namerx   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                	   @   sf   e Zd ZdZdZddgZddgZdgZdZd	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   z?
    For Dylan LID (Library Interchange Definition) files.
    DylanLIDz	dylan-lidlidz*.lidz*.hdpztext/x-dylan-lidr   1.6r   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   r   r      s"    r   c                   @   sF   e Zd ZdZdZddgZdgZdgZdZdZ	d	Z
ed
Zdd ZdS )r   zi
    For Dylan interactive console output.

    This is based on a copy of the ``RubyConsoleLexer``.
    zDylan sessionzdylan-consolez
dylan-replz*.dylan-consoleztext/x-dylan-consoler   r   z#dylan-console/console.dylan-consolez\?| c           	   	   c   s    t di | j}d}g }t|D ]I}| }| j|}|d urA| }|t	|dt
j|d | fgf |||d  7 }q|rRt|||E d H  d}g }| t
j|fV  q|rkt|||E d H  d S d S )N r   r   )r   optionsr   finditergroup
_prompt_rematchr;   appendlenr   Promptr   rx   startOutput)	r   r   ZdylexerZcurcode
insertionsr   linemr;   r   r   r   rx     s2   

z(DylanConsoleLexer.get_tokens_unprocessedN)r   r   r   r   r   r   r   r   r   r   Z_exampler   compiler   rx   r   r   r   r   r      s    
r   )r   r   Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr   r	   r
   r   r   r   r   r   r   r   __all__r   r   r   r   r   r   r   <module>   s    
 0 A