YBFjdZddlZddlmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZddlmZgdZGddeZGd d eZGd d eZdS) 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 RegexLexerincludebygroups do_insertionsusing)TextCommentOperatorKeywordNameString Punctuation Whitespace) BashLexer) MakefileLexerBaseMakefileLexer CMakeLexerceZdZdZdZgdZgdZdgZdZdZ e j dZ e j d Z d Zd Zd 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-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#FKg}|d}d}tdi|j}d}|D]}|j|s|rZ|t |dtj|fgf| d}x|j |r.|t |dt|fgf||z }t|| |Ed{VdS)NT)keependsrFr\) splitlinesroptions r_specialmatchappendlenr Preprocstripendswith r_commentrget_tokens_unprocessed)selftextinslinesdonelex backslashflaglines BC:\PYTHON\_runtimes\venv\Lib\site-packages\pygments/lexers/make.pyr,z$MakefileLexer.get_tokens_unprocessed/s4..//$,//   D~##D)) ]  CIIGOT(B'CDEEE $ 5 5d ; ; %%d++  CIIGT(:';<====  c&@&@&F&FGGGGGGGGGGGc4tjd|rdSdS)Nz \$\([A-Z_]+\)g?)research)r.s r5 analyse_textzMakefileLexer.analyse_text?s& 9%t , , 3  r6N)__name__ __module__ __qualname____doc__namealiases filenames mimetypesurl version_addedr8compiler$r+r,r:r!r6r5rrs D333GVVVI"#I 9CM  %&&I :&&IHHH r6rceZdZdZdZdgZgZgZdZdZ de e fde fde fd efd ee e d fd e fd eeje ee e e fdejfdejfdeejee dfde dfg defdejfde fde dfde dfgdejfdedfde fgdefd edfdefde dfdefde dfd efgd!Zd"S)#rz8 Lexer for simple Makefiles (no preprocessing). z Base Makefilebasemakerz0.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_]+.)rootrJrHrIN)r;r<r=r>r?r@rArBrCrDrrr rr rr Variabler rDoubleSingleFunctionr rtokensr!r6r5rrEs DlGII 9CM $UU9%5%5 6 g & Z  6 Xgz * *H 6 ' * G X z8Zi  "" # )&- 8 (&- 8 %xx x(5(5  g{ +/ 4T "  ' G  GW % GV $  4= ) D& ! Z  k "  ( dO g{ + D ! J ' 4L M//FFFr6rceZdZdZdZdZdgZddgZdgZdZ d e e j e ed fed ed gd edfdedfde ee jefde ee jefde ee jefdejfdefdejfdefde fed ed g gdefgde fdefdefgdZdZdS) rz Lexer for CMake files. CMakez https://cmake.org/documentation/cmakez*.cmakezCMakeLists.txtz text/x-cmakez1.2z\b(\w+)([ \t]*)(\()argskeywordswsrKrLrMrNz(\$\{)(.+?)(\})z(\$ENV\{)(.+?)(\})z (\$<)(.+?)(>)z (?s)".*?"z\\\S+z'\[(?P=*)\[[\w\W]*?\](?P=level)\]z [^)$"# \t\n]+rOz\\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|MSVC70|MSVC71|MSVC80|MSVC90)\bz[ \t]+z(#\[(?P=*)\[[\w\W]*?\](?P=level)\]z#.*\n)rQrZstringr[r\cjd}tj||tjtjzrdSdS)Nzu^[ \t]*CMAKE_MINIMUM_REQUIRED[ \t]*\([ \t]*VERSION[ \t]*\d+(\.\d+)*[ \t]*([ \t]FATAL_ERROR)?[ \t]*\)[ \t]*(#[^\n]*)?$)flagsg?g)r8r9 MULTILINE IGNORECASE)r.exps r5r:zCMakeLexer.analyse_texts:  9S$blR]&B C C C 3sr6N)r;r<r=r>r?rCr@rArBrDrr Builtinrrrr rRrrS Multiliner r rVr:r!r6r5rrs D ,CiG,-I IM<$XXdlJ.9&;&;r8pygments.lexerrrrrrrpygments.tokenr r r r r rrrpygments.lexers.shellr__all__rrrr!r6r5ris ++++++ > > >,,,,,E,,,^;;;;; ;;;|QQQQQQQQQQr6