o
    ‡ÎÖaÉ�  ã                   @   s4  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„ deƒZG dd	„ d	eƒZG d
d„ deƒZ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#dS )zÚ
    pygments.lexers.dsls
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for various domain-specific languages.

    :copyright: Copyright 2006-2021 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                   @   s*  e 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d�efed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jfdejfdefdeej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d$S )%r   z|
    Lexer for `Protocol Buffer <http://code.google.com/p/protobuf/>`_
    definition files.

    .. versionadded:: 1.4
    zProtocol BufferÚ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©r4   ú(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)ÚrootrF   rG   rH   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesr   r   r   ÚSingleÚ	Multiliner   r   ÚTypeÚConstantr   Ú	NamespaceÚDeclarationr   r   ÚFloatÚHexÚOctÚIntegerr   r   Ú	Attributer   ÚClassÚtokens© r`   r`   ú6/usr/lib/python3/dist-packages/pygments/lexers/dsls.pyr      sf    ýüýüÿÿÿà
#þ
þþ
Õr   c                   @   sŒ  e 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jfgde	j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'd(�ejfed)d'd(�ejfed*d'd'd+�ej fgd,e!j"fd-e!j#fd.e!j$fgd/œ
Z%d0S )1r   zg
    For `Thrift <https://thrift.apache.org/>`__ interface definitions.

    .. versionadded:: 2.1
    ÚThriftÚ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"\'])rJ   z	[^\\"\n]+ú'z
