
    L&ia                        d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZ g dZ G d d	e          Z G d
 de          Z G d de          Zd Z  G d de          Z! G d de          Z" G d de          Z# G d de          Z$ G d de          Z% G d de          Z& G d de          Z' G d de          Z( G d d e          Z) G d! d"e          Z* G d# d$e          Z+ G d% d&e          Z, G d' d(e          Z- G d) d*e          Z. G d+ d,e          Z/ G d- d.e          Z0 G d/ d0e          Z1dS )1z
    pygments.lexers.configs
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for configuration file formats.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)ExtendedRegexLexer
RegexLexerdefaultwordsbygroupsincludeusingline_re)TextCommentOperatorKeywordNameStringNumberPunctuation
WhitespaceLiteralErrorGeneric)	BashLexer)	JsonLexer)IniLexerRegeditLexerPropertiesLexerKconfigLexerCfengine3LexerApacheConfLexerSquidConfLexerNginxConfLexerLighttpdConfLexerDockerLexerTerraformLexerTermcapLexerTerminfoLexerPkgConfigLexerPacmanConfLexerAugeasLexer	TOMLLexerNestedTextLexerSingularityLexerUnixConfigLexerc                      e Zd ZdZdZg dZg dZddgZdefde	j
        fd	 eee          fd
 eej        eeeeee          dfd eej        eeee          fdej        fgdefd eeeee          fdedfgdZd ZdS )r   z5
    Lexer for configuration files in INI style.
    INI)inicfgdosini)z*.iniz*.cfgz*.infz.editorconfigz	*.servicez*.socketz*.devicez*.mountz*.automountz*.swapz*.targetz*.pathz*.timerz*.slicez*.scopez
text/x-iniztext/inf\s+[;#].*z(\[.*?\])([ \t]*)$u0   (.*?)([  \t]*)([=:])([ \t]*)([^;#\n]*)(\\)(\s+)valueu8   (.*?)([ \t]*)([=:])([  \t]*)([^ ;#\n]*(?: +[^ ;#\n]+)*)z(.+?)$z(\s*)(.*)(\\)([ \t]*).*$#poprootr4   c                 r    |                      d          }|dk     rdS | d         dk    o| |dz
           dk    S )N
   Fr   [   ])find)textnposs     d/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/pygments/lexers/configs.pyanalyse_textzIniLexer.analyse_textB   s?    yy!885Aw#~5$tAv,#"55    N)__name__
__module____qualname____doc__namealiases	filenames	mimetypesr   r   Singler   r   r   	Attributer   r   r   tokensrC    rD   rB   r   r      s#         D&&&G  I z*I Z '"HHWj$A$AB@Xdnj(JJ( ( IXdnj(JOOQ '
 Z %Xj&$
;;=VV$	
 F,6 6 6 6 6rD   r   c                       e Zd ZdZdZdZdgZdgZdgZde	fde
fd	ej        fd
 eeeej        e          fd eej        e
ee
          dfd eej        e
ee
          dfgdedfd eej        ee          dfdedf ed          gdZd ZdS )r   zZ
    Lexer for Windows Registry files produced by regedit.

    .. versionadded:: 1.6
    regz8http://en.wikipedia.org/wiki/Windows_Registry#.REG_filesregistryz*.regztext/x-windows-registryzWindows Registry Editor.*r2   r3   z(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$z)("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)r4   z(.*?)([ \t]*)(=)([ \t]*)-r6   z1(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+).+r7   c                 ,    |                      d          S )NzWindows Registry Editor)
startswith)r@   s    rB   rC   zRegeditLexer.analyse_textp   s    8999rD   N)rE   rF   rG   rH   rI   urlrJ   rK   rL   r   r   r   rM   r   r   r   r   BuiltinrN   Variabler   r   r   r   rO   rC   rP   rD   rB   r   r   I   s$         D
DClG	I*+I *40Z '.Xgxw??A :Xdnj(JGG )Xdnj(JGG
  8V$AXdm[&996C FF#GFOO
! F4: : : : :rD   r   c            
           e Zd ZdZdZddgZdgZdgZdefde	j
        fd	ej        d
fdej        fgd eeeeee          ddfd eeeee          dfgdefd eeeee          fdedfgdZdS )r   z
    Lexer for configuration files in Java's properties format.

    Note: trailing whitespace counts as part of the value as per spec

    .. versionadded:: 1.4
    
