
    |e                     |   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
mZ ddlmZmZmZmZmZmZmZmZmZ g dZ G d de      Z G d d	e      Z G d
 de      Z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#y)z
    pygments.lexers.dsls
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for various domain-specific languages.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)	ExtendedRegexLexer
RegexLexerbygroupswordsincludedefaultthisusingcombined)	TextCommentOperatorKeywordNameStringNumberPunctuation
Whitespace)ProtoBufLexer	ZeekLexerPuppetLexerRslLexerMscgenLexerVGLLexer
AlloyLexerPanLexer
CrmshLexerThriftLexerFlatlineLexerSnowballLexerc                      e Zd ZdZdZdZddgZdgZdefde	fd	e
j                  fd
e
j                  f eddd      ef edd      ej                  fdej                   fd eej$                  e      dfd eej&                  e      dfd eej&                  e      dfdefdefdej,                  fdej,                  fdej,                  fdej.                  fdej0                  fdej2                  fdefd  eej8                  ee      fd!efgd"ej$                  d#f ed#      gd"ej<                  d#f ed#      gd"ed#f ed#      gd$Zy%)&r   zP
    Lexer for Protocol Buffer definition files.

    .. versionadded:: 1.4
    zProtocol Bufferz/https://developers.google.com/protocol-buffers/protobufprotoz*.protoz[ \t]+z[,;{}\[\]()<>]z/(\\\n)?/(\n|(.|\n)*?[^\\]\n)z/(\\\n)?\*(.|\n)*?\*(\\\n)?/)importoptionoptionalrequiredrepeatedreservedr   packedctype
extensionstomaxrpcreturnsoneofsyntax\bprefixsuffix)int32int64uint32uint64sint32sint64fixed32fixed64sfixed32sfixed64floatdoubleboolstringbytesr6   (true|false)\bz(package)(\s+)packagez(message|extend)(\s+)messagez(enum|group|service)(\s+)typez\".*?\"z\'.*?\'z'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*z(\d+\.\d*|\.\d+|\d+[fF])[fF]?z(\-?(inf|nan))\bz0x[0-9a-fA-F]+[LlUu]*z0[0-7]+[LlUu]*z
\d+[LlUu]*z[+-=]z([a-zA-Z_][\w.]*)([ \t]*)(=)z[a-zA-Z_][\w.]*[a-zA-Z_]\w*#pop)rootrH   rI   rJ   N) __name__
__module____qualname____doc__nameurlaliases	filenamesr   r   r   Single	Multiliner   r   TypeConstantr   	NamespaceDeclarationr   r   FloatHexOctIntegerr   r   	Attributer   Classtokens     6/usr/lib/python3/dist-packages/pygments/lexers/dsls.pyr   r      s    D
;C7#GI 
#,-w~~>,g.?.?@ < EJRWY 	
  > GLM \\	
  0 01):):J GS%g)):6	C)g)):6@  7F-v||< &,,/%vzz2

+FNN+x ,dnnj(;=&A!
F dnnf5FO

 djj&1FO

 dF+FO
W/Frd   r   c                      e Zd ZdZdZdZdgZdgZdgZ e	d       e	d      d	e
j                   ed
d      fde
j                   ed
d      fd eej                   e      dfd eej$                  e      dfd e ee      ej,                  ee      f e	d       e	d      defdefdefgdefdefgdefdefdej4                  fgde
j6                  fgd	e
j                  dfde
j                  fgd e
j                  dfd!e
j                  fgd"ej                   df ed      gd#ej:                  df ed      gd$efd%ej<                  fd&ej$                  f ed'd()      ej                   f ed*d()      ej@                  f ed+d(d(,      ejB                  fgd-e"jF                  fd.e"jH                  fd/e"jJ                  fgd0
Z&y1)2r   zF
    For Thrift interface definitions.

    .. versionadded:: 2.1
    Thriftzhttps://thrift.apache.org/thriftz*.thriftzapplication/x-thrift
