File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/dylan.cpython-310.pyc
o
���a�( � @ s� d Z ddlZddlmZmZmZmZmZ ddlm Z m
Z
mZmZm
Z
mZmZmZmZmZmZ g d�ZG dd� de�ZG dd � d e�ZG d
d� de�ZdS )z�
pygments.lexers.dylan
~~~~~~~~~~~~~~~~~~~~~
Lexers for the Dylan language.
:copyright: Copyright 2006-2021 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 Zd ZdZdZdgZg d�ZdgZej Z
h d�Zh d�Zh d�Z
h d �Zd
Zdd� Zd
efdejfdeejeee�fed�gd
efdeeje�fdejdfdedfdejfdejfdejfdejfdej fdej!fde d eej"eej#�fdeej"eej#�fde ej"fd e$fd!efd"e%fd#ej&d$fd%e'fed& e'fd'e d( ej(fd)e d) ej)j*fd*e ej+feefgd+ejfdejd,fd-ejd.fd/ejfgdej&d.fd0ej&fgded.fd1ej,fd2efd3efd4efgd5�Z-d6S )7r z[
For the `Dylan <http://www.opendylan.org/>`_ language.
.. versionadded:: 0.7
�Dylan�dylan)z*.dylanz*.dylz*.intrztext/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\}}}|tu rF|�� }|| jv r!|tj|fV q|| jv r-|t|fV q|| jv r:|tj|fV q|| j v rF|t
|fV q|||fV qd S )N)r �get_tokens_unprocessedr �lower�builtins�Builtin�keywordsr
� functions� operatorsr )�self�text�index�token�value�lowercase_value� r �7/usr/lib/python3/dist-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�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 Zd ZdZdZddgZddgZdgZej Z
dd efd
ee
je�fdeejeee�fgiZdS )
r zZ
For Dylan LID (Library Interchange Definition) files.
.. versionadded:: 1.6
�DylanLIDz dylan-lid�lidz*.lidz*.hdpztext/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 r9 r r r r r � s ���r c @ sD e Zd ZdZdZddgZdgZdgZe� d�Z
e� d�Zd d
� ZdS )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-consoleztext/x-dylan-consolez.*?
z\?| c c s� � t di | j��}d}g }| j�|�D ]I}|�� }| j�|�}|d urB|�� }|�t |�dt
j|d |� fgf� |||d � 7 }q|rSt||�
|��E d H d}g }|�� t
j|fV 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�
insertionsrB �line�mr@ r r r r s2 �
�
���z(DylanConsoleLexer.get_tokens_unprocessedN)
r r r r r! r" r# r$ r% �compiler> rA 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 A