Properties
propertiesjpropertiesz*.propertiesztext/x-java-propertiesr2   z[!#].*|/{2}.*z([^\\\n]|\\.)*?(?=[ \f\t=:])	separatorz.+?$z;([ \f\t]*)([=:]*)([ \f\t]*)(.*(?<!\\)(?:\\{2})*)(\\)(?!\\)$r4   r6   z([ \f\t]*)([=:]*)([ \f\t]*)(.*)z,(\s*)(.*(?<!\\)(?:\\{2})*)(\\)(?!\\)([ \t]*)r5   )r8   r_   r4   N)rE   rF   rG   rH   rI   rJ   rK   rL   r   r   rM   r   rN   r   r   r   r   rO   rP   rD   rB   r   r   t   s          D]+G I)*I Z w~.,dnkJdn%
 LXj(JEEwPVX/Xj(J??I	
 Z <Xj&$
;;=VV$
! FFFrD   r   c                 \    d}|dk    rd}nd|dz
  z  }| dk    rd}nd| z  }d|d	|d
|dS )N      +z{1,%d}r=    z{%s}z(?:\t| z\t| {z})z.*\nrP   )level	tab_widthspace_repeatlevel_repeats       rB   
_rx_indentri      s\     I A~~9q=1zz~*6,,			<<<PPrD   c                      e Zd ZdZdZg dZg dZdgZdZd Z	d Z
d	efd
ej        f edd          efdedfdej        fdefdefdej        fdej        fdej        fdefgdef e	d           e	d           e	d           e	d           e	d           e	d           e	d           ed          g	 e
d           e
d           e
d           e
d           e
d           e
d           e
d          d 	Zd!S )"r   zC
    For Linux-style Kconfig files.

    .. versionadded:: 1.6
    Kconfig)kconfig
menuconfigzlinux-configzkernel-config)zKconfig*z*Config.in*zexternal.in*zstandard-modules.inztext/x-kconfigr   c                 @    t          |           t          j        d| z  fS )Nzindent%s)ri   r   Docre   s    rB   call_indentzKconfigLexer.call_indent   s    5!!6:zE/ABBrD   c                 f    t          |           t          j        fdt          ft	          d          gS )N\s*\n#pop:2)ri   r   ro   r   r   rp   s    rB   	do_indentzKconfigLexer.do_indent   s3     
+tH
 	
rD   r2   #.*?\n)mainmenuconfigrm   choice	endchoicecommentmenuendmenuz
visible ififendifsourcepromptselectz
depends onr   rangeoption\bsuffixz(---help---|help)[\t ]*\nhelpz;(bool|tristate|string|hex|int|defconfig_list|modules|env)\bz[!=&|]z[()][0-9]+z'(''|[^'])*'z"(""|[^"])*"\S+rs               r;   rb   r=   r6   )	r8   r   indent7indent6indent5indent4indent3indent2indent1N)rE   rF   rG   rH   rI   rJ   rK   rL   flagsrq   ru   r   r   rM   r   r   r   rY   r   r   r   Integerr   Doubler   r   rO   rP   rD   rB   r   r      s         DHHHG( ( (I!"IEC C C
 
 
 Z 'U # ,1	2 2 2
  *7F;K\!k"'fm,fm,TN#
. t KNNKNNKNNKNNKNNKNNKNNGFOO
  9Q<<9Q<<9Q<<9Q<<9Q<<9Q<<9Q<<Y- -FFFrD   r   c                   t   e Zd ZdZdZdZddgZdgZg Zde	fd e
eeeee          fd	 e
eeeeej        e          d
fd e
eeeeej                  fd e
eej        eeej        eee          fd e
ej        eee          fdedfd e
ej        e          fd e
ej        e          fd e
ej        e          fdej        fdefdefdefdej        fdej        fdej        fdefgdej        dfdej        fdedfdefd efgdej        d!fd"ej        dfd#ej        fgd$edfd%efdej        fdefgd&Zd'S )(r   zF
    Lexer for CFEngine3 policy files.

    .. versionadded:: 1.5
    	CFEngine3zhttp://cfengine.org	cfengine3cf3z*.cfrv   z(body)(\s+)(\S+)(\s+)(control)z%(body|bundle)(\s+)(\S+)(\s+)(\w+)(\()arglistz!(body|bundle)(\s+)(\S+)(\s+)(\w+)z7(")([^"]+)(")(\s+)(string|slist|int|real)(\s*)(=>)(\s*)z(\S+)(\s*)(=>)(\s*)"stringz	(\w+)(\()z([\w.!&|()]+)(::)z(\w+)(:)z@[{(][^)}]+[})]z[(){},;]z=>z->z\d+\.\d+\d+\w+r2   z\$[{(]interpol\\.r6   \n.#pushz[})]z	[^${()}]+z\),)r8   r   r   r   N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   r   r   r   r   r   Functionr   rZ   Typer   Reservedr   r   ClassDeclarationr   Floatr   InterpolEscaperO   rP   rD   rB   r   r      s(         D
CE"GII  .Xgz7JHHJ5Xgz7J{[[ 2Xgz7JNNPGXk4=+ ',
HjR RS $Xg&
HdCCE68$88DM;??@!88DJ#D#DE((7#6DDE/+&HH&,'V^$T]#Z 3
8 4V]#66"FO6N
 1fov.6?+
 K(;T]#Z 	