whitespacecomments"stringescapedqsz\'sqsz(namespace)(\s+)	namespacez*(enum|union|struct|service|exception)(\s+)classzE((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()keywordsnumbersz[&=]z[:;,{}()<>\[\]]z[a-zA-Z_](\.\w|\w)*\n\s+#.*$z//.*?\n/\*[\w\W]*?\*/z\\([\\nrt"\'])rL   z	[^\\"\n]+'z
[^\\\'\n]+z[a-z*](\.\w|\w)*rK   z1(async|oneway|extends|throws|required|optional)\brG   z(const|typedef)\b)cpp_namespacecpp_includecpp_typejava_packagecocoa_prefixcsharp_namespacedelphi_namespacephp_namespace	py_moduleperl_packageruby_namespacesmalltalk_categorysmalltalk_prefixxsd_allxsd_optionalxsd_nillablexsd_namespace	xsd_attrsr   r3   rF   )voidrC   bytei16i32i64rB   rD   binarymaplistsetslistsenum)eBEGINEND	__CLASS____DIR____FILE____FUNCTION____LINE__
__METHOD____NAMESPACE__abstractaliasandargsasassertbeginbreakcasecatchrp   clonecontinuedeclaredefr   deldeletedodynamicelifelseelseifelsifend
enddeclareendfor
endforeachendif	endswitchendwhileensureexceptexecfinallyrA   forforeachfunctionglobalgotoif
implementsr$   ininline
instanceof	interfaceislambdamodulenativenewnextnilnotorpasspublicprintprivate	protectedraiseredorescueretryregisterreturnselfsizeofstaticsuperswitchsynchronizedthenr	   throw	transienttryundefunlessunsigneduntilusevarvirtualvolatilewhenwhilewithxoryieldr4   z1[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)z[+-]?0x[0-9A-Fa-f]+z[+-]?[0-9]+)
rM   ri   rj   rl   rm   rn   ro   rp   rq   rr   N)'rN   rO   rP   rQ   rR   rS   rT   rU   	mimetypesr   r   Doubler   rV   r   r   rZ   r   r[   r
   r	   r   Functionr   r   r   rW   Escaper   ra   rY   r   rX   Reservedr   r\   r]   r_   rb   rc   rd   re   r   r   U   s   
 D
&CjGI'(I L!J6==(>5"ABFMM8NE#BC **J7F:,,j97D eDk4==*hGI JIh-#T*#
( JZ 

 g! 1 12
 .
 6==&)6==)

 6==&)FMM*

 !$..&9FO

 djj&1FO

 B7K 0 01!7#6#67 ( 167     "'( \\	
  E$ U%,& '#%
