o
    ia                     @   s  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	 d	eZG d
d deZG dd deZdd Z G dd deZ!G dd deZ"G dd deZ#G dd deZ$G dd deZ%G dd deZ&G dd deZ'G dd deZ(G d d! d!eZ)G d"d# d#eZ*G d$d% d%eZ+G d&d' d'eZ,G d(d) d)eZ-G d*d+ d+eZ.G d,d- d-eZ/G d.d/ d/eZ0G d0d1 d1eZ1dS )2z
    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                   @   s   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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rootr2   c                 C   s2   |  d}|dk rdS | d dko| |d  dkS )N
   Fr   [   ])find)textnpos r?   R/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pygments/lexers/configs.pyanalyse_textB   s   
zIniLexer.analyse_textN)__name__
__module____qualname____doc__namealiases	filenames	mimetypesr   r   Singler   r   r   	Attributer   r   r
   tokensrA   r?   r?   r?   r@   r      s8    r   c                   @   s   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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.*r0   r1   z(\[)(-?)(HKEY_[A-Z_]+)(.*?\])$z)("(?:\\"|\\\\|[^"])+")([ \t]*)(=)([ \t]*)r2   z(.*?)([ \t]*)(=)([ \t]*)-r4   z1(dword|hex(?:\([0-9a-fA-F]\))?)(:)([0-9a-fA-F,]+).+r5   c                 C   s
   |  dS )NzWindows Registry Editor)
startswith)r=   r?   r?   r@   rA   p   s   
zRegeditLexer.analyse_textN)rB   rC   rD   rE   rF   urlrG   rH   rI   r
   r   r   rJ   r   r   r   r   BuiltinrK   Variabler   r   r   r   rL   rA   r?   r?   r?   r@   r   I   s>    r   c                	   @   s   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-propertiesr0   z[!#].*|/{2}.*z([^\\\n]|\\.)*?(?=[ \f\t=:])	separatorz.+?$z;([ \f\t]*)([=:]*)([ \f\t]*)(.*(?<!\\)(?:\\{2})*)(\\)(?!\\)$r2   r4   z([ \f\t]*)([=:]*)([ \f\t]*)(.*)z,(\s*)(.*(?<!\\)(?:\\{2})*)(\\)(?!\\)([ \t]*)r3   )r6   rX   r2   N)rB   rC   rD   rE   rF   rG   rH   rI   r   r   rJ   r   rK   r   r   r   r
   rL   r?   r?   r?   r@   r   t   s2    


r   c                 C   sB   d}|dkr	d}nd|d  }| dkrd}nd|  }d|||f S )	N      +z{1,%d}r:    z{%s}z(?:\t| %s\t| {%s})%s.*\nr?   )level	tab_widthspace_repeatlevel_repeatr?   r?   r@   
_rx_indent   s   ra   c                   @   s   e Zd ZdZdZg dZg dZdgZdZdd Z	d	d
 Z
defdejfed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                 C   s   t | tjd|  fS )Nzindent%s)ra   r   Docr]   r?   r?   r@   call_indent   s   zKconfigLexer.call_indentc                 C   s   t | tjfdtftdgS )N\s*\n#pop:2)ra   r   re   r
   r   rf   r?   r?   r@   	do_indent   s   zKconfigLexer.do_indentr0   #.*?\n)mainmenuconfigrd   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+rh               r8   rZ   r:   r4   )	r6   r}   indent7indent6indent5indent4indent3indent2indent1N)rB   rC   rD   rE   rF   rG   rH   rI   flagsrg   rj   r   r   rJ   r   r   r   rS   r   r   r   Integerr   Doubler
   r   rL   r?   r?   r?   r@   r      sZ    