Q. .FFFrD   r   c                   *   e Zd ZdZdZg dZg dZdgZej	        ej
        z  Zdefdefd eej        eeej                  fd	 eej        ej                  fd
ej        dfdefgdefdedfdefdefdefdefdej        fdefdej        fdefg
dZdS )r   zo
    Lexer for configuration files following the Apache config file
    format.

    .. versionadded:: 0.6
    
ApacheConf)
apacheconfaconfapache)z	.htaccesszapache.confzapache2.confztext/x-apacheconfr2   z#(.*\\\n)+.*$|(#.*?)$z"(<[^\s>/][^\s>]*)(?:(\s+)(.*))?(>)z(</[^\s>]+)(>)z[a-z]\w*r4   z\.+z\\\nz\n+r6   z\\z[^\S\n]+\d+\.\d+\.\d+\.\d+(?:/\d+)?r   z/([*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"\\]+r7   N)rE   rF   rG   rH   rI   rJ   rK   rL   re	MULTILINE
IGNORECASEr   r   r   r   r   Tagr   rY   r   r   Otherr   r   rO   rP   rD   rB   r   r   ;  s         D///G<<<I$%IL2=(E Z %w/2Xdh
FDH==?Xdh))+$,0TN	
 dOZ(DM*%+V4V%v|4  '( 0?4 
 FFFrD   r   c                      e Zd ZdZdZdZg dZdgZdgZe	j
        ZdZdZd	Zd
ZdZdZdZdefdedf eedd          ef eedd          ej        f eedd          ef eedd          ef eedd          ef eedd          efedz   ez   dz   ej        fdefdefgdej        dfdedf ed          gdZdS )r   zI
    Lexer for squid configuration files.

    .. versionadded:: 0.9
    	SquidConfzhttp://www.squid-cache.org/)	squidconf
