3

V'ícøã@sVdZddlZddlmZmZmZmZmZmZm	Z	m
Z
mZmZddl
mZmZmZmZmZmZmZmZmZmZddlmZdddd	d
ddd
dddgZGdd„deƒZGdd
„d
eƒZGdd„deƒZGdd„deƒZGdd	„d	eƒZGdd„deƒZ Gdd„deƒZ!Gdd„deƒZ"Gdd„deƒZ#Gdd
„d
eƒZ$Gdd„deƒZ%Gdd„deƒZ&dS)zÉ
    pygments.lexers.shell
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for various shells.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
éN)
ÚLexerÚ
RegexLexerÚ
do_insertionsÚbygroupsÚincludeÚdefaultÚthisÚusingÚwordsÚline_re)
ÚPunctuationÚ
WhitespaceÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚGeneric)Úshebang_matchesÚ	BashLexerÚBashSessionLexerÚ	TcshLexerÚ
BatchLexerÚSlurmBashLexerÚMSDOSSessionLexerÚPowerShellLexerÚPowerShellSessionLexerÚTcshSessionLexerÚFishShellLexerÚ
ExeclineLexerc@säeZdZdZdZdddddgZdd	d
ddd
dddddddddddgZdddgZedƒde	j
dfedƒed ƒgd!ed"fd#ed$fd%e	jd&fd'e
jfd(e
jfd)efgd*eeeƒfd+e
jfd,ejfd-ejfd.e	jfd/ee
jeeƒfd0efd1efd2e	fd3efg
d4e	jfd5e	jd6fd7e	jfd8e	jfd9efd:efd;efd<efd=efd>efd?efgd5e	jd@fdAe	jfed ƒgdBe	jd@fdCefdDe
jfdEefdFefedGƒgdHed@fedGƒgdIed@fdJefdKefdLefdMefedGƒgde	j
d@fedGƒgdNœ	ZdOdP„ZdQS)RrzI
    Lexer for (ba|k|z|)sh shell scripts.

    .. versionadded:: 0.6
    ZBashÚbashÚshZkshÚzshÚshellz*.shz*.kshz*.bashz*.ebuildz*.eclassz*.exheres-0z*.exlibz*.zshz.bashrcZbashrcz.bash_*zbash_*Zzshrcz.zshrcz.kshrcZkshrcZPKGBUILDzapplication/x-shzapplication/x-shellscriptztext/x-shellscriptÚbasicú`Ú	backticksÚdataÚinterpz\$\(\(Úmathz\$\(Úparenz\$\{#?Úcurlyz\$[a-zA-Z_]\w*z\$(?:\d+|[#$?!_*@-])z\$zd\b(if|fi|else|while|in|do|done|for|then|return|function|case|select|continue|until|esac|elif)(\s*)\baM\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|declare|dirs|disown|echo|enable|eval|exec|exit|export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|shopt|source|suspend|test|time|times|trap|true|type|typeset|ulimit|umask|unalias|unset|wait)(?=[\s)`])z\A#!.+\nz#.*\nz\\[\w\W]z(\b\w+)(\s*)(\+?=)z[\[\]{}()=]z<<<z<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2z&&|\|\|z(?s)\$?"(\\.|[^"\\$])*"ú"Ústringz#(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'z	(?s)'.*?'ú;ú&z\|z\s+z\d+\bz[^=\s\[\]{}()$"\'`\\<&|;]+ú<z#popz (?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+z\}z:-z\w+z
[^}:"\'`$\\]+ú:Úrootz\)z\)\)z[-+*/%^|&]|\*\*|\|\|z\d+#\d+z	\d+#(?! )z\d+)	r4r*r&r)r/r-r,r+r(cCs t|dƒrdS|jdƒrdSdS)Nz	(ba|z|)shéz$ gš™™™™™É?)rÚ
startswith)Útext©r8ú9/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/shell.pyÚanalyse_textxs

zBashLexer.analyse_textN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesrrÚBacktickrÚInterpolrÚVariablerrr
ÚBuiltinrÚHashbangÚSingleÚEscaperÚDoublerrÚtokensr:r8r8r8r9rs|








