B
    `                 @   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 dddg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-2021 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               @   sZ   e Zd ZdZdZddddgZddddd	d
g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makefileZmfZbsdmakez*.makz*.mkz
Makefile.*Z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f | j}d}xx|D ]p}| j|s<|rh|t|dtj|fgf |	 
d}q(| j|r|t|dt|fgf q(||7 }q(W t|||E d H  d S )NT Fr   \)
splitlinesr   options	r_specialmatchappendlenr	   ZPreprocstripendswith	r_commentr   get_tokens_unprocessed)selftextZinslinesdonelexZbackslashflagline r(   \/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/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(   r)   analyse_text=   s    zMakefileLexer.analyse_textN)__name__
__module____qualname____doc__namealiases	filenames	mimetypesr*   compiler   r    r!   r,   r(   r(   r(   r)   r      s   
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 MakefileZbasemakez^(?:[\t ]+.*\n|\n)+z\$[<@$+%?|*]z\s+z#.*?\nz(export)(\s+)(?=[\w${}\t -]+\n)exportz	export\s+z7([\w${}().-]+)(\s*)([!?:+]?=)([ \t]*)((?:.*\\\n)+|.*\n)z"(\\\\|\\[^\\]|[^"\\])*"z'(\\\\|\\[^\\]|[^'\\])*'z([^\n:]+)(:+)([ \t]*)zblock-headerz\$\(	expansionz[^\w$().-]+z[\w.-]+z\$z\(z#pushz\)z#popz	[\w${}-]+z\nz[,|]z\\\nz
[a-zA-Z_]+.)rootr7   r6   zblock-headerN)r-   r.   r/   r0   r1   r2   r3   r4   r   r   r   r   r	   r   r   Variabler
   r   DoubleSingleZFunctionr   tokensr(   r(   r(   r)   r   C   sD   


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
    ZCMakeZcmakez*.cmakezCMakeLists.txtztext/x-cmakez\b(\w+)([ \t]*)(\()argskeywordswsz\(z#pushz\)z#popz(\$\{)(.+?)(\})z(\$ENV\{)(.+?)(\})z(\$<)(.+?)(>)z	(?s)".*?"z\\\S+z[^)$"# \t\n]+z\nz\\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|MSVC70|MSVC71|MSVC80|MSVC90)\bz[ \t]+z#.*\n)r9   r>   stringr?   r@   c             C   s$   d}t j|| t jt jB d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        )r*   r+   	MULTILINE
IGNORECASE)r#   expr(   r(   r)   r,      s    zCMakeLexer.analyse_textN)r-   r.   r/   r0   r1   r2   r3   r4   r   r   ZBuiltinr   r   r   r
   r:   r   r;   r   r	   r=   r,   r(   r(   r(   r)   r   ~   s4   
)r0   r*   Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr   r	   r
   r   r   r   r   Zpygments.lexers.shellr   __all__r   r   r   r(   r(   r(   r)   <module>	   s    $
-;