YBFjdZddlZddlmZmZmZmZmZmZm Z m Z ddl m Z m Z mZmZmZmZmZmZmZmZmZmZddlmZddlmZgdZGdd eZGd d eZGd d eZGddeZ GddeZ!dZ"GddeZ#GddeZ$GddeZ%GddeZ&GddeZ'GddeZ(Gdd eZ)Gd!d"eZ*Gd#d$eZ+Gd%d&eZ,Gd'd(eZ-Gd)d*eZ.Gd+d,eZ/Gd-d.eZ0Gd/d0eZ1Gd1d2eZ2Gd3d4eZ3dS)5z pygments.lexers.configs ~~~~~~~~~~~~~~~~~~~~~~~ Lexers for configuration file formats. :copyright: Copyright 2006-present by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N)ExtendedRegexLexer RegexLexerdefaultwordsbygroupsincludeusingline_re) TextCommentOperatorKeywordNameStringNumber Punctuation WhitespaceLiteralErrorGeneric) BashLexer) JsonLexer)IniLexer SystemdLexer DesktopLexer RegeditLexerPropertiesLexer KconfigLexerCfengine3LexerApacheConfLexerSquidConfLexerNginxConfLexerLighttpdConfLexer DockerLexerTerraformLexer TermcapLexer TerminfoLexerPkgConfigLexerPacmanConfLexer AugeasLexer TOMLLexerNestedTextLexerSingularityLexerUnixConfigLexercpeZdZdZdZgdZgdZddgZdZdZ d e fd e j fd e ee fd e eje ee ed fde eje ee eee dfde eje ee efdejfgde eee dfd e j fdedfgd e fde e eee fdedfgdZdZdS)rz5 Lexer for configuration files in INI style. INI)inicfgdosini)z*.iniz*.cfgz*.infz .editorconfigz text/x-iniztext/infz&https://en.wikipedia.org/wiki/INI_file\s+[;#].*z(\[.*?\])([ \t]*)$z!(.*?)([ \t]*)([=:])([ \t]*)(["']) quoted_valuez.(.*?)([ \t]*)([=:])([ \t]*)([^;#\n]*)(\\)(\s+)valuez6(.*?)([ \t]*)([=:])([ \t]*)([^ ;#\n]*(?: +[^ ;#\n]+)*)z(.+?)$z([^"'\n]*)(["'])(\s*)#pop$z(\s*)(.*)(\\)([ \t]*)z.*$)rootr7r8cz|d}|dkrdS|ddkr||dz dkrdSdS) N Fr[]g?)find)textnposs EC:\PYTHON\_runtimes\venv\Lib\site-packages\pygments/lexers/configs.py analyse_textzIniLexer.analyse_textIsHyy !885 7c>>d46lc113uN)__name__ __module__ __qualname____doc__namealiases filenames mimetypesurl version_addedrr Singlerrr Attributer rr tokensrFrGrErrs D&&&GIz*I 2CMZ  ' "HHWj$A$A B 5 Xdnj(J O O  ? Xdnj(JJ((  G Xdnj(J O O Q ' "* Xffj 1 16 ;  ' 66 "  Z % Xj&$ ; ; = VV $  /F>rGrceZdZdZdZdZdgZdgZdgZdZ dd e fd e e j e fd e ee fd e ejeje ee ee fgiZd ZdS)rz# Lexer for .desktop files. z Desktop filezXhttps://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.htmldesktopz *.desktopzapplication/x-desktop2.16r; ^[ \t]*\nz ^(#.*)(\n)(\[[^\]\n]+\])(\n)zG([-A-Za-z0-9]+)(\[[^\] \t=]+\])?([ \t]*)(=)([ \t]*)([^\n]*)([ \t\n]*\n)c|drdStjd|ddtjdSdS)Nz[Desktop Entry]?z^\[Desktop Entry\][ \t]*$? startswithresearch MULTILINErCs rErFzDesktopLexer.analyse_texthsE ??, - - 3 914:r| L L X3srGN)rHrIrJrKrLrPrMrNrOrQrrr rRrrrS Namespacer rrTrFrUrGrErrRs D dCkG I()IM  : & HHW^Z@@ A "HHWj$A$A B W Xdndnj(JX^`j k k m  FrGrc <eZdZdZdZdZdgZgdZdZde fde e j e fd e e e fd e eje ee eee d fd e eje ee ee fgde e j e fd e e eee fde e ee dfgdZdZdS)rz' Lexer for systemd unit files. SystemdzDhttps://www.freedesktop.org/software/systemd/man/systemd.syntax.htmlsystemd) z *.servicez*.socketz*.devicez*.mountz *.automountz*.swapz*.targetz*.pathz*.timerz*.slicez*.scoperXrYz ^([;#].*)(\n)rZz*([^=]+)([ \t]*)(=)([ \t]*)([^\n]*)(\\)(\n)r8z&([^=]+)([ \t]*)(=)([ \t]*)([^\n]*)(\n)z([ \t]*)([^\n]*)(\\)(\n)z([ \t]*)([^\n]*)(\n)r9r;r8c|drdStjd|ddtjdSdS)Nz[Unit]r\z^\[Unit\][ \t]*$r]r^r_r`res rErFzSystemdLexer.analyse_textsD ??8 $ $ 3 9($tt*bl C C O3srGN)rHrIrJrKrLrPrMrNrQrrr rRrrrSr rr rTrFrUrGrErrps@ D PCkGIM: & xx CC D "HHWj$A$A B : Xdnj(JJ((  7 Xdnj(JPZ [ [ ]  xx CC D ( Xj&$ ; ; = $ Xj&* 5 5v ?  F,rGrc $eZdZdZdZdZdgZdgZdgZdZ de fd e fd e j fd eeeejefd eeje ee d fdeeje ee d fgdedfdeejeedfdedfedgdZdZdS)rz? Lexer for Windows Registry files produced by regedit. regz8http://en.wikipedia.org/wiki/Windows_Registry#.REG_filesregistryz*.regztext/x-windows-registry1.6zWindows Registry Editor.*r5r6z(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$z)("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)r8z(.*?)([ \t]*)(=)([ \t]*)-r9z1(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+).+rjc,|dS)NzWindows Registry Editor)rares rErFzRegeditLexer.analyse_texts8999rGN)rHrIrJrKrLrPrMrNrOrQr rr rRrrr rBuiltinrSVariablerrrrrTrFrUrGrErrs) D DClG I*+IM*4 0 Z  ' . Xgxw ? ? A: Xdnj(J G G  ) Xdnj(J G G   8V $ A Xdm[& 9 96 CFF # GFOO  !F4:::::rGrc eZdZdZdZddgZdgZdgZdZdZ d e j fd e fd e fe d gd ejfeddee ee dfde dfd e dfgdefedd e dfgdeeje fdejfgdZdS)rz Lexer for configuration files in Java's properties format. Note: trailing whitespace counts as part of the value as per spec Properties properties jpropertiesz *.propertiesztext/x-java-propertiesz)https://en.wikipedia.org/wiki/.propertiesz1.4z [!#].*|/{2}.*\nz ^[^\S\n]+keyz [^\\:=\s]+escapesz([^\S\n]*)([:=])([^\S\n]*))r9r8[^\S\n]+r9z[^\\\n]+z(\\\n)([^\S\n]*)z\\(.|\n))r;rzr8r{N)rHrIrJrKrLrMrNrOrPrQr rRrrrrSrrr rEscaperTrUrGrErrs D]+G I)*I 5CM w~ . J  : & GENN  DN + GI  + Xj(J 7 7  *&7 8 J '  & ! GI   J '  !((6=*"E"E F &- (  C''FFFrGrc^d}|dkrd}nd|dz z}|dkrd}nd|d}d |d |d |d S) N+z{1,%d}r@r4{}z(?:\t| z\t| {z})z.*\nrU)level tab_width space_repeat level_repeats rE _rx_indentrsg IA~~ 9q=1  zz %E~~~ Jl J J) J J J J JJrGc eZdZdZdZgdZdZgdZdgZdZ dZ d Z d Z d e fd ejfed defdedfdejfdefdefdejfdejfdejfdefg defe de de de de de de d ed!g e de de de de de de d d" Zd#S)$rz( For Linux-style Kconfig files. Kconfig)kconfig menuconfigz linux-configz kernel-configro)zKconfig*z *Config.in*z external.in*zstandard-modules.inztext/x-kconfigzChttps://www.kernel.org/doc/html/latest/kbuild/kconfig-language.htmlrc@t|tjd|fS)Nindent)rrDocrs rE call_indentzKconfigLexer.call_indent#s"5!!6:/?/?/?@@rGcft|tjfdtft dgS)N\s*\n#pop:2)rrrr rrs rE do_indentzKconfigLexer.do_indent's3   + t  H    rGr5#.*?\n)mainmenuconfigrchoice endchoicecommentmenuendmenuz visible ififendifsourcepromptselectz depends onrrangeoption\bsuffixz(---help---|help)[\t ]*\nhelpz;(bool|tristate|string|hex|int|defconfig_list|modules|env)\bz[!=&|]z[()][0-9]+z '(''|[^'])*'z "(""|[^"])*"\S+rr>rr@r9) r;rindent7indent6indent5indent4indent3indent2indent1N)rHrIrJrKrLrMrQrNrOrPflagsrrrr rRrrrrsr rrIntegerrDoubler rrTrUrGrErrs DHHHGM(((I!"I OC EAAA   Z  ' U#,1 222    *7F ; K \   ! k "  ' fm , fm , TN# .t  KNN KNN KNN KNN KNN KNN KNN GFOO 9Q<<9Q<<9Q<<9Q<<9Q<<9Q<<9Q<)(\s*)z(\S+)(\s*)(=>)(\s*)"stringz (\w+)(\()z([\w.!&|()]+)(::)z(\w+)(:)z@[{(][^)}]+[})]z[(){},;]z=>z->z\d+\.\d+\d+\w+r5z\$[{(]interpol\\.r9ry.#pushz[})]z [^${()}]+z\),)r;rrrN)rHrIrJrKrLrPrMrNrOrQr rrrrFunctionrrtTyper Reservedr rClass DeclarationrFloatrInterpolr}rTrUrGrErr`s- D CE"GIIM . Xgz7J H H J 5 Xgz7J { [ [  2 Xgz7J N N P G Xk4=+ ', HjRR S$ Xg& Hd C C E 68 $ 88DM;?? @ !88DJ #D#D E ((7#6 DD E  / + & H  H  &, ' V^ $ T] # Z 3 8 4 V] # 66 " FO 6N   1 fov . 6? + K ( ;  T] # Z  Q..FFFrGrc 2eZdZdZdZgdZgdZdgZdZdZ e j e j zZ defd efd eejeeejfd eejejfd ejd fdefgdefdedfdefdefdefdefdejfdefdejfdefg dZdS)r zT Lexer for configuration files following the Apache config file format. ApacheConf) apacheconfaconfapache)z .htaccessz apache.confz apache2.confztext/x-apacheconfz6https://httpd.apache.org/docs/current/configuring.htmlz0.6r5z#(.*\\\n)+.*$|(#.*?)$z"(<[^\s>/][^\s>]*)(?:(\s+)(.*))?(>)z(]+)(>)z[a-z]\w*r8z\.+z\\\nz\n+r9z\\r|\d+\.\d+\.\d+\.\d+(?:/\d+)?rz/([*a-z0-9][*\w./-]+)z(on|off|none|any|all|double|email|dns|min|minimal|os|productonly|full|emerg|alert|crit|error|warn|notice|info|debug|registry|script|inetd|standalone|user|group)\bz"([^"\\]*(?:\\(.|\n)[^"\\]*)*)"z [^\s"\\]+rjN)rHrIrJrKrLrMrNrOrPrQrbrd IGNORECASErrr rrTagrrsr rOtherrrrTrUrGrEr r s) D///G<<   (& 1 TN  6=& 1 GV $ GFOO FFFrGr!cxeZdZdZdZdZdgZdgZdgZdZ de e e e fd e d fed gd ed fd e jd fed gdedfdedfed gdejfde jfde jfde e eejfdefdejfde ee ejfdefdefde fde fdefg dZdS) r"z. Lexer for Nginx configuration files. zNginx configuration filezhttp://nginx.net/nginxz nginx.confztext/x-nginx-conf0.11z(include)(\s+)([^\s;]+)z[^\s;#]+stmtbase\}r\{block;r9#.*\nzon|offz \$[^\s;#()]+z([a-z0-9.-]+)(:)([0-9]+)z[a-z-]+/[a-z-+]+z [0-9]+[km]?\bz(~)(\s*)([^\s{]+)z[:=~]z [^\s;#{}$]+z /[^\s;#]*r5z[$;])r;rrrN)rHrIrJrKrLrPrMrNrOrQrrrrrrrfr rRrrtrrrRegexr rTrUrGrEr"r"Is] &D CiGI$%IM(':t)L)L M '6 * GFOO K * '+V 4 GFOO K ) ; ' GFOO w~ &  & dm , ( XdK 8 8 : & ) v~ . !88KV\#R#R S { # V $ 4 Z dO !  FFFrGr"c eZdZdZdZdZddgZdgZdgZdZ d d e j fd e fd e fd efdefdefde jfdefdejfdefg iZdS)r#z1 Lexer for Lighttpd configuration files. zLighttpd configuration filezhttp://lighttpd.net/lighttpdlightyz lighttpd.confztext/x-lighttpd-confrr;rz/\S*z [a-zA-Z._-]+rrz=>|=~|\+=|==|=|\+z\$[A-Z]+z [(){}\[\],]z"([^"\\]*(?:\\.[^"\\]*)*)"r5N)rHrIrJrKrLrPrMrNrOrQr rRrrrr rsrrrrrTrUrGrEr#r#ws )D C8$G !I'(IM  w~ & dO g & +V 4   !8 , $, ' [ ) *FM : Z   FFFrGr#ceZdZdZdZdZddgZddgZdgZd Z d Z d Z d Z e je jzZd defdeeeeeeeefde deeeeefde de deeeeefde deeeeeeefde de deeeeefde deeeefde deeefdeefg iZdS)r$z/ Lexer for Docker configuration files. Dockerzhttp://docker.iodocker dockerfile Dockerfilez*.dockerztext/x-dockerfile-configz2.0z-(?:MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)z-(?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY)z (?:\s*\\?\s*)r;#.*z1(FROM)([ \t]*)(\S*)([ \t]*)(?:(AS)([ \t]*)(\S*))?z(ONBUILD)(\s+)(rz(HEALTHCHECK)(\s+)((z --\w+=\w+z)*)z#(VOLUME|ENTRYPOINT|CMD|SHELL)(\s+)(z )(\[.*?\])z(LABEL|ENV|ARG)(\s+)((z\w+=\w+rz|VOLUME)\b(\s+)(.*)z)(\s+)z (.*\\\n)*.+N)rHrIrJrKrLrPrMrNrOrQ _keywords_bash_keywords_lbrbrrdrr rrrrr rrrTrUrGrEr$r$s D C&Gz*I+,IMAIFN C MBL (E  W  A Xgz6:w TZ [ [ ] & & & &*eeIFVFV(W(W X ;S ; ;3 ; ; ;*eeI.>.>?? A CC C C C*eeI.>.>i@P@PQQ S ;s ; ;3 ; ; ;*eeI.>.>?? A 0) 0 0 0((7JPV2W2W X (. ( ( (((7J*G*G H UU9-- . FFFrGr$c(eZdZdZdZdZgdZddgZddgZd Z d Z d d e Z d ZdZdZdZdZdZdZdZdZdZeezezezezezezezezZd d eZdZededdeejfeddde j!feedde"j#fededd e$fgd!e%j&d"fd#e%j'fedd$ee(e j)e(e*e(e+fd%ee(e j,e(e*e(fd&ee(e-jje(e*e(fed'zee j.e+fd(ee+e j)e+fe d)zee"j/e(e j0e(e j1e(e+fd*efg d+ee j1fd,ee j1fgd-e+fgd.e%j&fd/e%j&d0fd1e%j&d2fd3e%j&fgd4e(fd5e(fd6ee2e(fgd7Z3d8S)9r%z- Lexer for terraformi ``.tf`` files. Terraformzhttps://www.terraform.io/) terraformtfhclz*.tfz*.hclzapplication/x-tfzapplication/x-terraform2.1)backenddatamoduleoutputprovider provisionerresourcevariablez({})r) rnumberboollisttuplemapsetobjectnull) absceilfloorlogmaxmixparseintpowsignum)chompformat formatlistrjoinlowerregexregexallreplacesplitstrrevsubstrtitletrim trimprefix trimsuffix trimspaceupper)alltrueanytrue chunklistcoalesce coalescelistcompactconcatcontainsdistinctelementflattenindexkeyslengthrlookupr  matchkeysmergerreversesetintersection setproduct setsubtractsetunionslicesortsum transposevalueszipmap) base64decode base64encode base64gzip csvdecode jsondecode jsonencodetextdecodebase64textencodebase64 urlencode yamldecode yamlencode) abspathdirname pathexpandbasenamefile fileexistsfileset filebase64 templatefile) formatdatetimeadd timestamp) base64sha256 base64sha512bcryptfilebase64sha256filebase64sha512filemd5filesha1 filesha256 filesha512md5 rsadecryptsha1sha256sha512uuiduuidv5)cidrhost cidrnetmask cidrsubnet cidrsubnets) candefaultstobooltolisttomaptonumbertosettostringtryc#K|d}|t|dfV|dtj|dfV|d|_|d|_|jtj|dfV||_|d}d}g}tj |j |jD]}|r'| }n&| }||kr|D]7}|tj|fV8|tj|fV||_nK| ||D]2}|t|fV3t|j |_dS)Nr@rr>T)startr groupr DelimiterposendHeredocr finditerrCstriprstripappendrlen) selfmatchctxryhdnametolerantlinescheckamatchs rEheredoc_callbackzTerraformLexer.heredoc_callbacks AXu{{1~~----kk!nnf. A>>>>++a..))A,,gv~u{{1~~5555))++Q%ch88 < ?IM6Gzz'2233J YE= W[A`T!I!#336JJM__235JKMab!"H-- 8 4 455K# # # N GG   GL ! !// 0U$U5 A A A4= QU5u 5 5 5w| D GL ! ! GM " "   $)9 5 w~ . GL ! !8 Xj$, HjR] ^ ^ `3 Xj$.*h S S U - Xj'."7Xz Z Z \7 "HHT]K$H$H I%hh{DL+&V&V WU U Xg& DJ DM[egr s s u/0@ A?  D0$-1H1H I > Xdm $ $ & #K 0 w( ) W& 0 W& / g' (  J  Z ((444 5 CFFFFFrGr%c eZdZdZdZdgZddgZgZdZdZ de fde j d fd e fgd e d fd edfdefde jfgdeee fde dfdeeefdedfd efde jfgdefd ed fdefdefgdZdS)r&zR Lexer for termcap database source. This is very simple and minimal. Termcaptermcapz termcap.srcz%https://en.wikipedia.org/wiki/Termcapr^#.*z ^[^\s#:|]+namesr5ryr9:defs\|z[^:|]+z(\\)(\n[ \t]*)z\n[ \t]*r (#)([0-9]+)rrz [^\s:=#]+z\\072z[^:\\]+rr;rrrN)rHrIrJrKrLrMrNrOrPrQr rrrrrSrr r rrrrTrUrGrEr&r&_s DkGM*II 1CMg  DHg . Z  J ' ; ' K  '  z : : ; *h / XXh77 8 8V $ ;  4: &  w  ; '  ! 7O  )FFFrGr&c eZdZdZdZdgZddgZgZdZdZ de fde j d fd e fgd e d fd eee dfdefde jfgde fd e dfdeeefdedfd eee fde jfgdefd eee d fdefdefgdZdS)r'zS Lexer for terminfo database source. This is very simple and minimal. Terminfoterminfoz terminfo.srcz&https://en.wikipedia.org/wiki/Terminforz^#.*$z ^[^\s#,|]+rr5ryr9z (,)([ \t]*)rrz[^,|]+z\n[ \t]+rrrrz [^\s,=#]+z\\[,\\]z[^\\,]+rrN)rHrIrJrKrLrMrNrOrPrQr rrrrrrSr rrrrTrUrGrEr'r's0 DlG^,II 2CMw  DHg . Z  J ' XXk:>> G K  '  * % J ) XXh77 8 8V $ XXk:>> ? 4: &   ! XXk:>> G  ! 7O  )FFFrGr'c 6eZdZdZdZdZdgZdgZgZdZ de j fde e jefd e e jed fed d efd efdefgdefdejdfgdejdfde jfged de j dfdedfd efdefdefgdZdS)r(ze Lexer for pkg-config (see also `manual page `_). PkgConfigz4http://www.freedesktop.org/wiki/Software/pkg-config/ pkgconfigz*.pcr#.*$z ^(\w+)(=)z ^([\w.]+)(:)spvalueinterpr5z [^${}#=:\n.]+rz\$\$z\$\{curlyrr9rryz [^${}#\n\s]+)r;rrrN)rHrIrJrKrLrPrMrNrOrQr rRrrrSr rrrrr rrrTrUrGrEr(r(s2 D @CmGIIMgn %88DNH== > Xdh , ,i 9 GH  Z t $ 4L! (dOfow /  FOV , T^ $ GH   gnf - J 'Z d # 4L  =))FFFrGr(c eZdZdZdZdZdgZdgZgZdZ dde j fd e e ee fd e eje efd e e eje fed d ejfde fdefgiZdS)r)a@ Lexer for pacman.conf. Actually, IniLexer works almost fine for this format, but it yield error token. It is because pacman.conf has a form without assignment like: UseSyslog Color TotalDownload CheckSpace VerbosePkgLists These are flags to switch on. PacmanConfz3https://www.archlinux.org/pacman/pacman.conf.5.html pacmanconfz pacman.confrr;rz^(\s*)(\[.*?\])(\s*)$z (\w+)(\s*)(=)z^(\s*)(\w+)(\s*)$)z$repoz$archz%oz%urrr5rN)rHrIrJrKrLrPrMrNrOrQr rRrrrrrSr rrtr rTrUrGrEr)r)s D ?CnGIIM  gn %&xx GZ'P'P Q Xdnj( ; ; =" Xj$.* = = ?U  !!! ]  Z 4L7 FFFrGr)c eZdZdZdZdZdgZdgZdZde e j e e j fde e je e jfd e e je fd e ee jee jefd ejd fd efdefdejdfdejdfde e j ee jfde jfde fg dejfdejfdejdfgdejfdejfdejdfgdejfd ejdfdejdfdejfgdZdS) r*z Lexer for Augeas. Augeaszhttp://augeas.netaugeasz*.aug2.4z(module)(\s*)([^\s=]+)z(let)(\s*)([^\s=]+)zV(del|store|value|counter|seq|key|label|autoload|incl|excl|transform|test|get|put)(\s+)z8(\()([^:]+)(\:)(unit|string|regexp|lens|tree|filter)(\))z\(\*rz [*+\-.;=?|]z [()\[\]{}]rrz\/rz([A-Z]\w*)(\.)(\w+)rr5rz[^"]r9z[^/]z[^*)]rz\*\)z[)*])r;rrrN)rHrIrJrKrLrPrMrNrQrrrfrrrrtrsrrr rr rrrr}rTrUrGrEr*r*/s D CjG IM'1BJPTP^(_(_ ` #XXg.A:t}%]%] ^ fhphpquq}@JiKiK L H((S^`d`moz}D}IKVKWKW X g' 3 X & H % 6=( + FL' * #XXdnk4=%Y%Y Z 4= ! Z   V] # fm $ 6=& ) V] # fl # FL& ) w( ) g' 1 g' 0 g' (  3FFFrGr*ceZdZdZdZdgZgdZdgZdZdZ dZ d e d Z d e fd e jfed deee dfdedfgdefdejdfdejdfdefgdefdejdfdejdfdefdedfde fge ejdfe ejdfdejdfdejdfdejdfdejdfdejdfd ejdfd!ejdfd"ejd#fdejd$fd%ejd&fdejd'fd(ejdfd)ed*fd+ed,fgd e fd e jfd-efd.edfe dgd e fd e jfed deee dfd-efd/edfgdejdfed0d1ejfgd2ejdfgd"ejdfd3eej!e fed0d1ejfdejfgd%ejdfd4ejfdejfgd5ej!fd6ej!fgd7 Z"d8S)9r+z= Lexer for TOML, a simple language for config files. TOMLtoml)z*.tomlPipfilez poetry.lockzapplication/tomlzhttps://toml.iorz\d\d:\d\d(:\d\d(\.\d+)?)?zm(?x) \d\d\d\d-\d\d-\d\d # date, e.g., 1988-10-27 ( [Tt ] z # optional time ( [Zz]|[+-]\d\d:\d\d # optional time offset )? )? r5rrzz(=)(\s*)r8z\[\[? table-keyz[A-Za-z0-9_-]+r basic-string'literal-stringz\.z\]\]?r9[ \t]+z [+-]?\d[0-9_]*[eE][+-]?\d[0-9_]*z.[+-]?\d[0-9_]*\.\d[0-9_]*([eE][+-]?\d[0-9_]*)?z[+-]?(inf|nan)z -?0b[01_]+z -?0o[0-7_]+z-?0x[0-9a-fA-F_]+z [+-]?[0-9_]+z""")r9multiline-basic-string)r9rz''')r9multiline-literal-string)r9rz true|false\[)r9arrayr)r9 inline-tabler\]rr{z[^"\\]+z.*?'rz[^']+z5\\x[0-9a-fA-F]{2}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}r) r;rzrr8rrrrrrr{N)#rHrIrJrKrLrMrNrOrPrQ_time _datetimerr rRrrr rrrrrrDaterrBinOctHexrrrr}rTrUrGrEr+r+[sm DhG444I#$I CM )EI*Z W^ $ GENN((8Z88' Bw ,- 4 % 6=. 1 6="2 3 K   ( 6=. 1 6="2 3 G  w ' # " f - GL& )1&, G > \6 # f 5FJ / VZ 0 !6:v 6 fnf 5V]$F G 6=": ; V]$H I 6="< =G,f 5K!2 3K!9 :C" LZ W^ $; K ( GG   "Z W^ $ GENN((; ;;W E; K ( $6=& ) GI    ' fmV , V]F + ((6=*== > GI    ' 6= ! # V]F + v} % 6= !% Fv} U V] # QLLFFFrGr+ceZdZdZdZdZddgZdgZdZde e e fd e e e d fd e e e d fd e e e fde e e e e e fde e e fde e e e e e fde e e fde e e e eje fde e eje fde e eje e e e fg edde fedde fde dfdedfgeddejfde dfde dfdedfgedde fedde dfde d fgedd!e d fd"e d fgd#e fgd$Zd%S)&r,z Lexer for *NextedText*, a human-friendly data format. .. versionchanged:: 2.16 Added support for *NextedText* v3.0. NestedTextzhttps://nestedtext.org nestedtextntz*.ntz2.9z ^([ ]*)(#.*)$z ^([ ]*)(\{) inline_dictz ^([ ]*)(\[) inline_listz ^([ ]*)(>)$z^([ ]*)(>)( )(.*?)([ \t]*)$z ^([ ]*)(-)$z^([ ]*)(-)( )(.*?)([ \t]*)$z ^([ ]*)(:)$z^([ ]*)(:)( )([^\n]*?)([ \t]*)$z^([ ]*)([^\{\[\s].*?)(:)$z)^([ ]*)([^\{\[\s].*?)(:)( )(.*?)([ \t]*)$rz[^\{\}\[\],\s]+ inline_valuerrr9ryz[^\{\}\[\],:\s]+rinline_dict_valuerrrrr)r;rrrrrN)rHrIrJrKrLrPrMrNrQrrr rr rrrrrTrUrGrEr,r,sy D "CT"GIM xx G<< =XXj+>> NXXj+>> NXXj+>> ?,XXj+z[_ak-l-l mXXj+>> ?,XXj+z[_ak-l-l mXXj+>> ?0*kS]_c_gis1t1t u*88J++V+V W:88JPTPXZegqswzDbm T T  cMF 9%.qrr2D 9 9  dNF rGN)rHrIrJrKrLrPrMrNrQrbrrdDOTALLr_headersr_appsectrrHeadingrrr r rr rrTrFrUrGrEr-r-Us D MCoG-(IM MBL (29 4EeHfHHHxx<   F     rGr-cVeZdZdZdZddgZgZdZdZdde fd e fd e fd e fd e fd efgiZdS)r.z Lexer for Unix/Linux config files using colon-separated values, e.g. * ``/etc/group`` * ``/etc/passwd`` * ``/etc/shadow`` zUnix/Linux config files unixconfig linuxconfigzUhttps://en.wikipedia.org/wiki/Configuration_file#Unix_and_Unix-like_operating_systemsz2.12r;rryrrz"((?!\n)[a-zA-Z0-9\_\-\s\(\),]){2,}z[^:\n]+N)rHrIrJrKrLrMrNrPrQr rrrr rrTrUrGrEr.r.sy %D]+GI aCM  g  J  ;    2D 9    FFFrGr.)4rKrbpygments.lexerrrrrrrr r pygments.tokenr r r rrrrrrrrrpygments.lexers.shellrpygments.lexers.datar__all__rrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.rUrGrErs6 &&&&&&&&&&&&&&&&&&&&============================++++++****** E E E33333z333l:<))))):)))X':':':':'::':':':T55555j555pKKK(KKKKK:KKK\:::::Z:::z(((((j(((V~~~~~Z~~~B+++++Z+++\ 8     *   Ffffff'fffR,,,,,:,,,^,,,,,J,,,^66666Z666r66666j666r)))))*)))Xfffff fffPOOOOOjOOOd)))))z)))XjrG