
    z3                         S r SSKrSSKJrJrJrJrJrJr  SSK	J
r
JrJrJrJrJrJrJrJrJr  / SQr " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      rg)z
pygments.lexers.installers
~~~~~~~~~~~~~~~~~~~~~~~~~~

Lexers for installer/packager DSLs and formats.

:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
    N)
RegexLexerincludebygroupsusingthisdefault)
TextCommentOperatorKeywordNameStringPunctuationGenericNumber
Whitespace)	NSISLexerRPMSpecLexerSourcesListLexerDebianControlLexerc                   Z   \ rS rSrSrSrSr/ SQrSS/rS/r	\
R                  rS	\" \\5      4S
\R"                  4S\R$                  S4S\R&                  S4\" S5      \" S5      \" S5      S\R,                  4S\R0                  4S\4S\4/S\" \\\\R4                  5      4S\" \R6                  \\R4                  5      4S\" \R:                  \5      4S\4S\4S\4S\4S\R>                  4/S\R@                  4/S\RB                  R,                  4S \RB                  4S!\RD                  RF                  4S"\RD                  4/S\R$                  S#4S$\RH                  4\" S5      S%\R$                  4/S\R$                  S#4S$\RH                  4\" S5      S&\R$                  4/S'.r%S(r&g))*r      z*
For NSIS scripts.

.. versionadded:: 1.6
NSISzhttp://nsis.sourceforge.net/)nsisnsinshz*.nsiz*.nshztext/x-nsisz([;#].*)(\n)'.*?'"
str_double`str_backtickmacrointerpolbasicz\$\{[a-z_|][\w|]*\}z
/[a-z_]\w*\s+z[\w.]+z$(\n)(Function)(\s+)([._a-z][.\w]*)\bz#\b([_a-z]\w*)(::)([a-z][a-z0-9]*)\bz\b([_a-z]\w*)(:)z!(\b[ULS]|\B)([!<>=]?=|\<\>?|\>)\Bz[|+-]z\\a  \b(Abort|Add(?:BrandingImage|Size)|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient)|BrandingText|BringToFront|Call(?:InstDLL)?|(?:Sub)?Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|Shortcut)|Delete(?:INI(?:Sec|Str)|Reg(?:Key|Value))?|DetailPrint|DetailsButtonText|Dir(?:Show|Text|Var|Verify)|(?:Disabled|Enabled)Bitmap|EnableWindow|EnumReg(?:Key|Value)|Exch|Exec(?:Shell|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read(?:Byte)?|Seek|Write(?:Byte)?)?|Find(?:Close|First|Next|Window)|FlushINI|Function(?:End)?|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|FunctionAddress|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Inst(?:ProgressFlags|Type(?:[GS]etText)?)|Int(?:CmpU?|Fmt|Op)|IsWindow|LangString(?:UP)?|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|MessageBox|MiscButtonText|Name|Nop|OutFile|(?:Uninst)?Page(?:Ex(?:End)?)?|PluginDir|Pop|Push|Quit|Read(?:(?:Env|INI|Reg)Str|RegDWORD)|Reboot|(?:Un)?RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:Divider|End|(?:(?:Get|Set)(?:Flags|InstTypes|Size|Text))|Group(?:End)?|In)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress(?:ionLevel|or(?:DictSize)?)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|Error(?:s|Level)|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|ShellVarContext|Silent|StaticBkColor)|Show(?:(?:I|Uni)nstDetails|Window)|Silent(?:Un)?Install|Sleep|SpaceTexts|Str(?:CmpS?|Cpy|Len)|SubSection(?:End)?|Uninstall(?:ButtonText|(?:Sub)?Caption|EXEName|Icon|Text)|UninstPage|Var|VI(?:AddVersionKey|ProductVersion)|WindowIcon|Write(?:INIStr|Reg(:?Bin|DWORD|(?:Expand)?Str)|Uninstaller)|XPStyle)\ba  \b(CUR|END|(?:FILE_ATTRIBUTE_)?(?:ARCHIVE|HIDDEN|NORMAL|OFFLINE|READONLY|SYSTEM|TEMPORARY)|HK(CC|CR|CU|DD|LM|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_(?:CONFIG|USER)|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON[1-4]|ICON(?:EXCLAMATION|INFORMATION|QUESTION|STOP)|OK(?:CANCEL)?|RETRYCANCEL|RIGHT|SETFOREGROUND|TOPMOST|USERICON|YESNO(?:CANCEL)?)|SET|SHCTX|SW_(?:HIDE|SHOW(?:MAXIMIZED|MINIMIZED|NORMAL))|admin|all|auto|both|bottom|bzip2|checkbox|colored|current|false|force|hide|highest|if(?:diff|newer)|lastused|leave|left|listonly|lzma|nevershow|none|normal|off|on|pop|push|radiobuttons|right|show|silent|silentlog|smooth|textonly|top|true|try|user|zlib)\bz\!(addincludedir(?:dir)?|addplugindir|appendfile|cd|define|delfilefile|echo(?:message)?|else|endif|error|execute|if(?:macro)?n?(?:def)?|include|insertmacro|macro(?:end)?|packhdr|search(?:parse|replace)|system|tempfilesymbol|undef|verbose|warning)\bz\$(R?[0-9])as  \$(ADMINTOOLS|APPDATA|CDBURN_AREA|COOKIES|COMMONFILES(?:32|64)|DESKTOP|DOCUMENTS|EXE(?:DIR|FILE|PATH)|FAVORITES|FONTS|HISTORY|HWNDPARENT|INTERNET_CACHE|LOCALAPPDATA|MUSIC|NETHOOD|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES(?:32|64)|QUICKLAUNCH|RECENT|RESOURCES(?:_LOCALIZED)?|SENDTO|SM(?:PROGRAMS|STARTUP)|STARTMENU|SYSDIR|TEMP(?:LATES)?|VIDEOS|WINDIR|\{NSISDIR\})z#\$(CMDLINE|INSTDIR|OUTDIR|LANGUAGE)z\$[a-z_]\w*#popz\$(\\[nrt"]|\$)z[^"]+z[^`]+)rootr$   r"   r#   r   r!    N)'__name__
__module____qualname____firstlineno____doc__nameurlaliases	filenames	mimetypesre
IGNORECASEflagsr   r
   r   r   SingleDoubleBacktickr   r   Pseudor   	Attributer	   Function	Namespacer   Labelr   ConstantPreprocBuiltinVariableGlobalEscapetokens__static_attributes__r(       -lib/third_party/pygments/lexers/installers.pyr   r      s   
 D
(C$G'"IIMME hw
;<v}}%6==,/6??N3GJG#W^^4DNN+Z 
 5j':t}}EG3g''dmmDF (4::{"CD18<x K %J $K%%L& (,}}6_?
