|edZddlZddlmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZddlmZgdZGddeZGd d eZGd d eZy) z pygments.lexers.make ~~~~~~~~~~~~~~~~~~~~ Lexers for Makefiles and similar. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N)Lexer RegexLexerincludebygroups do_insertionsusing)TextCommentOperatorKeywordNameString Punctuation Whitespace) BashLexer) MakefileLexerBaseMakefileLexer CMakeLexerc~eZdZdZdZgdZgdZdgZejdZ ejdZ dZ d Z y ) 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*@?#c#Kg}|jd}d}tdi|j}d}|D]}|jj |s|rN|j t |dtj|fgf|jjd}n|jj |r%|j t |dt|fgf||z }t||j|Ed{y7w)NT)keependsFr\) splitlinesroptions r_specialmatchappendlenr Preprocstripendswith r_commentrget_tokens_unprocessed)selftextinslinesdonelex backslashflaglines 6/usr/lib/python3/dist-packages/pygments/lexers/make.pyr+z$MakefileLexer.get_tokens_unprocessed-s./$,,/  D~~##D)] CIGOOT(B'CDE $ 5 5d ; %%d+ CIGT(:';<=  !c&@&@&FGGGsDD D D c2tjd|ryy)Nz \$\([A-Z_]+\)g?)research)r-s r4 analyse_textzMakefileLexer.analyse_text=s 99%t , -N)__name__ __module__ __qualname____doc__namealiases filenames mimetypesr6compiler#r*r+r8r r9r4rrsR D3GVI"#I  %&I :&IH r9rceZdZdZdZdgZgZgZdee fde fde fde fde e e d fd e fd e eje ee ee fd ej$fd ej&fde ej(ee dfde dfg defdejfde fde dfde dfgdejfdedfde fgdefde dfdefde dfdefde dfdefgdZy )!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_]+.)rootrGrErFN)r:r;r<r=r>r?r@rArrr rr rr Variabler rDoubleSingleFunctionr rtokensr r9r4rrCsv DlGII $U9%5 6 g & Z  6 gz *H 6 ' * G  z8Zi " # )&-- 8 (&-- 8 %x x(5  g{ +/ 4T "  ' G  GW % GV $  4== ) D& ! Z  k "  ( dO g{ + D ! J ' 4L M/Fr9rceZdZdZdZdZdgZddgZdgZde e je e d fed ed gd e d fde dfde ee j efde ee j efde ee j efdej$fdefdej&fdefde fed ed g gdefgde fdefdefgdZdZy)rz; Lexer for CMake files. .. versionadded:: 1.2 CMakez https://cmake.org/documentation/cmakez*.cmakezCMakeLists.txtz text/x-cmakez\b(\w+)([ \t]*)(\()argskeywordswsrHrIrJrKz(\$\{)(.+?)(\})z(\$ENV\{)(.+?)(\})z (\$<)(.+?)(>)z (?s)".*?"z\\\S+z'\[(?P=*)\[[\w\W]*?\](?P=level)\]z [^)$"# \t\n]+rLz\\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)rNrWstringrXrYcxd}tj||tjtjzryy)Nzu^[ \t]*CMAKE_MINIMUM_REQUIRED[ \t]*\([ \t]*VERSION[ \t]*\d+(\.\d+)*[ \t]*([ \t]FATAL_ERROR)?[ \t]*\)[ \t]*(#[^\n]*)?$)flagsg?g)r6r7 MULTILINE IGNORECASE)r-exps r4r8zCMakeLexer.analyse_texts1  99S$bllR]]&B Cr9N)r:r;r<r=r>urlr?r@rArr Builtinrrrr rOrrP Multiliner r rSr8r r9r4rrsA D ,CiG,-I I<$XdllJ.9&;rgsX + >*E*Z; ;|RRr9