[^\\\'\n]+z[a-z*](\.\w|\w)*rI   z1(async|oneway|extends|throws|required|optional)\brE   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   r1   rD   )ÚvoidrA   ÚbyteÚi16Úi32Úi64r@   rB   Ú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Úcatchrk   ÚcloneÚcontinueÚdeclareÚdefr   ÚdelÚdeleteÚdoÚdynamicÚelifÚelseÚelseifÚelsifÚendÚ
enddeclareÚendforÚ
endforeachÚendifÚ	endswitchÚendwhileÚensureÚexceptÚexecÚfinallyr?   Ú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Úyieldr2   z1[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)z[+-]?0x[0-9A-Fa-f]+z[+-]?[0-9]+)
rK   rd   re   rg   rh   ri   rj   rk   rl   rm   N)&rL   rM   rN   rO   rP   rQ   rR   Ú	mimetypesr   r   ÚDoubler
   rS   r   r   rW   r   rX   r	   r   r   ÚFunctionr   r   r   rT   ÚEscaper   r^   rV   r   rU   ÚReservedr   rY   rZ   r\   r_   r`   r`   r`   ra   r   U   sŒ    ÿÿýïþýÿ
þ
þ
þ
þúùýüîíï'ý
ªr   c                   @   s\  e 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d�ejfged dd!�ejfd"eejeejeejƒfd#eeeejeeeejƒfd$eeeeeeƒfd%eeeejeejƒfged&dd!�efd'efd(ejfd)eejeejƒfgd*ed+fd,ejd-fd.ejfd/efd0efd1efd2e d3 ejfed4 ej fed ej fd5ej!fe	d6 e	 d7 efgd8efd9efd:ejfd;efgd<e"fd=e"fgd>eee"ƒfd?efgd@ej#fdAej#fd*edBfdCefgd@ej#fdDejdBfdCejfgdEœZ$dFS )Gr   zQ
    For `Zeek <https://www.zeek.org/>`_ scripts.

    .. versionadded:: 2.5
    ÚZeekÚzeekÚbroz*.zeekz*.broz[0-9a-fA-F]z(((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?z[A-Za-z0-9][-A-Za-z0-9]*rd   re   Ú
directivesÚ
attributesÚtypesrl   ÚliteralsÚ	operatorsÚpunctuationz2((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(?=\s*\()Úidentifiersrn   ro   z(\\)(\n)rp   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ú&r1   r2   )ÚanyÚenumÚrecordr�   ÚtableÚvectorr¼   ÚhookÚeventÚaddrrA   Úcountr@   ÚfileÚintÚintervalÚpatternÚportrB   ÚsubnetÚtimerD   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*))*)\brf   rB   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*)(::)rI   z\\.z%-?[0-9]*(\.[0-9]+)?[DTd-gsx]rJ   Ú.ú/)rK   rd   re   rø   rù   rú   rl   rû   rü   rý   rþ   rB   r'  N)%rL   rM   rN   rO   rP   rQ   rR   Ú_hexÚ_floatÚ_hr   r   rò   r   r   r   r   ÚPreprocr   r   ÚPseudorU   r   ÚWordr^   rX   rW   r   ÚRegexrV   r   rZ   rY   r\   r   ró   r_   r`   r`   r`   ra   r   ¾   sÎ    ÿôýÿÿýûúÿûúÿÿÿÿîûúÿö
æüú
þü
ý �
÷r   c                   @   sö   e 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jjfdejfgedddd�efgdefdefgd œZd!S )"r   z_
    For `Puppet <http://puppetlabs.com/>`__ configuration DSL.

    .. versionadded:: 1.6
    ÚPuppetÚpuppetz*.ppre   rl   Únamesrm   rü   Ústringsz[]{}:(),;[]ro   z(\s*)(#.*)$z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)z(in|and|or|not)\brI   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¡   Úcheckrk   Ú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ÚnotifyrF   Ú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)r1   r2   z	"([^"])*"z'(\\'|[^'])*')rK   re   rü   r3  rm   rl   r4  N)rL   rM   rN   rO   rP   rQ   rR   r   r   r   r   r   rT   r   r/  r   r]   ÚVariabler   r   rY   r[   rZ   r\   ÚLongr   r   r_   r`   r`   r`   ra   r   _  sV    ÷þþ
ÿü	
ùêéýþ
»r   c                   @   sä   e Zd ZdZdZdgZdgZdgZej	ej
B Zded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jfdefdejfdejfdejfdefdefgiZdd„ ZdS )r   zÊ
    `RSL <http://en.wikipedia.org/wiki/RAISE>`_ is the formal specification
    language used in RAISE (Rigorous Approach to Industrial Software Engineering)
    method.

    .. versionadded:: 2.0
    ÚRSLÚrslz*.rslztext/rslrK   )JÚBoolÚCharÚIntÚNatÚRealr   ÚUnitÚabsÚallÚalwaysr  r�   ÚaxiomÚcardr¡   ÚchannelÚchaosrk   Údevt_relationÚdomÚelemsr¬   r«   r¯   ÚexistsÚextendrI  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‰  rH   Úunionræ   rç   ÚvalueÚvariablerì   rí   Úwritez~isinz-inflistz-infsetz-listz-setr1   r2   z(variable|value)\bz--.*?\nz<:.*?:>z	\{!.*?!\}ú	/\*.*?\*/z^([ \t]*)([\w]+)([ \t]*)(:[^:])z5(^[ \t]*)([\w]+)([ \t]*)(\([\w\s,]*\))([ \t]*)(is|as)z\b[A-Z]\w*\brE   z".*"z\'.\'zq(><|->|-m->|/\\|<=|<<=|<\.|\|\||\|\^\||-~->|-~m->|\\/|>=|>>|\.>|\+\+|-\\|<->|=>|:-|~=|\*\*|<<|>>=|\+>|!!|\|=\||#)z [0-9]+\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-f]+ú[0-9]+ro   r(  c                 C   s   t  d| t j¡durdS dS )zP
        Check for the most common text in the beginning of a RSL file.
        zscheme\s*.*?=\s*class\s*typeNg      ð?)Úrerx  ÚI)Útextr`   r`   ra   Úanalyse_textí  s   ÿzRslLexer.analyse_textN) rL   rM   rN   rO   rP   rQ   rR   rð   rÉ  Ú	MULTILINEÚDOTALLÚflagsr   r   rX   r   r   r   r   rò   r   rU   rV   r   r˜  r   r   rY   rZ   r\   r_   rÌ  r`   r`   r`   ra   r   ¶  sR    õô
ÿÿÿþÝÿ(r   c                   @   sÀ   e 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 e ee
jeeeeƒfdefedƒgdejfdejfdefgdœZdS )r   z]
    For `Mscgen <http://www.mcternan.me.uk/mscgen/>`_ files.

    .. versionadded:: 1.6
    Ú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	\{|\}|,|;re   z\]rJ   z(\s*)(=)(\s*)ú,z(?://|#).*?\nz/\*(?:.|\n)*?\*/z
[ \t\r\n]+)rK   rÓ  re   N)rL   rM   rN   rO   rP   rQ   rR   Ú_varr   rU   r   ÚPropertyr   r/  ÚBuiltinr“  r   r   r   r]   r   r   r   rS   rT   r_   r`   r`   r`   ra   r   õ  sF    ÿýî
ÿÿú	ý
ãr   c                   @   sŠ   e Zd ZdZdZdgZdgZejej	B ej
B 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dS )r   z~
    For `SampleManager VGL <http://www.thermoscientific.com/samplemanager>`_
    source code.

    .. versionadded:: 1.6
    ÚVGLÚvglz*.rpfrK   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]+ro   N)rL   rM   rN   rO   rP   rQ   rR   rÉ  rÍ  rÎ  Ú