B $OO	-
 T\\001K \\ 4T]]5I5IJT]]+
 6==&)/Jv}}%	
 6==&)/Jv}}%	
OmFrF   r   c                   N   \ rS rSrSrSrS/rS/rS/rSr	S\
4\" S	5      /S
\	-   S-   \" \R                  \5      S4S\4S\4/S\R$                  4S
\	-   S-   \" \R                  \5      S4S\4S\4/S\R(                  S4S\R*                  4\" S5      S\R(                  4/\" S5      S\" \R,                  \\" \5      5      4S\R                  S4S\R                  S4S
\	-   S-   \" \R                  \5      4S\4\" S5      S\R6                  4S\R(                  S4S\4S\4/S\
R8                  4S\
R8                  4S\" \
R8                  \5      4/S\R:                  4S \R<                  4S!\R>                  4S"\R>                  R@                  4S#\RB                  4/S$.r"S%r#g&)'r      z1
For RPM ``.spec`` files.

.. versionadded:: 1.6
RPMSpecspecz*.specztext/x-rpm-speczS(?:package|prep|build|install|clean|check|pre[a-z]*|post[a-z]*|trigger[a-z]*|files)z#.*$r$   z^(%z)(.*)$r&   r%   .z\*.*$r   z/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})r#   r"   z(?i)^(Name|Version|Release|Epoch|Summary|Group|License|Packager|Vendor|Icon|URL|Distribution|Prefix|Patch[0-9]*|Source[0-9]*|Requires\(?[a-z]*\)?|[a-z]+Req|Obsoletes|Suggests|Provides|Conflicts|Build[a-z]+|[a-z]+Arch|Auto[a-z]+)(:)(.*)$z^%descriptiondescriptionz^%changelog	changelogzo%(attr|defattr|dir|doc(?:dir)?|setup|config(?:ure)?|make(?:install)|ghost|patch[0-9]+|find_lang|exclude|verify)r   stringz
%define.*$z%\{\!\?.*%define.*\}z+(%(?:if(?:n?arch)?|else(?:if)?|endif))(.*)$z%\{?__[a-z_]+\}?z'%\{?_([a-z_]+dir|[a-z_]+path|prefix)\}?z
%\{\?\w+\}z\$\{?RPM_[A-Z0-9_]+\}?z%\{[a-zA-Z]\w+\})r'   rM   rN   rO   r$   r"   r#   r(   N)$r)   r*   r+   r,   r-   r.   r0   r1   r2   _directivesr
   r   r   r   	Decoratorr	   r   r   