r   c                   @   sr  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*.cfrk   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+r0   z\$[{(]interpol\\.r4   \n.#pushz[})]z	[^${()}]+z\),)r6   r   r   r   N)rB   rC   rD   rE   rF   rR   rG   rH   rI   r   r   r   r   r   Functionr   rT   Typer   Reservedr
   r   ClassDeclarationr   Floatr   InterpolEscaperL   r?   r?   r?   r@   r      sn    




r   c                   @   s   e Zd ZdZdZg dZg dZdgZej	ej
B 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-apacheconfr0   z#(.*\\\n)+.*$|(#.*?)$z"(<[^\s>/][^\s>]*)(?:(\s+)(.*))?(>)z(</[^\s>]+)(>)z[a-z]\w*r2   z\.+z\\\nz\n+r4   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"\\]+r5   N)rB   rC   rD   rE   rF   rG   rH   rI   re	MULTILINE
IGNORECASEr   r   r   r   r   Tagr   rS   r
   r   Otherr   r   rL   r?   r?   r?   r@   r   ;  s@    

r   c                   @   s   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defeedddejfeedddefeedddefeedddefeedddefed e d 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}))r0   #rp   rz   prefixr|   zstats/zlog/=z(?:/(?:z|\b\d+\b))?z(?:\b\d+\b(?:-\b\d+|%)?)r   z	\s*TAG:.*r4   rP   )r6   rp   N) rB   rC   rD   rE   rF   rR   rG   rH   rI   r   r   r   keywordsoptsactionsactions_statsactions_logaclsip_rer   r   r   r   r   Constantr   r   r   r
   r   r   rL   r?   r?   r?   r@   r   f  sB    ;

r   c                   @   s   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\}ri   z\{block;r4   #.*\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;#]*r0   z[$;])r6   r  r  r  N)rB   rC   rD   rE   rF   rR   rG   rH   rI   r   r   r   r   r   r   	Namespacer   rJ   r  rT   r   r   r   Regexr
   rL   r?   r?   r?   r@   r     sF    

r   c                   @   sv   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-confr6   r  z/\S*z[a-zA-Z._-]+r   r~   z=>|=~|\+=|==|=|\+z\$[A-Z]+z[(){}\[\],]z"([^"\\]*(?:\\.[^"\\]*)*)"r0   N)rB   rC   rD   rE   rF   rR   rG   rH   rI   r   rJ   r   r   r   r   rS   r   r   r   r   rL   r?   r?   r?   r@   r      s(    r    c                   @   s  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B Zddefdeeeeeeeefdef eeeeefdeef eeeeefdef eeeeeeefdeef eeeeefde	 eeeefde
f 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*)r6   z#.*z1(FROM)([ \t]*)(\S*)([ \t]*)(?:(AS)([ \t]*)(\S*))?z(ONBUILD)(\s+)(%s)z$(HEALTHCHECK)(\s+)((%s--\w+=\w+%s)*)z/(VOLUME|ENTRYPOINT|CMD|SHELL)(\s+)(%s)(\[.*?\])z$(LABEL|ENV|ARG)(\s+)((%s\w+=\w+%s)*)z(%s|VOLUME)\b(\s+)(.*)z	(%s)(\s+)z(.*\\\n)*.+N)rB   rC   rD   rE   rF   rR   rG   rH   rI   	_keywords_bash_keywords_lbr   r   r   r   r   r   r   r   r   r   r   r   rL   r?   r?   r?   r@   r!   5  s>    


r!   c                   @   s   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 e e e e e e e Zd

deZdd Zededdeejfeddddej feed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' eej-e*fd(ee*ej(e*fed) ee!j.e'ej/e'ej0e'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%d0fd1e$j%d2fd3e$j%fgd4e'fd5e'fd6ee1e'fgd7Z2d8S )9r"   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mergerx   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           	      c   s:   | 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D ]<}|rT|  }n|  }||kr|D ]}|  tj| fV  q`|  tj| fV  | |_ n|| qI|D ]}|  t| fV  qt|j
|_d S )Nr:   rZ   r8   T)startr   groupr   	DelimiterposendHeredocr	   finditerr=   striprstripappendr   len)	selfmatchctxr@  hdnametolerantlinescheckamatchr?   r?   r@   heredoc_callback  s2   



zTerraformLexer.heredoc_callbackbasic
whitespacez(".*"))truefalserz   r  
identifierpunctuationr~   z\s*/\*rp   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\*/r4   z[*/]r   r0   z(\\)(\n))r6   rT  rX  rY  rp   rU  N)3rB   rC   rD   rE   rF   rR   rG   rH   rI   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_rerS  r   r   r   r   r   r   r  r   r   r   r   	MultilinerJ   r   rS   r   r   rK   r   r   r   r   rT   r
   rL   r?   r?   r?   r@   r"   Y  s    	'