IGNORECASErÏ  r   rT   r   rV   r   r   r   r   r]   r   r   r_   r`   r`   r`   ra   r   &  s,    üñÿr   c                   @   s$  e Zd ZdZdZdgZdgZdgZej	ej
B 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dejfdejfdejfedeejeƒdfdeejeƒdfdejfdejfdefdefdefdejfdeeeƒdfdefdefeefdefdejfdefd efgd!œZd"S )#r   zU
    For `Alloy <http://alloy.mit.edu>`_ source code.

    .. versionadded:: 2.0
    ÚAlloyÚalloyz*.alsztext/x-alloyz[a-zA-Z_][\w\']*z[^\S\n]+z(extends)\brJ   rÔ  ú\{z--.*?$z//.*?$rÇ  z(module|open)(\s+)rÇ   z(sig|enum)(\s+)Úsigz(iden|univ|none)\bz(int|Int)\bz.(this|abstract|extends|set|seq|one|lone|let)\bz"(all|some|no|sum|disj|when|else)\bz'(run|check|for|but|exactly|expect|as)\bz(and|or|implies|iff|in)\bz(fun|pred|fact|assert)(\s+)Úfunz!!|#|&&|\+\+|<<|>>|>=|<=>|<=|\.|->z[-+/*%=<>&!^|~{}\[\]().]z[:,]rÈ  ú"(\\\\|\\[^\\]|[^"\\])*"rn   )rÞ  rÇ   rß  rK   N) rL   rM   rN   rO   rP   rQ   rR   rð   rÉ  rÍ  rÎ  rÏ  Úiden_rexr   Ú
text_tupler   r   r   r   r   rS   rT   r   rW   rX   rV   rU   r/  r   r\   r   r_   r`   r`   r`   ra   r   H  s\    ûþýÿë
ïr   c                
   @   sö   e 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d�efe	d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d#S )$r   z
    Lexer for `pan <https://github.com/quattor/pan/>`_ source files.

    Based on tcsh lexer.

    .. versionadded:: 2.0
    ÚPanÚpanz*.panÚbasicz\(ÚparenrÝ  ÚcurlyÚdata)r¿   rº   rí   r¬   rH   Úbindrì   ÚvalidÚfinalr3   Úuniquer³  r»   r   r‡  r¼   rÅ  Ú	structureÚ
extensibleÚdeclarationr1   r2   )4Úfile_contentsÚformatÚindexÚlengthÚmatchÚmatchesÚreplaceÚsplicer~  ÚsubstrÚto_lowercaseÚto_uppercaserA  Ú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]+|\\.|[^'\\])*'ro   z[^=\s\[\]{}()$"\'`\\;#]+z\d+(?= |\Z)z\}rJ   z:-z\w+z[^}:"\'`$]+ú:rK   ú\))rK   rå  rè  rç  ræ  N)rL   rM   rN   rO   rP   rQ   rR   r   r   r   r   r×  r   r   ró   r   r“  r   r   r   rñ   rS   r   r   r_   r`   r`   r`   ra   r   „  sX    üüû
öõèûú	þ
Ðr   c                   @   s.  e Zd ZdZdZddgZddgZg Zeddd	�Z	ed
dd	�Z
eddd	�Zeddd	�Zeddd	�Zeddd	�ZdZdZdZdZddeeeƒfdeejeeƒfdeeeeeƒfdefe	efe
efeefdeef ejfeejfeejfeejfdejfde eeeeƒfde eeeejƒfdefdefgiZdS )r   z�
    Lexer for `crmsh <http://crmsh.github.io/>`_ configuration files
    for Pacemaker clusters.

    .. versionadded:: 2.1
    ÚCrmshÚcrmshÚpcmkz*.crmshz*.pcmk)rk  Ú	primitiveÚgroupr£   ÚmsÚlocationÚ