Subheadingr   r7   rC   Headingr   r   r   r   r6   r?   r;   r9   rA   rB   r>   rD   rE   r(   rF   rG   r   r      s)    DhG
I"#I5K
 gG

 k!H,dnnd+V5Z 4L	
 w))*k!H,dnnd+V5Z 4L
 6==&)?OJ6==!	
 G; goo{E$K@	B
 t~~}=T^^[9k!H,ht~~t.LML Jv}}%6==(+Z 4L#
( GOO,$goo6;goot,.
 !$--07HDMM*&(<(<= '"2"23
c8FrF   r   c            	       R   \ rS rSrSrSr/ SQrS/rS/rS\	4S\
4S	\" \\	5      S
4/S\
S4S\R                  4S\4S\R                   S4S\4S\	S4/S\R                   S4S\R                  4S\R                   4S\R                   4/S\
S4S\S4S\	4S\R$                  4/S.rS rSrg)r      zI
Lexer that highlights debian sources.list files.

.. versionadded:: 0.7
zDebian Sourcelist)
debsourcessourceslistsources.listrX   z application/x-debian-sourceslistr%   z#.*?$z^(deb(?:-src)?)(\s+)distributionr&   z
\$\(ARCH\)z[^\s$[]+z\[escaped-distributionz\$
componentsz\]z[^\]$]+z#pop:2$z\S+)r'   rY   rZ   r[   c                     U R                  5        HA  nUR                  5       nUR                  S5      (       d  UR                  S5      (       d  MA    g   g )Nzdeb zdeb-src T)
splitlinesstrip
startswith)textlines     rG   analyse_textSourcesListLexer.analyse_text  s>    OO%D::<Dv&&$//**E*E &rF   r(   N)r)   r*   r+   r,   r-   r.   r0   r1   mimetyper   r
   r   r   r   rA   r   Otherr	   r9   rD   rc   rE   r(   rF   rG   r   r      s    D;G I23H Z w$gz*N<
 w'DMM*&!FLL"89FOZ.
 FLL&)DMM*&FLL!	!
 w)4"Z W^^$	
+F:rF   r   c                   $   \ rS rSrSrSrSrSS/rS/rS\	S4S	\
" \	\5      S
4S\
" \	\5      S4S\
" \	\5      S4S\
" \	\\5      4S\
" \	\\5      4S\
" \	\\5      4S\
" \	\\5      4/S\R                   S4S\R                   4S\4S\S4S\4/S\
" \\\\R$                  5      4S\R                   4S\4\" S5      /S\
" \\\R*                  \5      4S\S4S\4S\4S \S4S!\4S"\R,                  4S#\R*                  4/S$\S4S%\
" \\\5      4/S&.rS'rg())r   i  za
Lexer for Debian ``control`` files and ``apt-cache show <pkg>`` outputs.

.. versionadded:: 0.9
zDebian Control filez>https://www.debian.org/doc/debian-policy/ch-controlfields.html
debcontrolcontrolz^(Description)rM   z^(Maintainer|Uploaders)(:\s*)
maintainerz1^((?:Build-|Pre-)?Depends(?:-Indep|-Arch)?)(:\s*)dependsz%^(Recommends|Suggests|Enhances)(:\s*)z"^((?:Python-)?Version)(:\s*)(\S+)$z"^((?:Installed-)?Size)(:\s*)(\S+)$z!^(MD5Sum|SHA1|SHA256)(:\s*)(\S+)$z ^([a-zA-Z\-0-9\.]*?)(:\s*)(.*?)$z<[^>]+>$r&   z<[^>]+>z,\n?z[^,<]+$z[^,<]+z(.*)(Homepage)(: )(\S+)z:.*\nz .*\nz(\$)(\{)(\w+\s*:\s*\w+)(\})z\(depend_versz\|z,\nz\nz[,\s]z[+.a-zA-Z0-9-]+z\[.*?\]z\)z([><=]+)(\s*)([^)]+))r'   rj   rM   rk   rl   r(   N)r)   r*   r+   r,   r-   r.   r/   r0   r1   r   r   r	   r   r   r   r   Strongr   Classr   r   Entityr;   rD   rE   r(   rF   rG   r   r     s   
 !D
JCY'GI 7-x/FAgt$i15x7N2gtV,.2gtV,.1gtV,.0gz624
$ '..&1(dOv&
 (dFD$**57w~~&tFO
 ,hdkk48:D-(HTND&!t/%

 D&!$hxv&FG
W/FrF   r   )r-   r3   pygments.lexerr   r   r   r   r   r   pygments.tokenr	   r
   r   r   r   r   r   r   r   r   __all__r   r   r   r   r(   rF   rG   <module>rs      sb    
 N N- - -!{
 {|G: GT-z -`: :rF   