N B6<<P#VZZ0V^^,
m[Frd   r   c                       e Zd ZdZdZdZddgZddgZdZd	Z	d
Z
 ed       ed       ed       ed       ed       ed       ed       ed       ed      dej                  f ed      gdefdefd eee      fgdefgdej$                  fdej$                  fd eej$                  eej$                        fg eddd       ej*                  fg ed!d"      ej,                  fd# eej,                  eej0                  eej,                        fd$ eeeej2                  eeeej,                        fd% eeeeee      fd& eeeej,                  eej2                        fg ed'd"      efd(efd)ej4                  fd* eej6                  eej6                        fgd+ed,fd-ej:                  d.fd/ej<                  fd0efd1efd2efd3ez   d4z   ej@                  fe	d5z   ejB                  fe	dz   ejB                  fd6ejD                  fe
d7z   e
z   d8z   efgd9efd:efd;ej0                  fd<efgd=e#fd>e#fgd? eee#      fd@efgdAejH                  fdBejH                  fd+edCfdDefgdAejH                  fdEej:                  dCfdDej:                  fgdFZ%yG)Hr   z6
    For Zeek scripts.

    .. versionadded:: 2.5
    Zeekzhttps://www.zeek.org/zeekbroz*.zeekz*.broz[0-9a-fA-F]z(((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?z[A-Za-z0-9][-A-Za-z0-9]*ri   rj   
directives
attributestypesrq   literals	operatorspunctuationz2((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(?=\s*\()identifiersrs   rt   z(\\)(\n)ru   z)@(load-plugin|load-sigs|load|unload)\b.*$z=@(DEBUG|DIR|FILENAME|deprecated|if|ifdef|ifndef|else|endif)\bz(@prefixes)(\s*)((\+?=).*)$)redefprioritylogr&   r   add_funcdelete_funcexpire_funcread_expirewrite_expirecreate_expirer   
persistentrotate_intervalrotate_sizeencrypt
raw_output	mergeableerror_handlertype_column
deprecated&r3   r4   )anyenumrecordr   tablevectorr   hookeventaddrrC   countrB   fileintintervalpatternportrD   subnettimerF   zA(opaque)(\s+)(of)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\bzR(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)(\s*)\b(record|enum)\bz<(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)zI(redef)(\s+)(record|enum)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\b)r  exportr   r   r   r   r   r   r   r   fallthroughr   r   r   addr   r   timeoutschedulez	(print)\bz(global|local|const|option)\bz4(module)(\s+)(([A-Za-z_]\w*)(?:::([A-Za-z_]\w*))*)\brk   rD   z/(?=.*/)regexz(T|F)\bz \d{1,5}/(udp|tcp|icmp|unknown)\bz(\d{1,3}.){3}(\d{1,3})\bzH\[([0-9a-fA-F]{0,4}:){2,7}([0-9a-fA-F]{0,4})?((\d{1,3}.){3}(\d{1,3}))?\]z0[xX]z+\bz!\s*(day|hr|min|sec|msec|usec)s?\bz(\d+)\bz(\.z)+z[!%*/+<=>~|&^-]z([-+=&|]{2}|[+=!><-]=)z(in|as|is|of)\bz\??\$z[{}()\[\],;.]z[?:]z([a-zA-Z_]\w*)(::)rK   z\\.z%-?[0-9]*(\.[0-9]+)?[DTd-gsx]rL   ./)rM   ri   rj   r   r   r   rq   r  r  r  r  rD   r-  N)&rN   rO   rP   rQ   rR   rS   rT   rU   _hex_float_hr   r   r   r   r   r   r   Preprocr   r   PseudorX   r   Wordra   r[   rZ   r   RegexrY   r   r]   r\   r_   r   r   rb   rc   rd   re   r   r      s   
 D
!CuoG7#ID8F	$B L!JL!L!GJJK M"BM"
  JZ (445
 g

 :7??KMw_+XgooGOO.- .
  1
 E+ ^^
  C
  \\ Rz8==*gll[] c*djj*hPZ\c\h\hik M*dJIK Z*gllJ

SU%
.  3
   7#-w/B/BCD**JGI
 68$
 &,,0))* 1&9 )&1 YZ`a _v%vzz2::FLLIe^V\\*( &[2%v.5
<  *&1/x 	
 {+
 k"
 #HT;$?@d#
 V]]#-v}}=66"6N	
 V]]#6<<(6<< 
QMFrd   r   c                      e Zd ZdZdZdZdgZdgZ ed       ed       ed       ed	       ed
       ed      de	fde
fgd ee
e      fdej                  fgdefdej                  fgdej"                  fd eej$                  e	ee	      fdej$                  fgdej*                  fdej*                  fdej,                  fdej.                  fdej0                  j2                  fdej0                  fg eddd      efgdefd efgd!Zy")#r   zB
    For Puppet configuration DSL.

    .. versionadded:: 1.6
    Puppetzhttps://puppet.com/puppetz*.pprj   rq   namesrr   r  stringsz[]{}:(),;[]rt   z(\s*)(#.*)$z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)z(in|and|or|not)\brK   z(\$\S+)(\[)(\S+)(\])z\$\S+z'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?z\d+[eE][+-]?[0-9]+j?z	0[0-7]+j?z0[xX][a-fA-F0-9]+z\d+Lz\d+j?)mabsentalertr   auditaugeasbeforer   checkrp   computer
configured	containedcreate_resourcescritcrondebugr   definedefined	directoryr   r   emergerrr   	extlookupfailfalser!  
filebucket	fqdn_randgeneratehostr   r$   r   infoinheritsinline_template	installedr   k5loginlatestlinkloglevelmacauthorization	mailaliasmaillistmcxmd5mountmountednagios_commandnagios_contactnagios_contactgroupnagios_hostnagios_hostdependencynagios_hostescalationnagios_hostextinfonagios_hostgroupnagios_servicenagios_servicedependencynagios_serviceescalationnagios_serviceextinfonagios_servicegroupnagios_timeperiodnodenoopnoticenotifyrH   presentpurgedrealizeregsubst	resourcesrolerouterrunningr,  scheduled_tasksearch
selboolean	selmoduleservicesha1
shellquotesplitsprintfssh_authorized_keysshkeystagestopped	subscribetagtaggedtemplatetidytruer   	unmounteduser
versioncmpvlanwarningyumrepozfszonezpoolz(?i)r3   r4   z	"([^"])*"z'(\\'|[^'])*')rM   rj   r  r:  rr   rq   r;  N)rN   rO   rP   rQ   rR   rS   rT   rU   r   r   r   r   r   rW   r   r5  r   r`   Variabler   r   r\   r^   r]   r_   Longr   r   rb   rc   rd   re   r   r   a  s~   
 D