c@s4eZdZdZdZddgZdgZgZdhZdd„Z	d	S)
rzI
    Lexer for (ba|k|z|)sh Slurm scripts.

    .. versionadded:: 2.4
    ZSlurmZslurmZsbatchz*.slZsrunccspxjtj||ƒD]Z\}}}|tkr:||jkr:|tj|fVq|tjkr\d|kr\|tj	|fVq|||fVqWdS)NZSBATCH)
rÚget_tokens_unprocessedrÚEXTRA_KEYWORDSrrFrrHrZPseudo)Úselfr7ÚindexÚtokenÚvaluer8r8r9rLŒsz%SlurmBashLexer.get_tokens_unprocessedN)
r;r<r=r>r?r@rArBrMrLr8r8r8r9rsc@s&eZdZdZdZejdƒZdd„ZdS)ÚShellSessionBaseLexerzC
    Base lexer for shell sessions.

    .. versionadded:: 2.1
    Fz^(\([^)]*\))(\s*)c	cs\|jf|jŽ}d}d}g}d}xþtj|ƒD]î}|jƒ}|jj|ƒ}	|	rª|	jdƒ}
|	jdƒ}|jt|ƒdt	j
j|
fgfƒ|rš|jt|ƒdt|fgfƒ||	j
ƒd…}|jj|ƒ}|r|sÈ|jƒ}|jt|ƒdt	j
|jdƒfgfƒ||jdƒ7}|jdƒ}q,|rn|j|jƒrZ|jt|ƒdt	j
|dt|jƒ…fgfƒ||t|jƒd…7}n||7}|jdƒ}q,|jrÆ|j|jƒrÆ|jt|ƒdt	j
|dt|jƒ…fgfƒ||t|jƒd…7}q,|r|j|ƒ}
x*t||
ƒD]\}}}||||fVqâW|jƒt	j|fVg}d}q,W|rXx0t||j|ƒƒD]\}}}||||fVq8WdS)NrÚFr5éz\
)Ú_innerLexerClsÚoptionsrÚfinditerÚgroupÚ_venvÚmatchÚappendÚlenrZPromptZ
VirtualEnvrÚendÚ_ps1rgxÚstartÚendswithr6Ú_ps2Ú_bare_continuationrLrZOutput)rNr7Z
innerlexerÚposZcurcodeZ
insertionsZbackslash_continuationrZÚlineZ
venv_matchÚvenvZvenv_whitespaceÚmÚtoksÚiÚtÚvr8r8r9rL sb







z,ShellSessionBaseLexer.get_tokens_unprocessedN)	r;r<r=r>rbÚreÚcompilerYrLr8r8r8r9rR–s
rRc@s>eZdZdZdZddgZddgZddgZeZ	e
jd	ƒZd
Z
dS)rz‰
    Lexer for Bash shell sessions, i.e. command lines, including a
    prompt, interspersed with output.

    .. versionadded:: 1.1
    zBash SessionÚconsolez