squid.confsquidr   ztext/x-squidconf)
access_logaclalways_directannounce_hostannounce_periodannounce_portannounce_toanonymize_headersappend_domainas_whois_serverauth_param_basicauthenticate_childrenauthenticate_programauthenticate_ttlbroken_postsbuffered_logscache_access_logcache_announce	cache_dircache_dns_programcache_effective_groupcache_effective_user
cache_hostcache_host_aclcache_host_domain	cache_log	cache_memcache_mem_highcache_mem_low	cache_mgrcachemgr_passwd
cache_peercache_peer_accesscache_replacement_policycache_stoplistcache_stoplist_patterncache_store_log
cache_swapcache_swap_highcache_swap_logcache_swap_low	client_dbclient_lifetimeclient_netmaskconnect_timeoutcoredump_dirdead_peer_timeoutdebug_optionsdelay_accessdelay_classdelay_initial_bucket_leveldelay_parametersdelay_pools	deny_infodns_childrendns_defnamesdns_nameserversdns_testnamesemulate_httpd_logerr_html_textfake_user_agentfirewall_ipforwarded_forforward_snmpd_portfqdncache_sizeftpget_optionsftpget_programftp_list_widthftp_passiveftp_userhalf_closed_clientsheader_accessheader_replacehierarchy_stoplisthigh_response_time_warninghigh_page_fault_warning
hosts_file	htcp_porthttp_accesshttp_anonymizerhttpd_accelhttpd_accel_hosthttpd_accel_porthttpd_accel_uses_host_headerhttpd_accel_with_proxy	http_porthttp_reply_access
icp_accessicp_hit_staleicp_porticp_query_timeoutident_lookupident_lookup_accessident_timeoutincoming_http_averageincoming_icp_averageinside_firewallipcache_highipcache_lowipcache_sizelocal_domainlocal_iplogfile_rotatelog_fqdnlog_icp_querieslog_mime_hdrsmaximum_object_sizemaximum_single_addr_triesmcast_groupsmcast_icp_query_timeoutmcast_miss_addrmcast_miss_encode_keymcast_miss_portmemory_poolsmemory_pools_limitmemory_replacement_policy
mime_tablemin_http_poll_cntmin_icp_poll_cntminimum_direct_hopsminimum_object_sizeminimum_retry_timeoutmiss_accessnegative_dns_ttlnegative_ttlneighbor_timeoutneighbor_type_domain
netdb_high	netdb_lownetdb_ping_periodnetdb_ping_ratenever_directno_cachepassthrough_proxypconn_timeoutpid_filenamepinger_programpositive_dns_ttlprefer_direct
proxy_authproxy_auth_realm
query_icmpquick_abortquick_abort_maxquick_abort_minquick_abort_pctrange_offset_limitread_timeoutredirect_childrenredirect_programredirect_rewrites_host_headerreference_agerefresh_patternreload_into_imsrequest_body_max_sizerequest_sizerequest_timeoutshutdown_lifetimesingle_parent_bypasssiteselect_timeoutsnmp_accesssnmp_incoming_address	snmp_portsource_ping	ssl_proxystore_avg_object_sizestore_objects_per_bucketstrip_query_termsswap_level1_dirsswap_level2_dirstcp_incoming_addresstcp_outgoing_addresstcp_recv_bufsizetest_reachabilityudp_hit_objudp_hit_obj_sizeudp_incoming_addressudp_outgoing_addressunique_hostnameunlinkd_programuri_whitespaceuseragent_logvisible_hostname
wais_relaywais_relay_hostwais_relay_port)z
proxy-onlyweightttlzno-queryr   zround-robinzmulticast-responderonoffalldenyallowviaparentz	no-digestheaplrurealmchildrenq1q2credentialsttlnonedisableoffline_togglediskd)shutdowninfo	parameterserver_listclient_listr   )objects
vm_objectsutilizationipcache	fqdncachedns
redirectorioreply_headersfiledescriptorsnetdb)statusenabler  clear)	url_regexurlpath_regexreferer_regexportprotoreq_mime_typerep_mime_typemethodbrowserusersrcdsttime	dstdomainidentsnmp_communitya  (?:(?:(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})(?:\.(?:[3-9]\d?|2(?:5[0-5]|[0-4]?\d)?|1\d{0,2}|0x0*[0-9a-f]{1,2}|0+[1-3]?[0-7]{0,2})){3})|(?!.*::.*::)(?:(?!:)|:(?=:))(?:[0-9a-f]{0,4}(?:(?<=::)|(?<!::):)){6}(?:[0-9a-f]{0,4}(?:(?<=::)|(?<!::):)[0-9a-f]{0,4}(?:(?<=::)|(?<!:)|(?<=:)(?<!::):)|(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-4]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))r2   #r{   r   prefixr   zstats/zlog/=z(?:/(?:z|\b\d+\b))?z(?:\b\d+\b(?:-\b\d+|%)?)r   z	\s*TAG:.*r6   rU   )r8   r{   N) rE   rF   rG   rH   rI   rX   rJ   rK   rL   r   r   r   keywordsoptsactionsactions_statsactions_logaclsip_rer   r   r   r   r   Constantr   r   r   r   r   r   rO   rP   rD   rB   r   r   f  s         D
'C222GI#$IME9HvDG
M
 ;KD	 
 Z 7I&U8E%888'BU4e444dmDU75777@U=5AAA6JU;wt<<<fEU4e444g>Z%'.8&,G(&1TN
 6=&1GV$GFOO
 FFFrD   r   c                   t   e Zd ZdZdZdZdgZdgZdgZd e	e
ee          fde
d	f ed
          gdedfde
j        d	f ed
          gdedfdedf ed
          gdej        fdej        fdej        fd e	eeej                  fdefdej        fd e	eeej                  fdefdefdefdefdefgdZdS )r    zJ
    Lexer for Nginx configuration files.

    .. versionadded:: 0.11
    zNginx configuration filezhttp://nginx.net/nginxz
nginx.confztext/x-nginx-confz(include)(\s+)([^\s;]+)z[^\s;#]+stmtbase\}rt   z\{block;r6   #.*\nzon|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;#]*r2   z[$;])r8   r  r  r  N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   r   r   r   r   r   r   	Namespacer   rM   r  rZ   r   r   r   Regexr   rO   rP   rD   rB   r    r      sX        
 &D
CiGI$%I (':t)L)LM'6*GFOO
 K*'+V4GFOO
 K);'GFOO
 w~&&dm,(XdK88: &)v~.!88KV\#R#RS{#V$4 Z dO
!   FFFrD   r    c                       e Zd ZdZdZdZddgZdgZdgZdd	e	j
        fd
efdefdefdefdefdej        fdefdej        fdefg
iZdS )r!   zM
    Lexer for Lighttpd configuration files.

    .. versionadded:: 0.11
    zLighttpd configuration filezhttp://lighttpd.net/lighttpdlightyzlighttpd.confztext/x-lighttpd-confr8   r  z/\S*z[a-zA-Z._-]+r   r   z=>|=~|\+=|==|=|\+z\$[A-Z]+z[(){}\[\],]z"([^"\\]*(?:\\.[^"\\]*)*)"r2   N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   r   rM   r   r   r   r   rY   r   r   r   r   rO   rP   rD   rB   r!   r!     s         
 )D
 C8$G !I'(I 	w~&dOg&+V4!8,$,'[)*FM:Z 