CjGI JJGIK I[)Z 

 Xj':;.0A0AB
 /9!8==1
 dnn-$ht}}k/5{'D Et}}%	
 8F$fll36::&!6::.fnn))*v~~&
  , "(-7. /
< 6"v&
KJFrd   r   c                      e Zd ZdZdZdZdgZdgZdgZe	j                  e	j                  z  Zd edd	d	
      efdej                  fdefdefdefdefd eeej(                  eej(                        fd eeej(                  eeee      fdej,                  fdej.                  fdefdej2                  fdefdej8                  fdej:                  fdej<                  fdefdefgiZd Z y)r   z
    RSL is the formal specification
    language used in RAISE (Rigorous Approach to Industrial Software Engineering)
    method.

    .. versionadded:: 2.0
    RSLz"http://en.wikipedia.org/wiki/RAISErslz*.rslztext/rslrM   )JBoolCharIntNatRealr   Unitabsallalwaysr  r   axiomcardr   channelchaosrp   devt_relationdomelemsr   r   r   existsextendrP  r   hdhider   r   r   inds
initialiser"  interisinlenletlocalltl_assertionobjectofoutpostprereadrealrngschemeskipstopswapr   theory	test_casetltransition_systemr  rJ   unionr   r   valuevariabler   r   writez~isinz-inflistz-infsetz-listz-setr3   r4   z(variable|value)\bz--.*?\nz<:.*?:>z	\{!.*?!\}	/\*.*?\*/z^([ \t]*)([\w]+)([ \t]*)(:[^:])z5(^[ \t]*)([\w]+)([ \t]*)(\([\w\s,]*\))([ \t]*)(is|as)z\b[A-Z]\w*\brG   z".*"z\'.\'zq(><|->|-m->|/\\|<=|<<=|<\.|\|\||\|\^\||-~->|-~m->|\\/|>=|>>|\.>|\+\+|-\\|<->|=>|:-|~=|\*\*|<<|>>=|\+>|!!|\|=\||#)z [0-9]+\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-f]+[0-9]+rt   r.  c                 P    t        j                  d| t         j                        yy)zP
        Check for the most common text in the beginning of a RSL file.
        zscheme\s*.*?=\s*class\s*typeNg      ?)rer  I)texts    re   analyse_textzRslLexer.analyse_text  s%     994dBDDAM Nrd   N)!rN   rO   rP   rQ   rR   rS   rT   rU   r   r  	MULTILINEDOTALLflagsr   r   r[   r   r   r   r   r   r   rX   rY   r   r  r   r   r\   r]   r_   rb   r  rc   rd   re   r   r     sT    D