colocationÚorderÚfencing_topologyÚ
rsc_ticketÚrsc_templateÚpropertyÚrsc_defaultsÚop_defaultsÚ
acl_targetÚ	acl_groupr‹  rt  r…  z(?![\w#$-])rD   )ÚparamsÚmetaÚ
operationsÚopÚrulerù   Úutilization)r¸  rÆ  Údeny)r›   rÍ   )rC  Ú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)rK   z^(#.*)(\n)?z!([\w#$-]+)(=)("(?:""|[^"])*"|\S+)z(node)(\s+)([\w#$-]+)(:)z([+-]?([0-9]+|inf)):z(?:%s:)?(%s)(?![\w#$-])z#[a-z]+(?![\w#$-])z(%s)(:)("(?:""|[^"])*"|\S+)z!([\w#$-]+)(?:(:)(%s))?(?![\w#$-])z(\\(?=\n)|[\[\](){}/:@])z\s+|\nN) rL   rM   rN   rO   rP   rQ   rR   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   r/  r×  r_   r`   r`   r`   ra   r   È  s^    ûþÿÿ
ÿÿßÿr   c                   @   sª   e 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d�efee	dd�ejfde
 ejfe
ejfdefgiZdS )r   zn
    Lexer for `Flatline <https://github.com/bigmlcom/flatline>`_ expressions.

    .. versionadded:: 2.2
    Ú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,   ÚmaximumrZ  Ú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!$%*+<=>?/.#-]+rK   z[,]+ro   z
-?\d+\.\d+z-?\d+z0x-?[a-f\d]+rà  z\\(.|[a-z]+)Ú_ú rD   z(?<=\()z(\(|\))N)rL   rM   rN   rO   rP   rQ   rR   rð   Úspecial_formsÚbuiltinsÚ
valid_namer   r   r   rY   r\   rZ   r   r˜  ÚSymbolr   r   r   r×  rò   r“  r   r_   r`   r`   r`   ra   r     s2    âÿr   c                   @   sN  e Zd ZdZdZdgZdgZdZdd„ Zdd	„ Z	d
d„ Z
dd„ Zeddd�ejfedƒgde efdejfdejdfdefdejfdejfdefeddd�ejfeddd�ejdfeddd�ejfeddd�ejfdeef eejeejƒfd eef efd!efgd"ed#feddd�ed$fedƒgd%e
d&ƒfgd%e
d'ƒfgd(œZd,d*d+„Zd)S )-r   zb
    Lexer for `Snowball <http://snowballstem.org/>`_ source code.

    .. versionadded:: 2.2
    ÚSnowballÚsnowballz*.sblz\n\r\t c                 K   s   |   ¡  tj| fi |¤Ž d S ©N)Ú_reset_stringescapesr   Ú__init__)rÙ   Úoptionsr`   r`   ra   r’  g  s   zSnowballLexer.__init__c                 C   s   d| _ d| _d S )Nrr   )Ú_startÚ_end)rÙ   r`   r`   ra   r‘  k  s   
