Ë
    |í¼e  ã                   ó®   — 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 ddlmZ g d¢Z G d„ de«      Z G d	„ d
e«      Z G d„ de«      Zy)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 Zd ZdZdZg d¢Zg d¢ZdgZ ej                  d«      Z
 ej                  d«      Zd„ Zd	„ 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.*ÚGNUmakefileztext/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        di | j                  ¤Ž}d}|D ]²  }| j                  j	                  |«      s|rN|j                  t        |«      dt        j                  |fgf«       |j                  «       j                  d«      }Œn| j                  j	                  |«      r%|j                  t        |«      dt        |fgf«       Œ®||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   ‚DDÄDÄDc                 ó2   — t        j                  d| «      ryy )Nz\$\([A-Z_]+\)gš™™™™™¹?)ÚreÚsearch)r-   s    r4   Úanalyse_textzMakefileLexer.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 Zd ZdZdZdgZg Zg Zd ee	«      fde
fdefdefd ee
e«      d	fd
e
fd eej                  eee ee	«      «      fdej$                  fdej&                  fd eej(                  ee«      dfde
dfgdefdej                  fde
fde
dfde
dfgdej                  fdedfdefgdefdedfdefde
dfdefdedfdefgdœZy )!r   zT
    Lexer for simple Makefiles (no preprocessing).

    .. versionadded:: 0.10
    zBase MakefileÚbasemakez^(?:[\t ]+.*\n|\n)+z\$[<@$+%?|*]z\s+z#.*?\nz&((?:un)?export)(\s+)(?=[\w${}\t -]+\n)Úexportz(?:un)?export\s+z7([\w${}().-]+)(\s*)([!?:+]?=)([ \t]*)((?:.*\\\n)+|.*\n)z"(\\\\|\\[^\\]|[^"\\])*"z'(\\\\|\\[^\\]|[^'\\])*'z([^\n:]+)(:+)([ \t]*)úblock-headerz\$\(Ú	expansionz[^\w$().-]+z[\w.-]+z\$ú\(ú#pushú\)ú#popz	[\w${}-]+ú\nz[,|]z\\\nz
[a-zA-Z_]+ú.)ÚrootrG   rE   rF   N)r:   r;   r<   r=   r>   r?   r@   rA   r   r   r   r   r
   r   r   ÚVariabler   r   ÚDoubleÚSingleÚFunctionr	   r   Útokensr    r9   r4   r   r   C   sv  „ ñð €DØˆl€GØ€IØ€Ið
 $¡U¨9Ó%5Ð6à˜gÐ&Ø�ZÐ Ø˜Ð Ø6Ù�g˜zÓ*¨Hð6à  'Ð*àGÙØ—‘˜z¨8°ZÙ�iÓ ó"ð#ð
 )¨&¯-©-Ð8Ø(¨&¯-©-Ð8à%¡xØ—‘˜x¨ó(5àðð �g˜{Ð+ð/
ð4 ˜TÐ"Ø˜Ÿ™Ð'Ø�GÐØ�G˜WÐ%Ø�G˜VÐ$ð
ð ˜4Ÿ=™=Ð)Ø�D˜&Ð!Ø�ZÐ ð
ð �kÐ"Ø˜ Ð(Ø�dˆOØ�g˜{Ð+Ø˜DÐ!Ø�J Ð'Ø�4ˆLð
ñM/�Fr9   r   c                   ó’  — e Zd ZdZdZdZdgZddgZdgZd e	e
j                  ee«      d	f ed
«       ed«      gdedfdedfd e	ee
j                   e«      fd e	ee
j                   e«      fd e	ee
j                   e«      fdej$                  fdefdej&                  fdefdef ed
«       ed«      gg defgdefdefdefgdœZd„ Zy)r   z;
    Lexer for CMake files.

    .. versionadded:: 1.2
    ÚCMakez https://cmake.org/documentation/Úcmakez*.cmakezCMakeLists.txtztext/x-cmakez\b(\w+)([ \t]*)(\()ÚargsÚkeywordsÚwsrH   rI   rJ   rK   z(\$\{)(.+?)(\})z(\$ENV\{)(.+?)(\})z(\$<)(.+?)(>)z	(?s)".*?"z\\\S+z'\[(?P<level>=*)\[[\w\W]*?\](?P=level)\]z[^)$"# \t\n]+rL   z\\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|MSVC70|MSVC71|MSVC80|MSVC90)\bz[ \t]+z(#\[(?P<level>=*)\[[\w\W]*?\](?P=level)\]z#.*\n)rN   rW   ÚstringrX   rY   c                 óx   — d}t        j                  || t         j                  t         j                  z  ¬«      ryy)Nzu^[ \t]*CMAKE_MINIMUM_REQUIRED[ \t]*\([ \t]*VERSION[ \t]*\d+(\.\d+)*[ \t]*([ \t]FATAL_ERROR)?[ \t]*\)[ \t]*(#[^\n]*)?$)Úflagsgš™™™™™é?g        )r6   r7   Ú	MULTILINEÚ
IGNORECASE)r-   Úexps     r4   r8   zCMakeLexer.analyse_textÊ   s1   € ðð 	ô �9‰9�S˜$¤b§l¡l´R·]±]Ñ&BÕCØØr9   N)r:   r;   r<   r=   r>   Úurlr?   r@   rA   r   r   ÚBuiltinr   r   r   r   rO   r   rP   Ú	Multiliner   r
   rS   r8   r    r9   r4   r   r   �   sA  „ ñð
 €DØ
,€CØˆi€GØÐ,Ð-€IØÐ €Ið< $¡X¨d¯l©l¸JØ.9ó&;Ø<BðDá�JÓÙ�D‹Mð=
ðB �K Ð)Ø�K Ð(Ø¡¨(°D·M±MÀ8Ó!LÐMØ"¡H¨X°t·}±}ÀhÓ$OÐPØ™x¨°$·-±-ÀÓJÐKØ˜6Ÿ=™=Ð)Ø�vÐØ7¸×9IÑ9IÐJØ˜vÐ&Ø�JÐÙ�JÓÙ�D‹Mð
ð
ð/Ø07ð9ð
ð
 ˜
Ð#Ø8¸'ÐBØ�wÐð
ñm;€Fóz	r9   r   )r=   r6   Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr	   r
   r   r   r   r   r   r   Úpygments.lexers.shellr   Ú__all__r   r   r   r    r9   r4   ú<module>rg      sX   ðñó 
÷÷ ÷÷ ó å +â
>€ô*�Eô *ôZ;˜
ô ;ô|R�õ Rr9   