
    L&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dS )z
    pygments.lexers.make
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for Makefiles and similar.

    :copyright: Copyright 2006-2022 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                   x    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d
S )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              #   F  K   g }|                     d          }d}t          di | j        }d}|D ]}| j                            |          s|rZ|                    t          |          dt          j        |fgf           |	                                
                    d          }x| j                            |          r.|                    t          |          dt          |fgf           ||z  }t          ||                    |                    E d {V  d S )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           a/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/pygments/lexers/make.pyr+   z$MakefileLexer.get_tokens_unprocessed-   s4     ..//$,// 	 	D~##D)) ] 

CIIGOT(B'CDEEE $

 5 5d ; ;%%d++ 

CIIGT(:';<==== c&@&@&F&FGGGGGGGGGGG    c                 4    t          j        d|           rdS d S )Nz\$\([A-Z_]+\)g?)research)r-   s    r4   analyse_textzMakefileLexer.analyse_text=   s&    9%t,, 	3	 	r5   N)__name__
__module____qualname____doc__namealiases	filenames	mimetypesr7   compiler#   r*   r+   r9   r    r5   r4   r   r      s          D333GVVVI"#I
	%& &I 
:&&IH H H     r5   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d S )!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    r5   r4   r   r   C   s         DlGII
 $UU9%5%56g&Z  6Xgz**H6 '*GXz8Zi  " "#
 )&-8(&-8%xxx(5 (5 g{+/
4 T"'GGW%GV$
 4=)D&!Z 
 k"(dOg{+D!J'4L
M/ /FFFr5   r   c                   r   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fdef ed
           ed          gg defgdefdefgdZd ZdS )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[^)$"# \t\n]+rL   z\\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|MSVC70|MSVC71|MSVC80|MSVC90)\bz[ \t]+z#.*\n)rN   rW   stringrX   rY   c                 j    d}t          j        || t           j        t           j        z            rdS dS )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     r4   r9   zCMakeLexer.analyse_text   s:     	 9S$blR]&BCCC 	3sr5   N)r:   r;   r<   r=   r>   urlr?   r@   rA   r   r   Builtinr   r   r   r   rO   r   rP   r   r
   rS   r9   r    r5   r4   r   r      so        
 D
,CiG,-I I< $XXdlJ.9&; &;<BDGJGDMM=
B K)K((DM8!L!LM"HHXt}h$O$OPxx$-JJK6=)vv&JGJGDMM

/079

 
#w
k9 9Fv	 	 	 	 	r5   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    r5   r4   <module>rf      s    
			                                   + + + + + +
>
>
>* * * * *E * * *Z; ; ; ; ;
 ; ; ;|P P P P P P P P P Pr5   