z"SnowballLexer._reset_stringescapesc                    s   ‡ fdd„}|S )Nc           	      3   sJ  � |  ¡ }| ¡ }t dt | j¡ ¡j}t dt | j¡ ¡j}d}ˆ }|t|ƒk rœ|rp|||ƒ}||  d¡ t	j
| d¡fV  | d¡dkr]||  d¡ t	j
| d¡fV  |j ¡  n?||  d¡ t	j| d¡fV  | ¡ }|||ƒ}||  ¡  t	j| ¡ fV  | d¡| jkr�d|jd< n| ¡ }d}|t|ƒk s+|| ¡  |_d S )	Nz([^%s]*)(.)r   é   é   rr   r   éÿÿÿÿT)Ústartr!  rÉ  Úcompiler   r”  rô  r•  r¯  r   rS   ÚstackÚpopró   r¯   Úpos)	Úlexerrô  ÚctxÚsrË  rB   r   r�  Ú	do_string©Údo_string_firstr`   ra   Úcallbackp  s4   €



ðz'SnowballLexer._string.<locals>.callbackr`   )r£  r¤  r`   r¢  ra   Ú_stringo  s   zSnowballLexer._stringc                 C   s6   |  d¡| _|  d¡| _ttjttjttjƒ| ||ƒS )Né   é   )	r!  r”  r•  r   r   rô   r   r   ró   )rž  rô  rŸ  r`   r`   ra   Ú_stringescapes‹  s   ÿÿzSnowballLexer._stringescapes)r¯  Úlenofr1   rD   Úroot1z[%s]+z\d+rr   rB   z[()]rq   z//.*z)[!*+\-/<=>]=|[-=]>|<[+-]|[$*+\-/<=>?\[\]])r�   ÚgetÚhexÚamongrB  ÚdecimalÚbackwardmode)r4  ÚbooleansÚintegersÚroutinesÚ	externalsÚ	groupingsrï  )!r©   rÍ   r›   rº   ÚhopÚnonrÌ   r�   râ   rH  r¾   ÚlooprÊ   Útestr‰  rI  ÚunsetÚatmarkÚattachr¨   ÚgopastÚinsertÚrepeatrÚ   ÚtomarkÚatleastÚatlimitÚreverseÚsetmarkÚtolimitÚsetlimitÚ	backwardsÚ	substring)ÚsizeÚlimitÚcursorÚmaxintÚminintz(stringdef\b)([%s]*)([^%s]+)z%(stringescapes\b)([%s]*)(.)([%s]*)(.)z[A-Za-z]\w*r  rJ   )rª  rï  z[^']*'TF)rK   rª  rï  rB   r   Nc                 C   s   |   ¡  t | ||¡S r�  )r‘  r   Úget_tokens_unprocessed)rÙ   rË  Úcontextr`   r`   ra   rÍ  Â  s   z$SnowballLexer.get_tokens_unprocessed)NN) rL   rM   rN   rO   rP   rQ   rR   Ú_wsr’  r‘  r¥  r¨  r   r   r/  r   r   r   r\   r   rS   r   r   rT   r   rô   r   r×  r   ró   r_   rÍ  r`   r`   r`   ra   r   Z  sx    þ

ÿþÿþûúÿþ
ÿ
ÿäÿü
ÿ
ÿÔ1r   )$rO   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   r`   r`   r`   ra   Ú<module>   s&    
,,>i W?1"<DFL