.CgG	IILL299$E 	  !&e5  #G$7$78!!7#7#/*z4==2: ;Ej$--TW&' gll+ 0 01fv{{#F 1&,,?VZZ('Z 4LG$
&FPrd   r   c                   p   e Zd ZdZdZdZddgZdgZdZde	j                  fd	ej                  fd
ej                  fde	fdefdej                  feej                   fdedfdef ed      g
dedfedz   ez    eej(                  eeee      fdef ed      gdej0                  fdej2                  fdefgdZy)r   z6
    For Mscgen files.

    .. versionadded:: 1.6
    Mscgenz!http://www.mcternan.me.uk/mscgen/mscgenmscz*.mscz(\w+|"(?:\\"|[^"])*")zmsc\bzO(hscale|HSCALE|width|WIDTH|wordwraparcs|WORDWRAPARCS|arcgradient|ARCGRADIENT)\bz)(abox|ABOX|rbox|RBOX|box|BOX|note|NOTE)\bz(\.|-|\|){3}zT(?:-|=|\.|:){2}|<<=>>|<->|<=>|<<>>|<:>|->|=>>|>>|=>|:>|-x|-X|<-|<<=|<<|<=|<:|x-|X-|=z\*z\[attrsz	\{|\}|,|;rj   z\]rL   z(\s*)(=)(\s*),z(?://|#).*?\nz/\*(?:.|\n)*?\*/z
[ \t\r\n]+)rM   r  rj   N)rN   rO   rP   rQ   rR   rS   rT   rU   _varr   rX   r   Propertyr   r5  Builtinr  r   r   r   r`   r   r   r   rV   rW   rb   rc   rd   re   r   r     s#   
 D
-CG	I#D w||$,-1]]< :8==Ig&) +34
 DLL!4==!K);'J%
* K($$t+dnnj(J ;J
 w~~. '"3"34J'
;"Frd   r   c                      e Zd ZdZdZdZdgZdgZej                  ej                  z  ej                  z  Zddej                  fdej                   fd	efd
ej                   fdefdefd eeej*                        fdefdefdefdefgiZy)r   zG
    For SampleManager VGL source code.

    .. versionadded:: 1.6
    VGLz-http://www.thermoscientific.com/samplemanagervglz*.rpfrM   z	\{[^}]*\}r   z(if|then|else|endif|while|do|endwhile|and|or|prompt|object|create|on|line|with|global|routine|value|endroutine|constant|global|set|join|library|compile_option|file|exists|create|copy|delete|enable|windows|name|notprotected)(?! *[=<>.,()])z$(true|false|null|empty|error|locked)z[~^*#!%&\[\]()<>|+=:;,./?-]z"[^"]*"z(\.)([a-z_$][\w$]*)z&[0-9][0-9]*(\.[0-9]+(e[+\-]?[0-9]+)?)?z[a-z_$][\w$]*z[\r\n]+rt   N)rN   rO   rP   rQ   rR   rS   rT   rU   r  r  r  
IGNORECASEr  r   rW   r   rY   r   r   r   r   r`   r   r   rb   rc   rd   re   r   r   +  s    
 D
9CgG	ILL299$r}}4E 	7,,-))*I 	
 5g6F6FG+X6 #Xh%GH6?t$$Z 
Frd   r   c                   F   e Zd ZdZdZdZdgZdgZdgZe	j                  e	j                  z  ZdZdZd	efZd
edfeefedefdedfgeeedfgededfeedfg ed      eedfgdej0                  fdej0                  fdej2                  fed eej6                  e      dfd eej8                  e      dfdej:                  f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ee      dfd eee      d fd!efd"efeefd#efd$e jB                  feefd%efgd&Z"y')(r   z;
    For Alloy source code.

    .. versionadded:: 2.0
    Alloyzhttp://alloy.mit.edualloyz*.alsztext/x-alloyz[a-zA-Z_][\w]*"*z"\b(\\\\|\\[^\\]|[^"\\])*"z[^\S\n]+z(extends)\brL   r  \{funz--.*?$z//.*?$r  z(module|open)(\s+)r   z(sig|enum)(\s+)sigz(iden|univ|none)\bz(int|Int)\bz2(var|this|abstract|extends|set|seq|one|lone|let)\bz"(all|some|no|sum|disj|when|else)\bz-(run|check|for|but|exactly|expect|as|steps)\bz)(always|after|eventually|until|release)\bz,(historically|before|once|since|triggered)\bz(and|or|implies|iff|in)\bz(fun|pred|assert)(\s+)z(fact)(\s+)factz&!|#|&&|\+\+|<<|>>|>=|<=>|<=|\.\.|\.|->z[-+/*%=<>&!^|~{}\[\]().\';]z[:,]r  rs   )r  r   r  r  rM   N)#rN   rO   rP   rQ   rR   rS   rT   rU   r   r  r  r  r  iden_rex