"


r"   c                	   @   s   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#:|]+namesr0   r   r4   :defs\|z[^:|]+z(\\)(\n[ \t]*)z\n[ \t]*ri   (#)([0-9]+)r  r  z	[^\s:=#]+z\\072z[^:\\]+r   r6   rl  rn  r  N)rB   rC   rD   rE   rF   rG   rH   rI   r   r   r   r   r   rK   r   r
   r   r   r   r   rL   r?   r?   r?   r@   r#     s8    	
	
r#   c                
   @   s   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#,|]+rl  r0   r   r4   z(,)([ \t]*)rn  ro  z[^,|]+z\n[ \t]+ri   rp  r  r  z	[^\s,=#]+z\\[,\\]z[^\\,]+r   rq  N)rB   rC   rD   rE   rF   rG   rH   rI   r   r   r   r   r   r   rK   r   r   r   r   rL   r?   r?   r?   r@   r$   2  s8    	
	
r$   c                
   @   s   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interpr0   z[^${}#=:\n.]+r   z\$\$z\$\{curlyr  r4   r   r   z[^${}#\n\s]+)r6   rx  ry  rw  N)rB   rC   rD   rE   rF   rR   rG   rH   rI   r   rJ   r   r   rK   r   r   r   r   r   r
   r   r   rL   r?   r?   r?   r@   r%   a  s>    



r%   c                	   @   s   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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.confr6   rv  z^(\s*)(\[.*?\])(\s*)$z(\w+)(\s*)(=)z^(\s*)(\w+)(\s*)$)z$repoz$archz%oz%urz   r{   r0   r   N)rB   rC   rD   rE   rF   rR   rG   rH   rI   r   rJ   r   r   r   r   rK   r   r   rT   r
   rL   r?   r?   r?   r@   r&     s2    	r&   c                   @   s  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\(\*rp   z[*+\-.;=?|]z
[()\[\]{}]r   r   z\/r  z([A-Z]\w*)(\.)(\w+)r   r0   r   z[^"]r4   z[^/]z[^*)]r   z\*\)z[)*])r6   r   r  rp   N)rB   rC   rD   rE   rF   rR   rG   rH   r   r   r  r   r   r   rT   rS   r   r   r   rh  r   r   r   r  r   rL   r?   r?   r?   r@   r'     sB    







r'   c                   @   s   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.lockr6   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)rB   rC   rD   rE   rF   rR   rG   rH   r   r   r   r   rJ   r   r  r   r   r   r   r   r   rL   r?   r?   r?   r@   r(     s4    r(   c                   @   s   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*)$r6   z^(\s*)(#.*?)$z^(\s*)(>)( ?)(.*?)(\s*)$z^(\s*)(-)( ?)(.*?)(\s*)$'r   z^(\s*)(.*?)(:)( ?)(.*?)(\s*)$N)rB   rC   rD   rE   rF   rR   rG   rH   _quoted_dict_itemr   r   r   r   r   r  r   rL   r?   r?   r?   r@   r)   6  s     r)   c                   @   s   e Zd ZdZdZdZdgZddgZej	ej
B ejB 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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*%))|(.*)r4   )r6   r  c                 C   s>   d}t d| t jr|d7 }t tjdd | r|d7 }|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=   resultr?   r?   r@   rA   q  s   zSingularityLexer.analyse_textN)rB   rC   rD   rE   rF   rR   rG   rH   r   r   r   DOTALLr   _headersr  _appsectr   r   Headingr   r   r
   r   r   r   r   rL   rA   r?   r?   r?   r@   r*   Q  s,    
r*   c                   @   sL   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linuxconfigr6   rk  r   rm  r~   z"((?!\n)[a-zA-Z0-9\_\-\s\(\),]){2,}z[^:\n]+N)rB   rC   rD   rE   rF   rG   rH   r   r   r   r   r
   r   rL   r?   r?   r?   r@   r+   ~  s    
r+   )2rE   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   ra   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r?   r?   r?   r@   <module>   s<    
(8-+(M>+ /$ +//::-4-