Ë
    !täiš  ã                   ó®   — 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-present 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dZd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-makefileú-https://en.wikipedia.org/wiki/Make_(software)Ú z¥^(?:\.\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)Úkeependsr   Fr   Ú\© )Ú
splitlinesr   ÚoptionsÚ	r_specialÚmatchÚappendÚlenr
   ÚPreprocÚstripÚendswithÚ	r_commentr   Úget_tokens_unprocessed)ÚselfÚtextÚinsÚlinesÚdoneÚlexÚbackslashflagÚlines           úc/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-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    r5   Úanalyse_textzMakefileLexer.analyse_text?   s   € ä�9‰9Ð% tÔ,Øð -ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚurlÚversion_addedr7   Úcompiler$   r+   r,   r9   r!   r:   r5   r   r      s\   „ ñð €DÚ3€GÚV€IØ"Ð#€IØ
9€CØ€Mà�—
‘
ð	%ó&€Ið �—
‘
˜:Ó&€IòHó r:   r   c                   ó¨  — e Zd ZdZdZdgZg Zg ZdZd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   z8
    Lexer for simple Makefiles (no preprocessing).
    zBase MakefileÚbasemaker   z0.10z^(?:[\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_]+Ú.)ÚrootrJ   rH   rI   N)r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   r   r   r   r   r
   r   r   ÚVariabler   r   ÚDoubleÚSingleÚFunctionr	   r   Útokensr!   r:   r5   r   r   E   s€  „ ñð €DØˆl€GØ€IØ€IØ
9€CØ€Mð
 $¡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/�Fr:   r   c                   ó–  — e Zd ZdZdZdZdgZddgZdgZd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.
    ÚCMakez https://cmake.org/documentation/Úcmakez*.cmakezCMakeLists.txtztext/x-cmakez1.2z\b(\w+)([ \t]*)(\()ÚargsÚkeywordsÚwsrK   rL   rM   rN   z(\$\{)(.+?)(\})z(\$ENV\{)(.+?)(\})z(\$<)(.+?)(>)z	(?s)".*?"z\\\S+z'\[(?P<level>=*)\[[\w\W]*?\](?P=level)\]z[^)$"# \t\n]+rO   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)rQ   rZ   Ústringr[   r\   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        )r7   r8   Ú	MULTILINEÚ
IGNORECASE)r.   Úexps     r5   r9   zCMakeLexer.analyse_textË   s1   € ðð 	ô �9‰9�S˜$¤b§l¡l´R·]±]Ñ&BÕCØØr:   N)r;   r<   r=   r>   r?   rC   r@   rA   rB   rD   r   r   ÚBuiltinr   r   r   r   rR   r   rS   Ú	Multiliner   r
   rV   r9   r!   r:   r5   r   r   ƒ   sF  „ ñð €DØ
,€CØˆi€GØÐ,Ð-€IØÐ €IØ€Mð< $¡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	r:   r   )r>   r7   Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr	   r
   r   r   r   r   r   r   Úpygments.lexers.shellr   Ú__all__r   r   r   r!   r:   r5   Ú<module>ri      sX   ðñó 
÷÷ ÷÷ ó å +â
>€ô,�Eô ,ô^;˜
ô ;ô|Q�õ Qr:   