string_rexr   
text_tupler   r   r   r   r   r   r   rV   rW   r   rZ   r[   rY   rX   r5  r   r_   rb   rc   rd   re   r   r   M  s    D
 CiG	I ILL299$E"H.Jz*J Wf-t;Hf%
 tV$

 Hf%tV$
 EN(

 ''7,,-"HW->->
$K'*=*=z!JER"G$4$45W\\*BGL2G<=wG97C<gF)8==9&*(EuMXgz:FC6A+X6tk"' J1
+/Frd   r   c                      e Zd ZdZdZdZdgZdgZ ed      de	dfd	e	d
f ed      g e
ddd      e	f e
ddd      ej                  fdefdej                  fd eej"                  ee      fdefdefdefgdej*                  fdej,                  fdefdefdefgde	dfde	fdej"                  fdefd ef ed!      gd"e	df ed!      gd#Zy$)%r   zZ
    Lexer for pan source files.

    Based on tcsh lexer.

    .. versionadded:: 2.0
    Panzhttps://github.com/quattor/pan/panz*.panbasicz\(parenr  curlydata)r   r   r   r   rJ   bindr   validfinalr5   uniquer  r   r   r  r   r  	structure
extensibledeclarationr3   r4   )4file_contentsformatindexlengthmatchmatchesreplacesplicer  substrto_lowercaseto_uppercaserH  error	tracebackr  base64_decodebase64_encodedigestescapeunescapeappendcreatefirstnlistkeyr   merger   prepend
is_boolean
is_defined	is_doubleis_listis_longis_nlistis_null	is_numberis_propertyis_resource	is_string
to_boolean	to_doubleto_long	to_stringr   r   r  path_exists	if_existsr   r  z#.*z\\[\w\W]z(\b\w+)(\s*)(=)z[\[\]{}()=]+z<<\s*(\'?)\\?(\w+)[\w\W]+?\2;z!(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"z!(?s)'(\\\\|\\[0-7]+|\\.|[^'\\])*'rt   z[^=\s\[\]{}()$"\'`\\;#]+z\d+(?= |\Z)z\}rL   z:-z\w+z[^}:"\'`$]+:rM   \))rM   r  r  r  r  N)rN   rO   rP   rQ   rR   rS   rT   rU   r   r   r   r   r  r   r   r   r   r  r   r   r   r   rV   r   r   rb   rc   rd   re   r   r     sk    D
+CgG	I GGW%GW%FO	
  R U	,
   	? U
, \\ W&--($--X!NOh',f5;1
6 26==A16==AZ ($/V$
 GV$GT]]#[);FO
 GV$FO
a4Frd   r   c                      e Zd ZdZdZdZddgZddgZg Z e	dd	
      Z
 e	dd	
      Z e	dd	
      Z e	dd	
      Z e	dd	
      Z e	dd	
      ZdZdZdZdZdd eee      fd eej0                  ee      fd eeeee      fdefe
efeefeefdededej<                  feej<                  feej<                  feej<                  fdej>                  fdez   eeee      fdez   eeeej<                        fdefd efgiZ y!)"r   z`
    Lexer for crmsh configuration files for Pacemaker clusters.

    .. versionadded:: 2.1
    Crmshzhttp://crmsh.github.io/crmshpcmkz*.crmshz*.pcmk)rr  	primitivegroupr   mslocation