FFFrD   r!   c                      e Zd ZdZdZdZddgZddgZdgZd	Z	d
Z
dZej        ej        z  Zddefd eeeeeeee          fded eee ee                    fdeded eee ee                    fded eee ee           ee                    fdeded eee ee                    fde	z   eeee          fde
d eee          fd ee          fg	iZdS )r"   zJ
    Lexer for Docker configuration files.

    .. versionadded:: 2.0
    Dockerzhttp://docker.iodocker
dockerfile
Dockerfilez*.dockerztext/x-dockerfile-configz-(?:MAINTAINER|EXPOSE|WORKDIR|USER|STOPSIGNAL)z-(?:RUN|CMD|ENTRYPOINT|ENV|ARG|LABEL|ADD|COPY)z(?:\s*\\?\s*)r8   z#.*z1(FROM)([ \t]*)(\S*)([ \t]*)(?:(AS)([ \t]*)(\S*))?z(ONBUILD)(\s+)()z(HEALTHCHECK)(\s+)((z	--\w+=\w+z)*)z#(VOLUME|ENTRYPOINT|CMD|SHELL)(\s+)(z
)(\[.*?\])z(LABEL|ENV|ARG)(\s+)((z\w+=\w+z(%s|VOLUME)\b(\s+)(.*)(z)(\s+)z(.*\\\n)*.+N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   	_keywords_bash_keywords_lbr   r   r   r   r   r   r   r   r   r	   r   r   rO   rP   rD   rB   r"   r"   5  s        
 D
C&Gz*I+,IAIFN
CMBL(E 	WAXgz6:w
TZ[[] ]&)cc+XXgz55QZK[K[-\-\]]8;SSSA*eeI.>.>??A ACF33H*eeI.>.>i@P@PQQS S8;SSSA*eeI.>.>??A&)4hhw
TZ6[6[\\+^^-xx/L/LMUU9--.
FFFrD   r"   c                   "   e Zd ZdZdZdZddgZdgZddgZd	Z	d

                    d                    e	                    ZdZdZdZdZdZdZdZdZdZdZeez   ez   ez   ez   ez   ez   ez   ez   Zd

                    d                    e                    Zd Z ed           ed          d eej                  f eddd          ej         f eedd          e!j"        f ed           ed          de#fgd e$j%        d!fd"e$j&        f ed          d# ee'ej(        e'e)e'e*          fd$ ee'ej+        e'e)e'          fd% ee'e,j        j        e'e)e'          fed&z    eej-        e*          fd' ee*ej(        e*          fed(z    ee!j.        e'ej/        e'ej0        e'e*          fd)efg
d* eej0                  fd+ eej0                  fgd,e*fgd-e$j%        fd.e$j%        d/fd0e$j%        d1fd2e$j%        fgd3e'fd4e'fd5 ee1e'          fgd6Z2d7S )8r#   zH
    Lexer for terraformi ``.tf`` files.

    .. versionadded:: 2.1
    	Terraformzhttps://www.terraform.io/	terraformtfz*.tfzapplication/x-tfzapplication/x-terraform)backenddatamoduleoutputproviderprovisionerresourcevariablez({})|)	r   numberboollisttuplemapsetobjectnull)	absceilfloorlogmaxmixparseintpowsignum)chompformat
formatlistindentjoinlowerregexregexallreplacesplitstrrevsubstrtitletrim
trimprefix
trimsuffix	trimspaceupper)alltrueanytrue	chunklistcoalescecoalescelistcompactconcatcontainsdistinctelementflattenindexkeyslengthr  lookupr  	matchkeysmerger   reversesetintersection
setproductsetsubtractsetunionslicesortsum	transposevalueszipmap)base64decodebase64encode
base64gzip	csvdecode
jsondecode
jsonencodetextdecodebase64textencodebase64	urlencode
yamldecode
yamlencode)	abspathdirname
pathexpandbasenamefile
fileexistsfileset
filebase64templatefile)
formatdatetimeadd	timestamp)base64sha256base64sha512bcryptfilebase64sha256filebase64sha512filemd5filesha1
filesha256
filesha512md5
rsadecryptsha1sha256sha512uuiduuidv5)cidrhostcidrnetmask
cidrsubnetcidrsubnets)	candefaultstobooltolisttomaptonumbertosettostringtryc              #     K   |                     d          }|t          |                    d          fV  |                     d          t          j        |                    d          fV  |                     d          |_        |                    d          |_        |j        t          j        |                    d          fV  |                                |_        |                    d          }d}g }t          j	        |j
        |j                  D ]}|r'|                                                                }n&|                                                                }||k    r|D ]7}|                                 t          j        |                                fV  8|                                 t          j        |                                fV  |                                |_         nK|                    |           |D ]2}|                                 t          |                                fV  3t          |j
                  |_        d S )Nr=   rb   r;   T)startr   groupr   	DelimiterposendHeredocr
   finditerr@   striprstripappendr   len)	selfmatchctxrU  hdnametolerantlinescheckamatchs	            rB   heredoc_callbackzTerraformLexer.heredoc_callback  s       AXu{{1~~----kk!nnf.A>>>>++a..))A,,gv~u{{1~~5555))++Q%ch88 	< 	<E /++--,,..# I IF ,,..&.&,,..HHHHHkkmmV%5u{{}}DDDD))++U####   < <llnneV\\^^;;;;;ch--rD   basic
