o
    -wi                     @   s   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 ddlmZ g dZG dd deZG d	d
 d
eZG dd deZdS )z
    pygments.lexers.make
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for Makefiles and similar.

    :copyright: Copyright 2006-2017 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)	BashLexer)MakefileLexerBaseMakefileLexer
CMakeLexerc                   @   sN   e Zd ZdZdZg dZg dZdgZe	dZ
e	dZdd	 Zd
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           	      c   s    g }| d}d}tdi | j}d}|D ]8}| j|s |r6|t|dtj|fgf |	 
d}q| j|rJ|t|dt|fgf q||7 }qt|||D ]}|V  qWd S )NT Fr   \ )
splitlinesr   options	r_specialmatchappendlenr	   Preprocstripendswith	r_commentr   get_tokens_unprocessed)	selftextinslinesdonelexbackslashflaglineitemr   r   ^/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/vendor/pygments/lexers/make.pyr&   .   s    

z$MakefileLexer.get_tokens_unprocessedc                 C   s   t d| rdS d S )Nz\$\([A-Z_]+\)g?)research)r(   r   r   r0   analyse_text?   s   zMakefileLexer.analyse_textN)__name__
__module____qualname____doc__namealiases	filenames	mimetypesr1   compiler   r%   r&   r3   r   r   r   r0   r      s    
r   c                   @   s  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(export)(\s+)(?=[\w${}\t -]+\n)exportz	export\s+z7([\w${}().-]+)(\s*)([!?:+]?=)([ \t]*)((?:.*\\\n)+|.*\n)z(?s)"(\\\\|\\.|[^"\\])*"z(?s)'(\\\\|\\.|[^'\\])*'z([^\n:]+)(:+)([ \t]*)block-headerz\$\(	expansionz[^$a-zA-Z_()]+z
[a-zA-Z_]+z\$\(#push\)#popz	[\w${}-]+\nz[,|]z\\\n.)rootr@   r>   r?   N)r4   r5   r6   r7   r8   r9   r:   r;   r   r   r   r   r	   r   r   Variabler
   r   DoubleSingleFunctionr   tokensr   r   r   r0   r   E   sV    


r   c                   @   s   e 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d ZdS )r   z\
    Lexer for `CMake <http://cmake.org/Wiki/CMake>`_ files.

    .. versionadded:: 1.2
    CMakecmakez*.cmakezCMakeLists.txtztext/x-cmakez\b(\w+)([ \t]*)(\()argskeywordswsrA   rB   rC   rD   z(\$\{)(.+?)(\})z(\$ENV\{)(.+?)(\})z(\$<)(.+?)(>)z	(?s)".*?"z\\\S+z[^)$"# \t\n]+rE   z\\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|MSVC70|MSVC71|MSVC80|MSVC90)\bz[ \t]+z#.*\n)rG   rO   stringrP   rQ   c                 C   s$   d}t j|| t jt jB drdS dS )NzI^ *CMAKE_MINIMUM_REQUIRED *\( *VERSION *\d(\.\d)* *( FATAL_ERROR)? *\) *$)flagsg?g        )r1   r2   	MULTILINE
IGNORECASE)r(   expr   r   r0   r3      s   zCMakeLexer.analyse_textN)r4   r5   r6   r7   r8   r9   r:   r;   r   r   Builtinr   r   r   r
   rH   r   rI   r   r	   rL   r3   r   r   r   r0   r      sH    
!;r   )r7   r1   pygments.lexerr   r   r   r   r   r   pygments.tokenr   r	   r
   r   r   r   r   pygments.lexers.shellr   __all__r   r   r   r   r   r   r0   <module>   s   
 $.;