File: //lib/python3/dist-packages/pygments/lexers/__pycache__/esoteric.cpython-311.pyc
�
�E�c�( � � � d Z ddlmZmZmZmZ ddlmZmZm Z m
Z
mZmZm
Z
mZmZ g d�Z G d� de� � Z G d� de� � Z G d � d
e� � Z G d� de� � Z G d
� de� � Z G d� de� � ZdS )z�
pygments.lexers.esoteric
~~~~~~~~~~~~~~~~~~~~~~~~
Lexers for esoteric languages.
:copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� )�
RegexLexer�include�words�bygroups) �Comment�Operator�Keyword�Name�String�Number�Punctuation�Error�
Whitespace)�BrainfuckLexer�BefungeLexer�RedcodeLexer�CAmkESLexer�
CapDLLexer�
AheuiLexerc � � e Zd ZdZdZdZddgZddgZdgZd e j
fd
e j fde j fde
fgd
edfdef ed� � gd
edfdedf ed� � gd�Zd� ZdS )r z4
Lexer for the esoteric BrainFuck language.
� Brainfuckz'http://www.muppetlabs.com/~breadbox/bf/� brainfuck�bfz*.bfz*.bzapplication/x-brainfuckz[.,]+z[+-]+z[<>]+z[^.,+\-<>\[\]]+z\[�loopz\]�commonz#pushz#pop)r �rootr c �� � d}d}t dt | � � � � }| d|� D ]$}|dk s|dk r|dz
}|dk s|dk r|dz
}�%|d |z k rd
S |d |z k rd
S d}d| v r|dz
}|S )
z]It's safe to assume that a program which mostly consists of + -
and < > is brainfuck.r � N�+�-� �<�>g �?g �?z[-]g �?)�max�len)�text�plus_minus_count�greater_less_count�range_to_check�c�results �:/usr/lib/python3/dist-packages/pygments/lexers/esoteric.py�analyse_textzBrainfuckLexer.analyse_text2 s� � � �����S�#�d�)�)�,�,���o�~�o�&� (� (�A��C�x�x�1��8�8� �A�%� ��C�x�x�1��8�8�"�a�'�"���t�n�4�5�5��3����!6�7�7��3����D�=�=��c�M�F��
� N)�__name__�
__module__�__qualname__�__doc__�name�url�aliases� filenames� mimetypesr
�Tag�Builtin�Variabler r r r �tokensr- � r. r, r r s� � � � � � �� � �D�
3�C��D�!�G����I�*�+�I�
�t�x� �
�t�|�$�
�t�}�%�
��)�
� �G�V�$�
�E�N��G�H���
� �G�W�%�
�G�V�$��G�H���
�� �F�(� � � � r. r c � � e Zd ZdZdZdZdgZdgZdgZdde fd e
fd
ej fdej
fdefd
ej fdej fdej fdefdefdefdefgiZdS )r zM
Lexer for the esoteric Befunge language.
.. versionadded:: 0.7
�Befungez$http://en.wikipedia.org/wiki/Befunge�befungez *.befungezapplication/x-befunger z[0-9a-f]z [+*/%!`-]z[<>^v?\[\]rxjk]z [:\\$.,n]z[|_mw]z[{}]z".*?"z\'.z[#;]z
[pg&~=@iotsy]z[()A-Z]�\s+N)r/ r0 r1 r2 r3 r4 r5 r6 r7 r r r
r: r9 r r8 r �Double�Singler r r; r<