�
|�e � � � d Z ddlZddlmZmZmZmZmZmZ ddl m
Z
mZmZm
Z
mZmZmZmZ ddlmZ g d�Z G d� de� Z G d � d
e� Z G d� de� Zy)
z�
pygments.lexers.make
~~~~~~~~~~~~~~~~~~~~
Lexers for Makefiles and similar.
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�Lexer�
RegexLexer�include�bygroups�
do_insertions�using)�Text�Comment�Operator�Keyword�Name�String�Punctuation�
Whitespace)� BashLexer)�
MakefileLexer�BaseMakefileLexer�
CMakeLexerc �~ � e Zd ZdZdZg d�Zg d�ZdgZ ej d� Z
ej d� Zd� Zd � Z
y
)r z�
Lexer for BSD and GNU make extensions (lenient enough to handle both in
the same file even).
*Rewritten in Pygments 0.10.*
�Makefile)�make�makefile�mf�bsdmake)z*.makz*.mkr r z
Makefile.*�GNUmakefileztext/x-makefilez�^(?:\.\s*(include|undef|error|warning|if|else|elif|endif|for|endfor)|\s*(ifeq|ifneq|ifdef|ifndef|else|endif|-?include|define|endef|:|vpath)|\s*(if|else|endif))(?=\s)z^\s*@?#c # � K � g }|j d�� }d}t di | j ��}d}|D ]� }| j j |� s|rN|j t
|� dt j |fgf� |j � j d� }�n| j j |� r%|j t
|� dt |fgf� ��||z
}�� t ||j |� � E d { ��� y 7 ��w)NT)�keepends� Fr �\� )�
splitlinesr �options� r_special�match�append�lenr
�Preproc�strip�endswith� r_commentr �get_tokens_unprocessed)�self�text�ins�lines�done�lex�
backslashflag�lines �6/usr/lib/python3/dist-packages/pygments/lexers/make.pyr+ z$MakefileLexer.get_tokens_unprocessed- s� � �� ��������.�����/�$�,�,�/���
�� �D��~�~�#�#�D�)�]��
�
�C��I��G�O�O�T�(B�'C�D�E� $�
�
�� 5� 5�d� ;�
����%�%�d�+��
�
�C��I��G�T�(:�';�<�=����� � !��c�&@�&@��&F�G�G�G�s �DD
�D�D
c �2 � t j d| � ryy )Nz
\$\([A-Z_]+\)g�������?)�re�search)r- s r4 �analyse_textzMakefileLexer.analyse_text= s � �
�9�9�%�t�,�� -� N)�__name__�
__module__�__qualname__�__doc__�name�aliases� filenames� mimetypesr6 �compiler# r* r+ r8 r r9 r4 r r sR � �� �D�3�G�V�I�"�#�I���
�
� %�&�I� ��
�
�:�&�I�H� r9 r c � � e Zd ZdZdZdgZg Zg Zd ee � fde
fdefdefd e
e
e� d fd
e
fd e
ej eee ee � � fdej$ fd
ej& |