whitespacez(".*"))truefalser   r  
identifierpunctuationr   z\s*/\*r{   z\s*(#|//).*\nz'(\s*)([0-9a-zA-Z-_]+)(\s*)(=?)(\s*)(\{)z"(\s*)([0-9a-zA-Z-_]+)(\s*)(=)(\s*)z(\s*)("\S+")(\s*)([=:])(\s*)z(\()z(\[)([a-z_,\s]+)(\])z8(\s+)("[0-9a-zA-Z-_]+")?(\s*)("[0-9a-zA-Z-_]+")(\s+)(\{)z(<<-?)\s*([a-zA-Z_]\w*)(.*?\n)z\b(var\.[0-9a-zA-Z-_\.\[\]]+)\bz.\b([0-9a-zA-Z-_\[\]]+\.[0-9a-zA-Z-_\.\[\]]+)\bz[\[\]()\{\},.?:!=]z[^*/]z/\*r   z\*/r6   z[*/]r   r2   z(\\)(\n))r8   ri  rm  rn  r{   rj  N)3rE   rF   rG   rH   rI   rX   rJ   rK   rL   classesr  r  
classes_retypesnumeric_functionsstring_functionscollection_functionsencoding_functionsfilesystem_functionsdate_time_functionshash_crypto_functionsip_network_functionstype_conversion_functionsbuiltinsbuiltins_rerh  r   r   r   r   r   r   r  r   r   r   r   	MultilinerM   r   rY   r   r   rN   r   r   r   r   rZ   r   rO   rP   rD   rB   r#   r#   Y  s|         D
%CD!GI#%>?I6Gzz'2233JYE=W[ A` T!I !#336JJM__235JKMab!"H --

8 4 455K#  #  # N GGGL!! //0 U$U5AAA4=Q U5u555w|DGL!!GM""
$ )95w~.GL!! 8Xj$,
HjR]^^` 3Xj$.*h
SSU
 -Xj'."7XzZZ\ 7"HHT]K$H$HI %hh{DL+&V&VW UUXg&
DJ
DM[egrssu /0@A? 
D 0$-1H1HI>Xdm$$&
 #K0
 w()W&0W&/g'(	
 JZ ((4445
CF FFFFrD   r#   c            	           e Zd ZdZdZdgZddgZg Zdefde	j
        dfdefgd	ed
fdedfdefde	j        fgd eee          fdedfd eee          fdedfdefde	j        fgdefded
fdefdefgdZdS )r$   zm
    Lexer for termcap database source.

    This is very simple and minimal.

    .. versionadded:: 2.1
    Termcaptermcapztermcap.src^#.*z
^[^\s#:|]+namesr2   r   r6   :defs\|z[^:|]+z(\\)(\n[ \t]*)z\n[ \t]*rt   (#)([0-9]+)r  r  z	[^\s:=#]+z\\072z[^:\\]+r   r8   r  r  r  N)rE   rF   rG   rH   rI   rJ   rK   rL   r   r   r   r   r   rN   r   r   r   r   r   r   rO   rP   rD   rB   r$   r$     s         DkGM*II gDHg.Z 
 J';'K '	
 z : :;*h/XXh7788V$;4:&
 w;'!7O	
) FFFrD   r$   c                      e Zd ZdZdZdgZddgZg Zdefde	j
        dfdefgd	ed
fd eee          dfdefde	j        fgdefd	edfd eee          fdedfd eee          fde	j        fgdefd eee          d
fdefdefgdZdS )r%   zn
    Lexer for terminfo database source.

    This is very simple and minimal.

    .. versionadded:: 2.1
    Terminfoterminfozterminfo.srcz^#.*$z
^[^\s#,|]+r  r2   r   r6   z(,)([ \t]*)r  r  z[^,|]+z\n[ \t]+rt   r  r  r  z	[^\s,=#]+z\\[,\\]z[^\\,]+r   r  N)rE   rF   rG   rH   rI   rJ   rK   rL   r   r   r   r   r   r   rN   r   r   r   r   rO   rP   rD   rB   r%   r%   2  s&         DlG^,II wDHg.Z 
 J'XXk:>>GK '	
 *%J)XXh7788V$XXk:>>?4:&
 !XXk:>>G!7O	
) FFFrD   r%   c            
       2   e Zd ZdZdZdZdgZdgZg Zde	j
        fd eej        e          fd eej        e          d	f ed
          defdefdefgdefdej        dfgdej        dfdej        fg ed
          de	j
        dfdedfdefdefdefgdZdS )r&   z
    Lexer for pkg-config
    (see also `manual page <http://linux.die.net/man/1/pkg-config>`_).

    .. versionadded:: 2.1
    	PkgConfigz4http://www.freedesktop.org/wiki/Software/pkg-config/	pkgconfigz*.pc#.*$z	^(\w+)(=)z^([\w.]+)(:)spvalueinterpr2   z[^${}#=:\n.]+r   z\$\$z\$\{curlyr  r6   r   r   z[^${}#\n\s]+)r8   r  r  r  N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   r   rM   r   r   rN   r   r   r   r   r   r   r   r   rO   rP   rD   rB   r&   r&   a  s-         D