colocationorderfencing_topology
rsc_ticketrsc_templatepropertyrsc_defaultsop_defaults
acl_target	acl_groupr  r{  r  z(?![\w#$-])rF   )paramsmeta
operationsopruler   utilization)r  r  deny)r   r   )rJ  not_defined)in_rangedatespecr   z*(?:tag|ref|reference|attribute|type|xpath)z(?:lt|gt|lte|gte|eq|ne)z(?:string|version|number)z:(?:Master|Started|Slave|Stopped|start|promote|demote|stop)rM   z^(#.*)(\n)?z!([\w#$-]+)(=)("(?:""|[^"])*"|\S+)z(node)(\s+)([\w#$-]+)(:)z([+-]?([0-9]+|inf)):z(?:z:)?(z)(?![\w#$-])z#[a-z]+(?![\w#$-])z(%s)(:)("(?:""|[^"])*"|\S+)z!([\w#$-]+)(?:(:)(%s))?(?![\w#$-])z(\\(?=\n)|[\[\](){}/:@])z\s+|\nN)!rN   rO   rP   rQ   rR   rS   rT   rU   r   r   elemsubaclbin_relun_opsdate_expacl_modbin_opsval_qualrsc_role_actionr   r   r   r   r`   r   r   r   r   r   r5  r  rb   rc   rd   re   r   r     s   
 D
#CGH%II 
 &'D  %-;=C ).
ACM.9G-nEF7OH<G)G,H5O 	Xgz:;1f=?
 )*dK@B %f-7O'N'N+3W=x}}Mhmm$X]]#x}}%"DLL1+g5g{D13 2OCdK79 )+6
#C"
$Frd   r   c                   P   e Zd ZdZdZdZdgZg ZdgZdZ	dZ
dZd	d
efdefdej                  fdej                   fdej"                  fdefdej&                  fdej(                  f ee	d      ef ee
d      ej0                  fdez   ej2                  feej4                  fdefgiZy)r   zD
    Lexer for Flatline expressions.

    .. versionadded:: 2.2
    Flatlinez$https://github.com/bigmlcom/flatlineflatlineztext/x-flatline)r  )z!=*+-<z<==>z>=r  acosr  zall-butzall-with-defaultszall-with-numeric-defaultr   asinatanavgz
avg-windowz
bin-centerz	bin-countcallzcategory-countceilcondzcond-windowconscoscoshr   zdiff-windowdivzensure-valuezensure-weighted-valueepochz	epoch-dayzepoch-fieldsz
epoch-hourzepoch-millisecondzepoch-minutezepoch-monthzepoch-secondzepoch-weekdayz
epoch-yearexpffieldz
field-propfieldsfilterr  floorheadr   r   integerlanguager  levenshteinzlinear-regressionr   lnr  log10r   r  zmatches?r.   maximumra  meanmedianminminimummissingzmissing-countzmissing?missing_countmodmode	normalizer   nthoccurrencesr   
percentilezpercentile-label
populationzpopulation-fractionpow	preferredz
preferred?zquantile-labelrandzrand-intzrandom-valuezre-quoter  r  zreplace-firstrestroundz
row-numberzsegment-labelr  sha256sinsinhsqrtsquarezstandard-deviationstandard_deviationstrsubssumzsum-squaresz
sum-windowsum_squaressummaryz
summary-nozsummary-strtailtantanhz
to-degreesz
to-radiansvariance	vectorizezweighted-random-valuewindowwinnowzwithin-percentiles?zz-scorez(?!#)[\w!$%*+<=>?/.#-]+rM   z[,]+rt   z
-?\d+\.\d+z-?\d+z0x-?[a-f\d]+z"(\\\\|\\[^\\]|[^"\\])*"z\\(.|[a-z]+)_ rF   z(?<=\()z(\(|\))N)rN   rO   rP   rQ   rR   rS   rT   rU   r   special_formsbuiltins
valid_namer   r   r   r\   r_   r]   r   r  Symbolr   r   r   r  r   r  r   rb   rc   rd   re   r   r     s    
 D
