|erdZddlZddlmZmZmZmZmZmZm Z m Z m Z m Z ddl mZmZmZmZmZmZmZmZmZmZddlmZgdZGddeZGd d eZGd d eZGd deZGddeZGddeZ GddeZ!GddeZ"GddeZ#GddeZ$GddeZ%GddeZ&y)z pygments.lexers.shell ~~~~~~~~~~~~~~~~~~~~~ Lexers for various shells. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) Lexer RegexLexer do_insertionsbygroupsincludedefaultthisusingwordsline_re) Punctuation WhitespaceTextCommentOperatorKeywordNameStringNumberGenericshebang_matches) BashLexerBashSessionLexer TcshLexer BatchLexerSlurmBashLexerMSDOSSessionLexerPowerShellLexerPowerShellSessionLexerTcshSessionLexerFishShellLexer ExeclineLexercpeZdZdZdZgdZgdZgdZedde jdfed ed gd e d fd e dfde jdfde jfde jfdefgdee efde j$fdej(fdej*fde j,fdee jeefdefdefde fdefg de j0fde j0d fd!e j*fd"e j*fd#efd$efd%efd&efd'efd(efd)efg de j0d*fd+e j0fed gd,e jd*fd-e fd.e jfd/efd0efed1gd2e d*fed1gd3e d*fd4efd5efd6efd7efd8efd9e jfed1gde jd*fed1gd: Zd;Zy<)=rzI Lexer for (ba|k|z|)sh shell scripts. .. versionadded:: 0.6 Bash)bashshkshzshshell)z*.shz*.kshz*.bashz*.ebuildz*.eclassz *.exheres-0z*.exlibz*.zshz.bashrcbashrcz.bash_*zbash_*zshrcz.zshrcz.kshrckshrcPKGBUILD)zapplication/x-shzapplication/x-shellscriptztext/x-shellscriptbasic` backticksdatainterp\$\(\(math\$\(paren\$\{#?curlyz\$[a-zA-Z_]\w*z\$(?:\d+|[#$?!_*@-])\$zj\b(if|fi|else|while|in|do|done|for|then|return|function|case|select|break|continue|until|esac|elif)(\s*)\baG\b(alias|bg|bind|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)`])\A#!.+\n#.*\n\\[\w\W]z(\b\w+)(\s*)(\+?=)z [\[\]{}()=]z<<<<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2z&&|\|\|z(?s)\$?"(\\.|[^"\\$])*""string#(?s)\$'(\\\\|\\[0-7]+|\\.|[^'\\])*' (?s)'.*?';&z\|\s+z\d+\b[^=\s\[\]{}()$"\'`\\<&|;]+<#pop (?s)(\\\\|\\[0-7]+|\\.|[^"\\$])+\}:-\w+z [^}:"\'`$\\]+:root\)\)\)z\*\*|\|\||<<|>>|[-+*/%^|&<>]z\d+#[\da-zA-Z]+ \d+#(?! )z0[xX][\da-fA-F]+\d+z [a-zA-Z_]\w*) rNr3r/r2r@r9r7r5r1cBt|dry|jdryy)Nz (ba|z|)shz$ g?)r startswithtexts 7/usr/lib/python3/dist-packages/pygments/lexers/shell.py analyse_textzBashLexer.analyse_textzs# 4 . ??4  !N)__name__ __module__ __qualname____doc__namealiases filenames mimetypesrrBacktickrInterpolrVariablerrrBuiltinrHashbangSingleEscaperDoubler rtokensrYrZrXrrs D3GI XI G  6??K 0 FO H    ( gw '  1  . $dmm 4 DM  > gz * ,; \\  '** + w~~ & &-- ( "HT]]J$Q R X & X  . 7  "% *( 7 6==( + 3V]] C 6== ) ;  ;  K Z v  *D 1 4L  6==& ) 0&-- @ H  FOOV , G  T]] # { + ;  FO  GV $ FO gv & ,h 7  ( 6 " & ) V  dmm , FO  6??F + FO WOFbrZrc2eZdZdZdZddgZdgZgZdhZdZ y) rzI Lexer for (ba|k|z|)sh Slurm scripts. .. versionadded:: 2.4 Slurmslurmsbatchz*.slsrunc#Ktj||D]e\}}}|tur$||jvr|tj |f3|t jurd|vr|tj|f_|||fgyw)NSBATCH) rget_tokens_unprocessedrEXTRA_KEYWORDSrrfrrhrPseudo)selfrWindextokenvalues rXrtz%SlurmBashLexer.get_tokens_unprocesseds#,#C#CD$#O * E5%}$*=*=!=T\\500'..(X->W^^U22UE))  *sBBN) r[r\r]r^r_r`rarbrurtrlrZrXrrs0 D!GIIXN*rZrc>eZdZdZdZej dZdZy)ShellSessionBaseLexerzC Base lexer for shell sessions. .. versionadded:: 2.1 Fz^(\([^)]*\))(\s*)c #K|jdi|j}d}d}g}d}tj|D]}|j }|j j |} | r| j d} | j d} |jt|dtjj| fgf| r$|jt|dt| fgf|| jd}|jj |} | rv|s|j}|jt|dtj| j dfgf|| j dz }|j!d}W|r|j#|j$r`|jt|dtj|dt|j$fgf||t|j$dz }n||z }|j!d}|j&r||j#|j$ra|jt|dtj|dt|j$fgf||t|j$dz }t|r0|j)|} t+|| D]\}}}||z||f|jtj,|fg}d}|r/t+||j)|D]\}}}||z||fyyw)NrFrTz\ rl)_innerLexerClsoptionsr finditergroup_venvmatchappendlenrPrompt VirtualEnvrend_ps1rgxstartendswithrU_ps2_bare_continuationrtrOutput)rwrW innerlexerposcurcode insertionsbackslash_continuationrline venv_matchvenvvenv_whitespacemtoksitvs rXrtz,ShellSessionBaseLexer.get_tokens_unprocesseds!(T((84<<8  !&%%d+/ E;;=D))$/J!''*","2"21"5!!3w<%&(A(A4$H#I#KL"%%s7|)*D/(B'C'EFJNN,-. ""4(A"++-C!!3w<%& $C#D#FG1771:%)0)9)9&)A&'??499-%%s7|)*GNN)-os499~)>)@(A'BCtC NO44GtOG)0)9)9&)A&((T__TYY-G!!3w<%&%)/3tyy>%:%<$=#>?4DII00%<N) r[r\r]r^rrecompilerrtrlrZrXr|r|s%  BJJ+ ,E;"rZr|cXeZdZdZdZddgZddgZddgZeZ e jd Z d Z y ) rz Lexer for Bash shell sessions, i.e. command lines, including a prompt, interspersed with output. .. versionadded:: 1.1 z Bash Sessionconsolez 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?)> N)r[r\r]r^r_r`rarbrrrrrrrlrZrXrrsO D/*G!23I.0JKINbjj 67G DrZrceZdZdZdZgdZddgZdgZejejzZ dZ dZ d Zd Zd e d ed Zde dede e dZdede e dZdezZdee de dZdee de dZdezZdZde de dZd e d!e d"e d#e d$e d"e d%e d&e d'e d#e d(e d'e d)Zd e d*ee d Zd e d*ee d+Zd,e d-ed.Zd,e d-ed.Zd,e d/ed0ed0ed1 Zeeee e eeeeeeef d2Zeee eeeeefd3Z e e eeeefd4Z!eefd5Z"eee e eefd6Z#ee e eeeeefd7Z$id8ed9d:e d9d;e!d9d<e"d9d=e#d9d>e$d9d?ed@dAe d@dBe!d@dCe"d@dDe#d@dEe$d@dFee%jLfdGe ze'jPfgdHdIe'jRdJfee%jLfdKe'jPfdLe ze'jRfe*dJgdMe+dFdNe'jXfgdOe+dFdNe'jZfgdPdIe'jRdHfe+dFdQee dRe.fgdIe'jRdHfe+dFdSe ze%jLfgdTedUedVe/e0e1dPWe2e0e1dPWe3dJfe+d:gdXe3fdTedYed.e/e0e1dPWe2dJfdZe ze.fe+d:gd[ed\ed]e/e'jRe0e1dHWe.e3fdIe'jRd^fd_ed`ed]e/e0e1dMWe.e3fdaedbed]e/e0e1dOWe.e3fe+dcgdde4jjfe+dcgdeedfedge/e2e0e1dPWe4jjdJfdhedfedfed.e/e2e0e1dPWe0e1diWdJfdjedfeed.e/e2e0e1dPWdJfdTeedfedfeed. e/e0e1d;We6jne0e1d;WdJfee0e1dPWdkfgdTedledmed.e/e0e1dPWe6e0e1dPWdJfdTedfedfeed.e/e0e1dPWe6jne0e1dPWdJfgee0e1dPWfdne3dofe*dJgee0e1dPWfdpeze2dJfe*dJgdq Z8yr)srzQ Lexer for the DOS/Windows Batch file format. .. versionadded:: 0.7 Batchfile)batchbatdosbatchwinbatchz*.batz*.cmdzapplication/x-dos-batchz\n\x1az&<>|z\t\v\f\r ,;=\xa0z \s\x1a\xa0,;=z (?:(?:(?:\^[z])?[z])+)z (?=(?:\^[z]?)?[z +./:[\\\]]|[z(])z(?=\^?[z]|[z])z((?:(?<=^[^:])|^[^:]?)[%s]*)(:)(?:(?:[^z+:^]|\^[ ]?[\w\W])*)z +:^)]|\^[ ]?[^)])*)z"(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)z(?:equ|geq|gtr|leq|lss|neq)z(?:"[^z "]*(?:"|(?=[z])))z-(?:(?:%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|[^%:z+]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%z^]|\^[^%z])[^=z ]*=(?:[^%z])*)?)?%))|(?:\^?![^!:z+]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^!z^]|\^[^!z ]*=(?:[^!z ])*)?)?\^?!))]?)?[^"z)])+)(?:[z]+|)]+|(?:|)+)c %Xd|d| d|||rdndd } d|d|d }d|d |d }d |z}d}|r d |z}d | z} d}|r dtdfnd| d|tjfd|ztd|zf|t t dft d|zd|ztfdtdfdtfd|d| d|d|r|n|d|d |d! ttt t dd|zfd"|d#| d$|d |d%| d ttt t dd|zftd&|'td|zfd(|zttt t dtd)|zfd)|ztfd*| d+|d,| dttt t dtd-fd*| d+|d.| dttt t dtd/fd0| ztd1fd"|d#|d2ttt t dtd3|zfd4| d5|d6| d7|d8| d7|d9 ttt t dtt t dtt t dd:fd;| d|d| d<||r|n|d tjd|zfd=|d|d>ttt t dtd?|zfd=|d|d@|dA|dB||dC|rdnddD|dE|dFttt t dtt t dt t dGtd|zftd|zgS)HNz(?:rz|[^"%rr~z])*rz^]|\^[rz^)]|\^[rz((?:(?:\^[%s]?)?[^\S\n])*)z (?:(?=\))|%s) /compoundrOrHz \)((?=\()|z(?=%s)zfollow%srWstate redirect%s[%s]+\( root/compoundz@+z((?:for|if|rem)(?:(?=(?:\^[z"]?)?/)|(?:(?!\^)|(?<=m))(?:(?=\()|z)))(?z?(?:\^[z ]?)?/(?:\^[z]?)?\?)z(goto)(z(?:\^[z]?)?\?)'assocbreakcdchdirclscolorcopydatedeldirdpathechoendlocaleraseexitftypekeysmdmkdirmklinkmovepathpausepopdpromptpushdrdrenrenamermdirsetlocalshiftrtimetitletypeververifyvol)suffixz(call)(%s?)(:)zcall%sz(forz(?!\^))(z)(/f)for/fforz)(/l)for/lrz for%s(?!\^))for2rz?)(:?)zlabel%sz (if(?:(?=\()|z )(?!\^))(z?)((?:/iz)?)(z ?)((?:notz?))(?ifz rem(((?=\()|z?.*|z(setz(/a)z arithmetic%sz ((?:/p)?)z ((?:(?:(?:\^[rz^=]|\^[z]?[^"=])+)?)((?:(?:\^[z]?)?=)?)variable) r rrhrr r rrrr r)compound _core_token_core_token_compound_keyword_terminator_nl_punct_string_space _start_label_stoken_token_terminator _variable_wsrest rest_of_linerest_of_line_compound set_spacers rX_make_begin_statezBatchLexer._make_begin_statesP-4YV3;C,CE;>D CF L1C7  "25H"H  03D D  F-5e[& )X$5|Dnn  %tZ&-@ A U4v. / L6) * ^T " K 1 K $f&."K?cKguT8 9 &  ""4c49 guT8 9 &  "= . / 18f9L  N ' guT8+ F   , ,g 6):< guT8' B    ):< guT8' B  / // J%8& A guT8+ F   ! ):F)guT8'D/D/12>  @ 2E'/#\AC^^Z&0 2"5i @ guT8' B f $ & "9ic6c2%sC1guT8'D/t:1N!#&  " J' (AA A rZc 2|rdnd} g} |r| jdtdf| |d|d|r|n|dtttttj t jftd| zd |ztdfd tdftd gz } | S) Nrr~(?=\))rHz([z]*)(z)(.*)rz(?=[%s])z \|\|?|&&?rW) rrrr rLabelrrhr) r_label_label_compoundrrr_token_token_compoundrrrs rX_make_follow_statezBatchLexer._make_follow_stateps !)b  LL)T62 3 CH&!HJ dKtzz7>> J L L6) * 3 f - ; / FO   rZcTd}g}|r|jdtdf|dtjfdtjfdtj fdt fd|ztfd |d |d |d |d ||d|d|rdnddttdfdtdftdgz }|S)Nz=+\-*/!~rrHz0[0-7]+z 0x[\da-f]+rRz[(),]+z([%s]|%%|\^\^)+(rz|(\^[z]?)?[^()z%\^"r]?[^)][\w\W]z)+rrz (?=[\x00|&])follow) rrrOctHexIntegerr rr r r) rrrrrr_nlwsoprs rX_make_arithmetic_statez!BatchLexer._make_arithmetic_states  LL)T62 3  $ FJJ ' V^^ $  $ " $h /y#r5&%!gy024z * ,dF + H    rZcg}|r|jdtdf|jd|r|n|ztttj df|S)NrrHz(:?)(%s))rrrr rr)rrrrs rX_make_call_statezBatchLexer._make_call_statesP  LL)T62 3 k_fM{DJJ7A B rZcg}|r|jdtdf|jd|r|n|d|d|d|d|rdnd d |||rd nd d ttjt j df|S)NrrHrz?)((?:rz|\^[rr r z|[^"%^rr~z])*))rrrrrrrh)rrrrrrrrs rX_make_label_statezBatchLexer._make_label_states|  LL)T62 3 *2> #(w 'I3xtR79tzz7>>:F D E  rZc d|d|d|d|d } d|d|dttjtttjfd|d|d |d |r| n|d ttjtt t d fgS)Nrrrrz ((?:(?<=[z])\d)?)(>>?&|<&)([z]*)(\d)z ])(?>?|<)(rrrWr)rrrr rr r ) rrrrrrrrrstoken_compounds rX_make_redirect_statezBatchLexer._make_redirect_states} #GY8LNU fnnk4 H JS&X/7"JL fnnk5V3L M O   rZrNFr  arithmeticcalllabelredirectrTzfollow/compoundzarithmetic/compoundz call/compoundzlabel/compoundzredirect/compoundzvariable-or-escapez%%%%|\^[%s]?(\^!|[\w\W])r@r?rHz\^!|%%z[^"%%^%s]+|[%%^]sqstringz[^%]+|%bqstringrWz[^"%^z\d)]+|.z [^"%%^%s]+|.rz)(in)(z)(\()rrOz)(dorz(")((?:z |[^"])*?")([z]*)(\)))rHrr@z('(?:%%|z|[\w\W])*?')([z(`(?:%%|z|[\w\W])*?`)([rz-?\d+z((?:cmdextversion|errorlevel)rz)(\d+)z(definedrz(exist)rHif2z?)(==)(rr)rHelse?rzelse%s) rrrrrrrrr N)9r[r\r]r^r_r`rarbr MULTILINE IGNORECASEflagsrrrrrrrrrr_number_opwordrrrrrrrrrrrrrrrerrirjrrrhrcrrr r rr rrrWordrkrlrZrXrrs D6G'"I*+I LL2== (E C F C E,/ 5Fc6314fcB5;L5:FC HF=BFCPO36GGG,G/2C8G sCc3S#sC NI 7:5&IK@CUFS & 4F)/1EFOK9G1 g"  6==& )  &  & 3 & 6 FO  #g0  ( )  ' 1g8  ( )  ) 9g@  6==( + ( )%*F 3T : AgL6==( + ( ) s "DMM 2 %+F 3 eD/D/>?E G H   K $&7 8 eD/ 96 C ^T " H   3$5fg F guT8 96 C$+VWfg N eD 5x}}D 578> @eD/ A %+FG < eD/D/128 :#)'67 C eD/D/128 :  U4v. / K!C D FO U4v. / * *GV < FO EgFrZrcNeZdZdZdZdgZgZgZeZ e jdZ dZ y)rz Lexer for MS DOS shell sessions, i.e. command lines, including a prompt, interspersed with output. .. versionadded:: 2.1 z MSDOS Sessiondosconz^([^>]*>)(.*\n?)zMore? N)r[r\r]r^r_r`rarbrrrrrrrlrZrXrr*s: DjGIINbjj,-G DrZrc eZdZdZdZddgZddgZdgZedd e d fd e d fd e jdfedgde fde jfdefde jfdee j"eefdefde fdefgde j*fde j,fdefdefdefde j"fgde dfd e fd!e j"fd"efd#efed$gd%e dfed$gd e jdfed$gd&Zy')(rz= Lexer for tcsh scripts. .. versionadded:: 0.10 Tcshtcshcshz*.tcshz*.cshzapplication/x-cshr/r6r7r8r9r0r1r2zc\b(if|endif|else|while|then|foreach|case|default|break|continue|goto|breaksw|end|switch|endsw)\s*\ba\b(alias|alloc|bg|bindkey|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#.*r=(\b\w+)(\s*)(=)z [\[\]{}()=]+z<<\s*(\'?)\\?(\w+)[\w\W]+?\2rCz!(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"z!(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'rEz[^=\s\[\]{}()$"\'`\\;#]+ \d+(?= |\Z) \$#?(\w+|.)rJrHrKrLz [^}:"\'`$]+rMrNrO)rNr/r2r9r7r1N)r[r\r]r^r_r`rarbrrrrcrrfrrirrerrr rjrhrrkrlrZrXrr<s DuoG7#I$%I G  gw '  ) 6??K 0 FO  C  9\\ W  &-- ( $--x!H I h ' ,f 5 ; ' ,26== A 16== A TN ($ / V $ T]] +  GV $ G  T]] # [ ) ;  FO  GV $ FO 6??F + FO c5FrZrcNeZdZdZdZdgZgZgZeZ e jdZ dZ y)r!z Lexer for Tcsh sessions, i.e. command lines, including a prompt, interspersed with output. .. versionadded:: 2.1 z Tcsh Sessiontcshconz^([^>]+>)(.*\n?)z? N)r[r\r]r^r_r`rarbrrrrrrrlrZrXr!r!s: DkGIINbjj,-G DrZr!ceZdZdZdZgdZddgZdgZejejzejzZ djZdjZd jZd jZd jZd ed fdefddj+ezeeej2efdefdej4dfdej6dfdej6fdefdej8dfdej:fdej>fddj+eze fddj+eze!fddj+ezejDfddj+ezejDfd ejFfd!efd"efd#efgd$ed%fe$d&gd'ej4fd(ej4d%fd)dj+ezej2fd*ej4fgd+ejJfd,ej8fd-ed fd.ej8fd/ej8fdej8d%fgd0ej6d%fd-ed fd1ej6fd2ej6fgd3Z&y4)5rzA For Windows PowerShell code. .. versionadded:: 1.5 PowerShell) powershellpwshposhps1psm1z*.ps1z*.psm1ztext/x-powershellawhile 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 wildcardawrite 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 addaac 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 writezcomponent description example externalhelp forwardhelpcategory forwardhelptargetname functionality inputs link notes outputs parameter remotehelprunspace role synopsisrchildrEz ^(\s*#[#\s]*)(\.(?:%s))([^\n]*$)rz #[^\n]*?$z (<|<)#multlinez@"\nheredoc-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*rLz![.,;:@{}\[\]$()=+*/\\&%!~?^`|<>-]rOrHrNz[^#&.]+z #(>|>)z\.(%s)z[#&.]z`[0abfnrtv'\"$`]z[^$`"]+r6z""z[`$]z\n"@z [^@\n]+"].)rNr9r:r@r;N)'r[r\r]r^r_r`rarbrDOTALLr"r!r#splitkeywords operatorsverbsaliases_ commenthelpr rjoinrrrDoc MultilineHeredocrjrhrrerrrfConstantrrirkrlrZrXrrs D;G(#I$%I II % 4E B DI57   EG  EGLeg  )+0%'  CDIEGK ) TN 0388K3H H gvzz7 3 5 7 # 7,,j 9 fnn&6 7 V^^ , ; ' 6==( + fmm , ; ]]  (+ +W 5 #((9- -x 8 388E? 2DLL A (+ +T\\ : )4== 9 D ! TN 1; ?1 6K ( FO ** + 7,,f 5 +. . ; w(( )  !&-- 0  ' k7 + FMM " fmm $ 6==& )  fnnf - k7 + 6>> * 6>> "  [3FrZrcTeZdZdZdZddgZgZgZeZ dZ e jdZ dZy) r z Lexer for PowerShell sessions, i.e. command lines, including a prompt, interspersed with output. .. versionadded:: 2.1 zPowerShell Sessionz pwsh-sessionps1conTz$^((?:\[[^]]+\]: )?PS[^>]*> ?)(.*\n?)rN)r[r\r]r^r_r`rarbrrrrrrrrlrZrXr r sC Dx(GII$Nbjj@AG DrZr c&eZdZdZdZddgZddgZdgZeded ed gd e d fd e dfde jfgde e e fde jfdefdej"fde e jeefdefdefgdej(fdej(dfdej*fdej*fdefdefde fdefd e fg dej(d!fd"ej(fed gd#e d!fed$gd%e d!fd&efd'efd(efd)efed$gd*Zy+),r"zB Lexer for Fish shell scripts. .. versionadded:: 2.1 Fishfish fishshellz*.fishz*.loadzapplication/x-fishr/r2r3r4r5rr7r/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(?!\.)r<r=r-z [\[\]()=]r>z%(?s)\$?"(\\\\|\\[0-7]+|\\.|[^"\\$])*"r?r@rArBrCz &|\||\^|<|>rEr.rFrHrIrOrNrPz[-+*/%^|&]|\*\*|\|\|z\d+#\d+rQrR)rNr3r/r2r@r7r5N)r[r\r]r^r_r`rarbrrrrerrrfrrrirrrjrhr rrkrlrZrXr"r"s D{#G8$I%&I G  FO H   ( GW % T]] + &gt $ &N\\ w  &-- ( $--X!N O 8 $ . 7# (6v}} E 6==( + 3V]] C 6== ) ;  X & TN V $ *D 1  6==& ) 0&-- @ H  GV $ FO gv & $h /  6 " V  FO  e:FrZr"c eZdZdZdZdgZdgZedededgdejdfd e jfd e fgd e jfd ejfd ej fdefgdej$fdej$dfde fde fgdej$dfdej$fedgdejdfde jfedgdZdZy)r#z~ Lexer for Laurent Bercot's execline language (https://skarnet.org/software/execline). .. versionadded:: 2.7 execlinez*.execr/r2r3z\$\{r9z \$[\w@#]+r: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)\br;r<z[{}]z(?s)"(\\.|[^"\\$])*"r?r@rEz [^\s{}$"\\]+rHz(?s)(\\\\|\\.|[^"\\$])+rJz[\w#@]+rN)rNr3r/r2r@r9ct|dryy)N execlinebrTrrVs rXrYzExeclineLexer.analyse_texts 4 . /rZN)r[r\r]r^r_r`rarrrdrrerrfrrgrhrrjrkrYrlrZrXr#r#_s- DlG I G  FO H  foow / 4== ) DM !%  .'** + w~~ & h   %fmm 4 6==( + TN d #  6==& ) ' 7 H  FOOV ,  ' FO G)FVrZr#)'r^rpygments.lexerrrrrrrr r r r pygments.tokenr rrrrrrrrr pygments.utilr__all__rrr|rrrrr!rr r"r#rlrZrXrWs 222DDD)  e eP*Y*.E"EE"P,(ssl -$A AH,$ojod2&FZFP9J9rZ