@CmGII gn% 88DNH==> Xdh,,i9 GH Z t$4L!
( dO fow/
 FOV,T^$

 GHgnf-J' Z d#4L

=) )FFFrD   r&   c            
           e Zd ZdZdZdZdgZdgZg Zdde	j
        fd eeee          fd	 eej        ee          fd
 eeej        e          f edd          ej        fdefdefgiZdS )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.

    .. versionadded:: 2.1
    
PacmanConfz3https://www.archlinux.org/pacman/pacman.conf.5.html
pacmanconfzpacman.confr8   r  z^(\s*)(\[.*?\])(\s*)$z(\w+)(\s*)(=)z^(\s*)(\w+)(\s*)$)z$repoz$archz%oz%ur   r   r2   r   N)rE   rF   rG   rH   rI   rX   rJ   rK   rL   r   rM   r   r   r   r   rN   r   r   rZ   r   rO   rP   rD   rB   r'   r'     s         $ D
?CnGII 	gn% &xx
GZ'P'PQ Xdnj(;;= "Xj$.*==? U 
  ! ! ! ] Z 4L7
FFFrD   r'   c                      e Zd ZdZdZdZdgZdgZd ee	j
        eej
                  fd ee	j        eej                  fd eej        e          fd	 eeej        ee	j        e          fd
ej        dfdefdefdej        dfdej        dfd eej
        eej                  fdej        fdefgdej        fdej        fdej        dfgdej        fdej        fdej        dfgdej        fd
ej        dfdej        dfdej        fgdZdS )r(   z6
    Lexer for Augeas.

    .. versionadded:: 2.4
    Augeaszhttp://augeas.netaugeasz*.augz(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\(\*r{   z[*+\-.;=?|]z
[()\[\]{}]r   r   z\/r  z([A-Z]\w*)(\.)(\w+)r   r2   r   z[^"]r6   z[^/]z[^*)]r   z\*\)z[)*])r8   r   r  r{   N)rE   rF   rG   rH   rI   rX   rJ   rK   r   r   r  r   r   r   rZ   rY   r   r   r   r}  r   r   r   r  r   rO   rP   rD   rB   r(   r(     s        
 D
CjG	I '1BJPTP^(_(_`#XXg.A:t}%]%]^fhphpquq}  @J  iK  iK  LH((S^`d`moz  }D  }I  KV  KW  KW  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'(	
3 FFFrD   r(   c                       e Zd ZdZdZdZdgZg dZdd ee	e
          fde	fd	e	fd
ej        fdefdefdefde
j        fdefdej        fdej        fdej        fdej        fdej        fdefdefdefgiZdS )r)   z\
    Lexer for TOML, a simple language
    for config files.

    .. versionadded:: 2.4
    TOMLz!https://github.com/toml-lang/tomltoml)z*.tomlPipfilezpoetry.lockr8   z^(\s*)(\[.*?\])$[ \t]+r   z#.*?$z"(\\\\|\\[^\\]|[^"\\])*"z\'\'\'(.*)\'\'\'z
\'[^\']*\'z(true|false)$z[a-zA-Z_][\w\-]*z>\d{4}-\d{2}-\d{2}(?:T| )\d{2}:\d{2}:\d{2}(?:Z|[-+]\d{2}:\d{2})z'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?z\d+[eE][+-]?[0-9]+j?z[+-]?(?:(inf(?:inity)?)|nan)z[+-]?\d+z[]{}:(),;[]z\.r  N)rE   rF   rG   rH   rI   rX   rJ   rK   r   r   r   r   rM   r   r  r   r   r   r   r   r   rO   rP   rD   rB   r)   r)     s          D
-ChG444I 	 ((:w"?"?@ 
#Jw~&(&1 &)F#w/0 $'
 OPVP^_ 8F$fl3,fl;&.) [)K  8C#
%FFFrD   r)   c                   @   e Zd ZdZdZdZddgZdgZdZdd	 e	e
e          fd
 e	e
ee
ee
          fd e	e
ee
ee
          fe                    d           e	e