0ClGI"#IMH2 ,J 	dOZ  FLL)v~~&fjj) )&1fkk* 6==! =-w7 8C($,,7 *$dmm4 ' %=
!Frd   r   c                   ~   e Zd ZdZdZdZdgZdgZdZd Z	d Z
d	 Zd
 Zdej                  fdej                   f ed      gdez  efdej(                  fdej,                  dfdefdej2                  fdej,                  fdef edd      ej8                  f edd      ej8                  df edd      ej                   f edd      ej                  fdeded eej8                  eej<                        fd ed!ed"efd#efgd$ed%f ed&d      ed'f ed      gd( ed)      fgd( ed*      fgd+Zd.d-Z y,)/r    zD
    Lexer for Snowball source code.

    .. versionadded:: 2.2
    Snowballzhttps://snowballstem.org/snowballz*.sblz\n\r\t c                 P    | j                          t        j                  | fi | y N)_reset_stringescapesr   __init__)r   optionss     re   r  zSnowballLexer.__init__x  s!    !!###D4G4rd   c                      d| _         d| _        y )Nrw   )_start_end)r   s    re   r  z"SnowballLexer._reset_stringescapes|  s    	rd   c                       fd}|S )Nc              3     K   |j                         }|j                         }t        j                  dt        j                  | j
                        z        j                  }t        j                  dt        j                  | j                        z        j                  }d}	}|t        |      k  ry|r |||      }||j                  d      z   t        j                  |j                  d      f |j                  d      dk(  rQ||j                  d      z   t        j                  |j                  d      f |j                  j                          n||j                  d      z   t        j                  |j                  d      f |j                         } |||      }||j                         z   t        j                  |j                         f |j                  d      | j                  k7  rd|j                  d<   n"|j                         }d}|t        |      k  ry||j                         z   |_        y w)	Nz([^%s]*)(.)r         rw   r  T)startr0  r  compiler  r  r  r  r  r   rV   stackpopr   r   pos)
lexerr  ctxsr  rD   r  r  	do_stringdo_string_firsts
            re   callbackz'SnowballLexer._string.<locals>.callback  s    A;;=DZZ5<<1H HIOOFZZ5::1F FGMMFC'ID	/"4-Eekk!n,fmmU[[^KK{{1~,%++a.0&--QOO		ekk!n,fmmU[[^KK))+CtS)%++-'EE;;q>UZZ/$,CIIbMiik 	! D	/" %))+oCGs   H)I.Irc   )r  r  s   ` re   _stringzSnowballLexer._string  s    	&2 rd   c                     |j                  d      | _        |j                  d      | _         t        t        j
                  t        t        j                  t        t        j                        | ||      S )N      )	r0  r  r  r   r   r   r   r   r   )r  r  r  s      re   _stringescapeszSnowballLexer._stringescapes  sV    {{1~[[^
'x((*fmmZ'',eS: 	:rd   zlen\bzlenof\broot1z[%s]+z\d+rw   rD   z[()]rv   z//.*z)[!*+\-/<=>]=|[-=]>|<[+-]|[$*+\-/<=>?\[\]])r   gethexamongrI  decimalbackwardmoder3   rF   )r;  booleansintegersroutines	externals	groupingsr  )!r   r   r   r   hopnonr   r   r   rO  r   loopr   testr  rP  unsetatmarkattachr   gopastinsertrepeatr   tomarkatleastatlimitreversesetmarktolimitsetlimit	backwards	substring)sizelimitcursormaxintminintz(stringdef\b)([z]*)([^z]+)z(stringescapes\b)([z]*)(.)([z]*)(.)z[A-Za-z]\w*r*  rL   )r  lenof)r  r  z[^']*'TF)rM   r  r  rD   r  Nc                 P    | j                          t        j                  | ||      S r  )r  r   get_tokens_unprocessed)r   r  contexts      re   r  z$SnowballLexer.get_tokens_unprocessed  s#    !!#!88tWMMrd   )NN)!rN   rO   rP   rQ   rR   rS   rT   rU   _wsr  r  r  r  r   r  r   r5  r   r   r   r_   r   rV   r   r   rW   r   r   r   r   r   rb   r  rc   rd   re   r    r    j  s    D
%ClG	I
C58: t||$'G
 ^Z(V^^$6==(+k" 1 12gnn%98D $,13  !).0}.  .
 7<= ]] B!\\ 14S9g&&
FMMBD9<cBT"9
> K(#E2D%'G	
 &
 '
[0FdNrd   r    )$rQ   r  pygments.lexerr   r   r   r   r   r   r	   r
   r   pygments.tokenr   r   r   r   r   r   r   r   r   __all__r   r   r   BroLexerr   r   r   r   r   r   r   r   r    rc   rd   re   <module>r     s    
, , ,$ $ $J
;J ;|g* gT\
 \~ U* Up=z =@/* /dz DB BJBz BJC CLJJ JZlN& lNrd   