shell-sessionz*.sh-sessionz*.shell-sessionzapplication/x-shell-sessionzapplication/x-sh-sessionzk^((?:(?:\[.*?\])|(?:\(\S+\))?(?:| |sh\S*?|\w+\S+[@:]\S+(?:\s+\S+)?|\[\S+[@:][^\n]+\].+))\s*[$#%]\s*)(.*\n?)z> N)r;r<r=r>r?r@rArBrrUrkrlr^rar8r8r8r9rÞsc!@sÄeZdZdZdZddddgZddgZd	gZej	ej
BZd
ZdZ
dZd
ZdeefZdeeee
fZdee
efZdeZdee
efZdee
efZdeZdZdeefZdeeeeeeeeeeeefZdeee
fZdeee
fZde
efZde
efZde
eeefZeeeee
eeeeeeefdd„Zeeeeeeeefdd„Z ee
eeeefd d!„Z!eefd"d#„Z"eeee
eefd$d%„Z#eee
eeeeefd&d'„Z$ed(ƒe d(ƒe!d(ƒe"d(ƒe#d(ƒe$d(ƒed)ƒe d)ƒe!d)ƒe"d)ƒe#d)ƒe$d)ƒee%j&fd*ee'j(fgd+e'j)d,fee%j&fd-e'j(fd.ee'j)fe*d,ƒge+d/ƒd0e'j,fge+d/ƒd0e'j-fgd+e'j)d1fe+d/ƒd2ee
fe.fgd+e'j)d1fe+d/ƒd3ee%j&fgd4eefe/e0e1d5d6e2e0e1d5d6e3ƒd,fe+d7ƒgd8e3fd9eefe/e0e1d5d6e2ƒd,fd:ee.fe+d7ƒgd;eefe/e'j)e0e1d1d6e.e3ƒfd+e'j)dQfd=eefe/e0e1d>d6e.e3ƒfd?eefe/e0e1d@d6e.e3ƒfe+d<ƒgdAe4j5fe+d<ƒgdBeefe/e2e0e1d5d6e4j5ƒd,fdCeeefe/e2e0e1d5d6e0e1dDd6ƒd,fdEeeefe/e2e0e1d5d6ƒd,fdFeeeeefe/e0e1dGd6e6j7e0e1dGd6ƒd,fee0e1d5d6dRfgdIeeefe/e0e1d5d6e6e0e1d5d6ƒd,fdJeeeefe/e0e1d5d6e6j7e0e1d5d6ƒd,fgee0e1d5d6fdKe3dSfe*d,ƒgee0e1d5d6fdNee2d,fe*d,ƒgdOœZ8dPS)TrzQ
    Lexer for the DOS/Windows Batch file format.

    .. versionadded:: 0.7
    Z	BatchfileÚbatchZbatZdosbatchZwinbatchz*.batz*.cmdzapplication/x-dos-batchz\n\x1az&<>|z\t\v\f\r ,;=\xa0z
\s\x1a\xa0,;=z(?:(?:(?:\^[%s])?[%s])+)z%(?=(?:\^[%s]?)?[%s+./:[\\\]]|[%s%s(])z(?=\^?[%s]|[%s%s])z((?:(?<=^[^:])|^[^:]?)[%s]*)(:)z!(?:(?:[^%s%s+:^]|\^[%s]?[\w\W])*)z (?:(?:[^%s%s+:^)]|\^[%s]?[^)])*)z"(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)z(?:equ|geq|gtr|leq|lss|neq)z(?:"[^%s"]*(?:"|(?=[%s])))a(?:(?:%%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%%:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%%%s^]|\^[^%%%s])[^=%s]*=(?:[^%%%s^]|\^[^%%%s])*)?)?%%))|(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))z(?:(?:(?:\^[%s]?)?[^"%s%s])+)z(?:(?:(?:\^[%s]?)?[^"%s%s)])+)z(?:[%s]+|%s)z(?:[%s]+|(?:%s|%s|%s)+)c
1Cs¨d|||||rdndf}
d||f}d||f}d|}d}|rVd|}d|
}
d}|rdd	td
fnd|
|ftjfd|td
|f|ttddftd|ƒd|tfdtdfdtfd||
||rÄ|n|||fttttddƒd
|fd||
|||
fttttddƒd
|ft	dR|d>td
|fd?|ttttddtƒd@|fd@|tfdA|
||
fttttddtƒdSfdD|
||
fttttddtƒdTfdF|
tdUfdH||fttttddtƒdI|fdJ|
||
||
|fttttddtttddtttddƒdVfdM|
||	||r|n|ftjd
|fdN||fttttddtƒdO|fdP|||||||r`dnd||f	ttttddtttddttdQdtƒd
|ft
d
|ƒgS)WNz(?:%s|%s|[^"%%%s%s%s])*ú)rSz(?:(?:[^%s^]|\^[%s]?[\w\W])*)z(?:(?:[^%s^)]|\^[%s]?[^)])*)z((?:(?:\^[%s]?)?[^\S\n])*)z
(?:(?=\))|%s)z	/compoundz\)z#popz\)((?=\()|%s)%sz(?=%s)zfollow%sr7)Ústatez
redirect%sz[%s]+z\(z
root/compoundz@+zg((?:for|if|rem)(?:(?=(?:\^[%s]?)?/)|(?:(?!\^)|(?<=m))(?:(?=\()|%s)))(%s?%s?(?:\^[%s]?)?/(?:\^[%s]?)?\?)z)(goto%s)(%s(?:\^[%s]?)?/(?:\^[%s]?)?\?%s)ÚassocÚbreakÚcdÚchdirÚclsÚcolorÚcopyÚdateÚdelÚdirÚdpathÚechoÚendlocalÚeraseÚexitÚftypeÚkeysÚmdÚmkdirÚmklinkÚmoveÚpathÚpauseÚpopdÚpromptÚpushdÚrdÚrenÚrenameÚrmdirÚsetlocalÚshiftr_ÚtimeÚtitleÚtypeÚverÚverifyÚvol)Úsuffixz(call)(%s?)(:)zcall%sz(for%s(?!\^))(%s)(/f%s)úfor/fÚforz(for%s(?!\^))(%s)(/l%s)úfor/lzfor%s(?!\^)Úfor2z(goto%s)(%s?)(:?)zlabel%sz=(if(?:(?=\()|%s)(?!\^))(%s?)((?:/i%s)?)(%s?)((?:not%s)?)(%s?)ú(?Úifzrem(((?=\()|%s)%s?%s?.*|%s%s)z
(set%s)%s(/a)zarithmetic%szY(set%s)%s((?:/p)?)%s((?:(?:(?:\^[%s]?)?[^"%s%s^=%s]|\^[%s]?[^"=])+)?)((?:(?:\^[%s]?)?=)?)Úvariable)'rqrrrsrtrurvrwrxryrzr{r|r}r~rr€rr‚rƒr„r…r†r‡rˆr‰rŠr‹rŒrrŽrrr_r‘r’r“r”r•r–)r˜r™)ršr™)r›r™)rœr)rrrHrr	rrrrr
r)ÚcompoundÚ_core_tokenÚ_core_token_compoundÚ_keyword_terminatorÚ_nlÚ_punctÚ_stringÚ_spaceÚ_start_labelÚ_stokenÚ_token_terminatorÚ	_variableÚ_wsÚrestZrest_of_lineZrest_of_line_compoundZ	set_spacer—r8r8r9Ú_make_begin_states








zBatchLexer._make_begin_statec	Cs||rdnd}	g}
|r$|
jdtdfƒ|
d|||r4|n|ftttttjtjƒftd|	ƒd|tdfdtdftd	ƒg7}
|
S)
Nz	/compoundrSz(?=\))z#popz%s([%s]*)(%s)(.*)z
redirect%sz(?=[%s])z	\|\|?|&&?r7)	r[rrrrÚLabelrrHr)rŸÚ_labelÚ_label_compoundr£r¦r§Ú_tokenÚ_token_compoundr«r—rpr8r8r9Ú_make_follow_statens
zBatchLexer._make_follow_statec	Csˆd}g}|r|jdtdfƒ|dtjfdtjfdtjfdtfd|tfd	||||||||r^d
ndftt	dd
fdtdft
dƒg7}|S)Nz=+\-*/!~z(?=\))z#popz0[0-7]+z
0x[\da-f]+z\d+z[(),]+z([%s]|%%|\^\^)+z-(%s|%s|(\^[%s]?)?[^()%s%%\^"%s%s]|\^[%s]?%s)+z[^)]z[\w\W]rž)rpz(?=[\x00|&])Úfollow)r[rrÚOctZHexÚIntegerrrr	rr)	rŸr£r¤r¥rªr«Ú_nlwsÚoprpr8r8r9Ú_make_arithmetic_state‚s"
z!BatchLexer._make_arithmetic_statecCs@g}|r|jdtdfƒ|jd|r&|n|tttjƒdfƒ|S)Nz(?=\))z#popz(:?)(%s))r[rrrrr®)rŸr¯r°rpr8r8r9Ú_make_call_state˜szBatchLexer._make_call_statec
Csbg}|r|jdtdfƒ|jd|r&|n|||||r6dnd|||rDdndfttjtjƒdfƒ|S)Nz(?=\))z#popz)(%s?)((?:%s|%s|\^[%s]?%s|[^"%%^%s%s%s])*)z[^)]z[\w\W]rorS)r[rrrr®rrH)rŸr¯r°r£r¤r¥rªrpr8r8r9Ú_make_label_state¡szBatchLexer._make_label_statec	
	Cs\d||||f}	d||fttjtttjƒfd||||r<|	n|fttjtttddƒfgS)Nz(?:[%s]+|(?:%s|%s|%s)+)z&((?:(?<=[%s])\d)?)(>>?&|<&)([%s]*)(\d)z+((?:(?<=[%s])(?<!\^[%s])\d)?)(>>?|<)(%s?%s)r7)rp)rrr¶rrr	r)
rŸr¡r£r¤r¨r¥r¦rªr·Zstoken_compoundr8r8r9Ú_make_redirect_state®szBatchLexer._make_redirect_stateFTz%%%%|\^[%s]?(\^!|[\w\W])r.ú#popz\^!|%%z[^"%%^%s]+|[%%^]zvariable-or-escapez[^%]+|%r/z[^"%%^%s%s\d)]+|.z[^"%%^%s]+|.z(%s)(in)(%s)(\()r7)rpr´z\)z
(%s)(do%s)z[%s]+z(")((?:%s|[^"])*?")([%s]*)(\))r›z#('(?:%%%%|%s|[\w\W])*?')([%s]*)(\))Úsqstringz#(`(?:%%%%|%s|[\w\W])*?`)([%s]*)(\))Úbqstringz-?\d+z)((?:cmdextversion|errorlevel)%s)(%s)(\d+)z(defined%s)(%s)(%s)ržz(exist%s)(%s%s)z(%s%s)(%s)(%s%s)Ú
arithmeticÚif2z(%s?)(==)(%s?%s)z(%s)(%s)(%s%s)z\(úelse?ú
root/compoundzelse%s)r4r´rÀÚcallÚlabelÚredirectz
root/compoundzfollow/compoundzarithmetic/compoundz
call/compoundzlabel/compoundzredirect/compoundzvariable-or-escaper/r¾r¿r7ržr™r›zfor/fzfor/lrrÁz(?zelse?N)r½r›r/)r½rÁ)r½rÂrÃ)9r;r<r=r>r?r@rArBrkÚ	MULTILINEÚ
IGNORECASEÚflagsr£r¤r«r·r¦r¢r©r§r¯r°Z_numberZ_opwordr¥rªr r¡r±r²r¨r­r³r¹rºr»r¼rrErrIrJrrrHrCrrr	rrrrr¶rÚWordrKr8r8r8r9ròsüN













c@s4eZdZdZdZdgZgZgZeZ	e
jdƒZdZ
dS)rz‹
    Lexer for MS DOS shell sessions, i.e. command lines, including a
    prompt, interspersed with output.

    .. versionadded:: 2.1
    z
MSDOS SessionZdosconz^([^>]*>)(.*\n?)zMore? N)r;r<r=r>r?r@rArBrrUrkrlr^rar8r8r8r9r(s
c
@seZdZdZdZddgZddgZdgZedƒd	e	d
fde	dfd
e
jdfedƒgde	fdej
fdefde
jfdeejeeƒfdefde
fdefgde
jfde
jfdefdefdefdejfgde	dfd e	fd!ejfd"efd#efed$ƒgd%e	dfed$ƒgd
e
jdfed$ƒgd&œZd'S)(rz=
    Lexer for tcsh scripts.

    .. versionadded:: 0.10
    ZTcshZtcshZcshz*.tcshz*.cshzapplication/x-cshr&z\$\(r,z\$\{#?r-r'r(r)z]\b(if|endif|else|while|then|foreach|case|default|continue|goto|breaksw|end|switch|endsw)\s*\baù\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|glob|getspath|hashstat|history|hup|inlib|jobs|kill|limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|source|stop|suspend|source|suspend|telltc|time|umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|ver|wait|warp|watchlog|where|which)\s*\bz#.*z\\[\w\W]z(\b\w+)(\s*)(=)z[\[\]{}()=]+z<<\s*(\'?)\\?(\w+)[\w\W]+?\2r0z!(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"z!(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'z\s+z[^=\s\[\]{}()$"\'`\\;#]+z\d+(?= |\Z)z\$#?(\w+|.)z\}z#popz:-z\w+z[^}:"\'`$]+r3r4z\))r4r&r)r-r,r(N)r;r<r=r>r?r@rArBrrrrCrrFrrIrrErrrrJrHrrKr8r8r8r9r:sH
	