eeeee
          fe                    d           e	e
eeeee
          fd e	e
eee
ee
          fgiZdS )r*   z\
    Lexer for NextedText, a human-friendly data
    format.

    .. versionadded:: 2.9
    
NestedTextzhttps://nestedtext.org
nestedtextntz*.ntz#^(\s*)({0})(.*?)({0}: ?)(.*?)(\s*)$r8   z^(\s*)(#.*?)$z^(\s*)(>)( ?)(.*?)(\s*)$z^(\s*)(-)( ?)(.*?)(\s*)$'r   z^(\s*)(.*?)(:)( ?)(.*?)(\s*)$N)rE   rF   rG   rH   rI   rX   rJ   rK   _quoted_dict_itemr   r   r   r   r   r  r   rO   rP   rD   rB   r*   r*   6  s         D
"CT"GI> 	xx
G<<=(((:{JX^`j*k*kl(((:{JX^`j*k*kl%%c**HHZdT_agis,t,tu%%c**HHZdT_agis,t,tu-xx
D+Waciku/v/vw
	FFFrD   r*   c                      e Zd ZdZdZdZdgZddgZej	        ej
        z  ej        z  ZdZdZdZe eej        e          d	fe eej        e          d	fe eeee          fd
efdefdefdefgd ee          dfgdZd ZdS )r+   zL
    Lexer for Singularity definition files.

    .. versionadded:: 2.6
    SingularityzAhttps://www.sylabs.io/guides/3.0/user-guide/definition_files.htmlsingularityz*.defzS^(\s*)(bootstrap|from|osversion|mirrorurl|include|registry|namespace|includecmd)(:)zT^(%(?:pre|post|setup|environment|help|labels|test|runscript|files|startscript))(\s*)z6^(%app(?:install|help|run|labels|env|test|files))(\s*)scriptz	\s*#.*?\nz"\b(([0-9]+\.?[0-9]*)|(\.[0-9]+))\br  z
(?!^\s*%).z(.+?(?=^\s*%))|(.*)r6   )r8   r  c                     d}t          j        d| t           j                  r|dz  }t          j        t          j        dd         |           r|dz  }|S )zlThis is a quite simple script file, but there are a few keywords
        which seem unique to this language.r   z&\b(?:osversion|includecmd|mirrorurl)\bg      ?r=   Ng\(\?)r   searchr   r+   _section)r@   results     rB   rC   zSingularityLexer.analyse_textq  sZ     9>bmTT 	cMF9%.qrr2D99 	dNFrD   N)rE   rF   rG   rH   rI   rX   rJ   rK   r   r   r   DOTALLr   _headersr  _appsectr   r   Headingr   r   r   r   r   r	   r   rO   rC   rP   rD   rB   r+   r+   Q  s         D
MCoG-(IMBL(294EeHfHHH xx<<hGxx<<hGxx
GT::;7#2F;
#D!
 $UU9%5%5v>
 F
 
 
 
 
rD   r+   c                   N    e Zd ZdZdZddgZg Zddefdefde	fd	e
fd
efdefgiZdS )r,   z
    Lexer for Unix/Linux config files using colon-separated values, e.g.

    * ``/etc/group``
    * ``/etc/passwd``
    * ``/etc/shadow``
    
    .. versionadded:: 2.12
    zUnix/Linux config files
unixconfiglinuxconfigr8   r  r   r  r   z"((?!\n)[a-zA-Z0-9\_\-\s\(\),]){2,}z[^:\n]+N)rE   rF   rG   rH   rI   rJ   rK   r   r   r   r   r   r   rO   rP   rD   rB   r,   r,   ~  so          %D]+GI 	gJ;2D9 
	FFFrD   r,   )2rH   r   pygments.lexerr   r   r   r   r   r   r	   r
   pygments.tokenr   r   r   r   r   r   r   r   r   r   r   r   pygments.lexers.shellr   pygments.lexers.datar   __all__r   r   r   ri   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   rP   rD   rB   <module>r     s    
			& & & & & & & & & & & & & & & & & & & &= = = = = = = = = = = = = = = = = = = = = = = = = = = = + + + + + + * * * * * *E E E*6 *6 *6 *6 *6z *6 *6 *6Z(: (: (: (: (:: (: (: (:V% % % % %j % % %PQ Q Q(J J J J J: J J JZ; ; ; ; ;Z ; ; ;|( ( ( ( (j ( ( (V@ @ @ @ @Z @ @ @F, , , , ,Z , , ,^    
   :! ! ! ! !* ! ! !Hg g g g g' g g gT, , , , ,: , , ,^, , , , ,J , , ,^7 7 7 7 7Z 7 7 7t7 7 7 7 7j 7 7 7t* * * * ** * * *Z2 2 2 2 2
 2 2 2h    j   6* * * * *z * * *Z    j     rD   