o a @sdZddlZddlmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZddlmZgdZGdddeZGd d d eZGd d d eZdS) 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 RegexLexerincludebygroups do_insertionsusing)TextCommentOperatorKeywordNameString Punctuation Whitespace) BashLexer) MakefileLexerBaseMakefileLexer CMakeLexerc@sNeZdZdZdZgdZgdZdgZe dZ e dZ dd Z d d Z d S) rz Lexer for BSD and GNU make extensions (lenient enough to handle both in the same file even). *Rewritten in Pygments 0.10.* Makefile)makemakefilemfbsdmake)z*.makz*.mkrrz Makefile.* GNUmakefileztext/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*@?#ccsg}|d}d}tdi|j}d}|D]8}|j|s |r6|t|dtj|fgf| d}q|j |rJ|t|dt|fgfq||7}qt || |EdHdS)NTFr\) splitlinesroptions r_specialmatchappendlenr Preprocstripendswith r_commentrget_tokens_unprocessed)selftextinslinesdonelex backslashflaglinerr6/usr/lib/python3/dist-packages/pygments/lexers/make.pyr'-s   z$MakefileLexer.get_tokens_unprocessedcCstd|rdSdS)Nz \$\([A-Z_]+\)g?)research)r)rrr0 analyse_text=s zMakefileLexer.analyse_textN)__name__ __module__ __qualname____doc__namealiases filenames mimetypesr1compilerr&r'r3rrrr0rs  rc@s eZdZdZdZdgZgZgZdee fde fde fde fde e ed fd e fd e ejeeeee fd ejfd ejfde ejeedfde dfg defdejfde fde dfde dfgdejfdedfde fgdefde dfdefde dfdefdedfdefgdZd S)!rzT Lexer for simple Makefiles (no preprocessing). .. versionadded:: 0.10 z Base Makefilebasemakez^(?:[\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_]+.)rootr@r>r?N)r4r5r6r7r8r9r:r;rrr rr rrr Variabler r DoubleSingleFunctionrtokensrrrr0rCsV   rc @seZdZdZdZdgZddgZdgZdee j e e dfe d e d gd e d fd e dfdeee jefdeee jefdeee jefdejfdefdefde fe d e d g gdefgdefdefgdZddZdS)rz\ Lexer for `CMake `_ files. .. versionadded:: 1.2 CMakecmakez*.cmakezCMakeLists.txtz text/x-cmakez\b(\w+)([ \t]*)(\()argskeywordswsrArBrCrDz(\$\{)(.+?)(\})z(\$ENV\{)(.+?)(\})z (\$<)(.+?)(>)z (?s)".*?"z\\\S+z [^)$"# \t\n]+rEz\\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|MSVC70|MSVC71|MSVC80|MSVC90)\bz[ \t]+z#.*\n)rGrOstringrPrQcCs$d}tj||tjtjBdrdSdS)Nzu^[ \t]*CMAKE_MINIMUM_REQUIRED[ \t]*\([ \t]*VERSION[ \t]*\d+(\.\d+)*[ \t]*([ \t]FATAL_ERROR)?[ \t]*\)[ \t]*(#[^\n]*)?$)flagsg?g)r1r2 MULTILINE IGNORECASE)r)exprrr0r3s zCMakeLexer.analyse_textN)r4r5r6r7r8r9r:r;rr Builtinrrrr rHr rIr rr rLr3rrrr0r~sH !  ;r)r7r1pygments.lexerrrrrrrpygments.tokenrr r r r r rrpygments.lexers.shellr__all__rrrrrrr0s ( -;