c@s4eZdZdZdZdgZgZgZeZ	e
jdƒZdZ
dS)rzƒ
    Lexer for Tcsh sessions, i.e. command lines, including a
    prompt, interspersed with output.

    .. versionadded:: 2.1
    zTcsh SessionZtcshconz^([^>]+>)(.*\n?)z? N)r;r<r=r>r?r@rArBrrUrkrlr^rar8r8r8r9r~s
c@sÐeZdZdZdZdddddgZdd	gZd
gZej	ej
BejBZdj
ƒZdj
ƒZd
j
ƒZdj
ƒZdj
ƒZdedfdefddjeƒeeejeƒfdefdejdfdejdfdejfdefdejdfdejfdejfd djeƒe fd!djeƒe!fd"djeƒej"fd#djeƒej"fd$ej#fd%efd&efd'efgd(ed)fe$d*ƒgd+ejfd,ejd)fd-djeƒejfd.ejfgd/ej%fd0ejfd1edfd2ejfd3ejfdejd)fgd4ejd)fd1edfd5ejfd6ejfgd7œZ&d8S)9rzA
    For Windows PowerShell code.

    .. versionadded:: 1.5
    Z
PowerShellZ
powershellZpwshZposhZps1Zpsm1z*.ps1z*.psm1ztext/x-powershella¾while validateset validaterange validatepattern validatelength validatecount until trap switch return ref process param parameter in if global: local: function foreach for finally filter end elseif else dynamicparam do default continue cmdletbinding break begin alias \? % #script #private #local #global mandatory parametersetname position valuefrompipeline valuefrompipelinebypropertyname valuefromremainingarguments helpmessage try catch throwaNand as band bnot bor bxor casesensitive ccontains ceq cge cgt cle clike clt cmatch cne cnotcontains cnotlike cnotmatch contains creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt imatch ine inotcontains inotlike inotmatch ireplace is isnot le like lt match ne not notcontains notlike notmatch or regex replace wildcardaÇwrite where watch wait use update unregister unpublish unprotect unlock uninstall undo unblock trace test tee take sync switch suspend submit stop step start split sort skip show set send select search scroll save revoke resume restore restart resolve resize reset request repair rename remove register redo receive read push publish protect pop ping out optimize open new move mount merge measure lock limit join invoke install initialize import hide group grant get format foreach find export expand exit enter enable edit dismount disconnect disable deny debug cxnew copy convertto convertfrom convert connect confirm compress complete compare close clear checkpoint block backup assert approve aggregate addaŒac asnp cat cd cfs chdir clc clear clhy cli clp cls clv cnsn compare copy cp cpi cpp curl cvpa dbp del diff dir dnsn ebp echo epal epcsv epsn erase etsn exsn fc fhx fl foreach ft fw gal gbp gc gci gcm gcs gdr ghy gi gjb gl gm gmo gp gps gpv group gsn gsnp gsv gu gv gwmi h history icm iex ihy ii ipal ipcsv ipmo ipsn irm ise iwmi iwr kill lp ls man md measure mi mount move mp mv nal ndr ni nmo npssc nsn nv ogv oh popd ps pushd pwd r rbp rcjb rcsn rd rdr ren ri rjb rm rmdir rmo rni rnp rp rsn rsnp rujb rv rvpa rwmi sajb sal saps sasv sbp sc select set shcm si sl sleep sls sort sp spjb spps spsv start sujb sv swmi tee trcm type wget where wjb writez§component description example externalhelp forwardhelpcategory forwardhelptargetname functionality inputs link notes outputs parameter remotehelprunspace role synopsisz\(Úchildz\s+z ^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)ú|z	#[^\n]*?$z	(&lt;|<)#Úmultlinez@"\nzheredoc-doublez@'\n.*?\n'@z	`[\'"$@-]r.r/z'([^']|'')*'z+(\$|@@|@)((global|script|private|env):)?\w+z(%s)\bz-(%s)\bz(%s)-[a-z_]\w*\bz(%s)\sz\[[a-z_\[][\w. `,\[\]]*\]z
-[a-z_]\w*z\w+z![.,;:@{}\[\]$()=+*/\\&%!~?^`|<>-]z\)z#popr4z[^#&.]+z	#(>|&gt;)z\.(%s)z[#&.]z`[0abfnrtv'\"$`]z[^$`"]+z\$\(z""z[`$]z\n"@z	[^@\n]+"]Ú.)r4rËrÍr/zheredoc-doubleN)'r;r<r=r>r?r@rArBrkÚDOTALLrÈrÇrÉÚsplitÚkeywordsÚ	operatorsZverbsZaliases_ZcommenthelprrÚjoinrrrZDocZ	MultilineZHeredocrJrHrrErrrFÚConstantrrIrKr8r8r8r9rs`	






c@s:eZdZdZdZddgZgZgZeZ	dZ
ejdƒZ
dZdS)	rz‰
    Lexer for PowerShell sessions, i.e. command lines, including a
    prompt, interspersed with output.

    .. versionadded:: 2.1
    zPowerShell Sessionzpwsh-sessionZps1conTz$^((?:\[[^]]+\]: )?PS[^>]*> ?)(.*\n?)z> N)r;r<r=r>r?r@rArBrrUrbrkrlr^rar8r8r8r9rs
c
@s2eZdZdZdZddgZddgZdgZedƒed	ƒed
ƒgde	dfd
e	dfde
jfgdee	e
ƒfde
jfdefdejfdee
jeeƒfdefdefgdejfdejdfdejfdejfdefdefde
fdefd e
fg	dejd!fd"ejfed
ƒgd#e	d!fed$ƒgd%e	d!fd&efd'efd(efd)efed$ƒgd*œZd+S),r zB
    Lexer for Fish shell scripts.

    .. versionadded:: 2.1
    ZFishÚfishZ	fishshellz*.fishz*.loadzapplication/x-fishr&r)r*z\$\(\(r+z\(r,z\$#?(\w+|.)z\b(begin|end|if|else|while|break|for|in|return|function|block|case|continue|switch|not|and|or|set|echo|exit|pwd|true|false|cd|count|test)(\s*)\baœ\b(alias|bg|bind|breakpoint|builtin|command|commandline|complete|contains|dirh|dirs|emit|eval|exec|fg|fish|fish_config|fish_indent|fish_pager|fish_prompt|fish_right_prompt|fish_update_completions|fishd|funced|funcsave|functions|help|history|isatty|jobs|math|mimedb|nextd|open|popd|prevd|psub|pushd|random|read|set_color|source|status|trap|type|ulimit|umask|vared|fc|getopts|hash|kill|printf|time|wait)\s*\b(?!\.)z#.*\nz\\[\w\W]z(\b\w+)(\s*)(=)z	[\[\]()=]z<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2z%(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"r.r/z#(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*'z	(?s)'.*?'r0z&|\||\^|<|>z\s+z\d+(?= |\Z)z[^=\s\[\]{}()$"\'`\\<&|;]+z#popz (?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+z\)r4z\)\)z[-+*/%^|&]|\*\*|\|\|z\d+#\d+z	\d+#(?! )z\d+)r4r*r&r)r/r,r+N)r;r<r=r>r?r@rArBrrrrErrrFrrrIr
rrJrHrrrKr8r8r8r9r sP



c	@sÐeZdZdZdZdgZdgZedƒedƒedƒgdej	dfd	e
jfd
efgde
j
fdejfd
ejfdefgdejfdejdfdefdefgdejdfdejfedƒgdej	dfde
jfedƒgdœZdd„ZdS)r!z~
    Lexer for Laurent Bercot's execline language
    (https://skarnet.org/software/execline).

    .. versionadded:: 2.7
    Zexeclinez*.execr&r)r*z\$\{r-z	\$[\w@#]+z\$a‹\b(background|backtick|cd|define|dollarat|elgetopt|elgetpositionals|elglob|emptyenv|envfile|exec|execlineb|exit|export|fdblock|fdclose|fdmove|fdreserve|fdswap|forbacktickx|foreground|forstdin|forx|getcwd|getpid|heredoc|homeof|if|ifelse|ifte|ifthenelse|importas|loopwhilex|multidefine|multisubstitute|pipeline|piperw|posix-cd|redirfd|runblock|shift|trap|tryexec|umask|unexport|wait|withstdinas)\bz\A#!.+\nz#.*\nz[{}]z(?s)"(\\.|[^"\\$])*"r.r/z\s+z[^\s{}$"\\]+z#popz(?s)(\\\\|\\.|[^"\\$])+z\}z[\w#@]+r4)r4r*r&r)r/r-cCst|dƒrdSdS)NZ	execlinebr5)r)r7r8r8r9r:”s
zExeclineLexer.analyse_textN)r;r<r=r>r?r@rArrrDrrErrFrrGrHrrJrKr:r8r8r8r9r!]s4



)'r>rkZpygments.lexerrrrrrrrr	r
rZpygments.tokenrr
rrrrrrrrZ
pygments.utilrÚ__all__rrrRrrrrrrrr r!r8r8r8r9Ú<module>	s,00fH8DrH