a
    ;@bɍ                     @   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 BufferZprotobufprotoz*.protoz[ \t]+z[,;{}\[\]()<>]z/(\\\n)?/(\n|(.|\n)*?[^\\]\n)z/(\\\n)?\*(.|\n)*?\*(\\\n)?/)importoptionoptionalrequiredZrepeatedZreservedr   ZpackedZctype
extensionstomaxZrpcreturnsZoneofZsyntax\bprefixsuffix)Zint32Zint64Zuint32Zuint64Zsint32Zsint64Zfixed32Zfixed64Zsfixed32Zsfixed64floatdoubleboolstringbytesr,   (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)rootr4   r5   r6   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 rN   rN   3lib/python3.9/site-packages/pygments/lexers/dsls.pyr      sd   #

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
    ZThriftZ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"\'])r8   z	[^\\"\n]+'z
[^\\\'\n]+z[a-z*](\.\w|\w)*r7   z1(async|oneway|extends|throws|required|optional)\br3   z(const|typedef)\b)Zcpp_namespaceZcpp_includeZcpp_typeZjava_packageZcocoa_prefixZcsharp_namespaceZdelphi_namespaceZphp_namespaceZ	py_moduleZperl_packageZruby_namespaceZsmalltalk_categoryZsmalltalk_prefixZxsd_allZxsd_optionalZxsd_nillableZxsd_namespaceZ	xsd_attrsr   r)   r2   )Zvoidr/   ZbyteZi16Zi32Zi64r.   r0   ZbinarymaplistsetZslistZsenum)eZBEGINZENDZ	__CLASS__Z__DIR__Z__FILE__Z__FUNCTION__Z__LINE__Z
__METHOD__Z__NAMESPACE__ZabstractaliasandargsasassertZbeginbreakcaseZcatchrW   clonecontinuedeclaredefr   deldeletedoZdynamicelifelseZelseifelsifendZ
enddeclareZendforZ
endforeachZendifZ	endswitchZendwhileZensureexceptexecfinallyr-   forforeachfunctionglobalgotoifZ
implementsr!   inZinlineZ
instanceof	interfaceislambdamoduleZnativenewnextZnilnotorpassZpublicprintZprivateZ	protectedraiseZredoZrescueZretryregisterreturnselfsizeofZstaticsuperswitchsynchronizedthenr   throwZ	transienttryundefZunlessZunsigneduntilusevarZvirtualZvolatilewhenwhilewithxoryieldr*   z1[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)z[+-]?0x[0-9A-Fa-f]+z[+-]?[0-9]+)
r9   rP   rQ   rS   rT   rU   rV   rW   rX   rY   N)&r:   r;   r<   r=   r>   r?   r@   	mimetypesr   r   Doubler
   rA   r   r   rE   r   rF   r	   r   r   Functionr   r   r   rB   Escaper   rL   rD   r   rC   Reservedr   rG   rH   rJ   rM   rN   rN   rN   rO   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
    ZZeekZzeekZbroz*.zeekz*.broz[0-9a-fA-F]z(((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?z[A-Za-z0-9][-A-Za-z0-9]*rP   rQ   
directives
attributestypesrX   literals	operatorspunctuationz2((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(?=\s*\()identifiersrZ   r[   z(\\)(\n)r\   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   Zadd_funcZdelete_funcZexpire_funcZread_expireZwrite_expireZcreate_expirer   Z
persistentZrotate_intervalZrotate_sizeZencryptZ
raw_outputZ	mergeableZerror_handlerZtype_column
deprecated&r)   r*   )anyenumrecordra   tableZvectorry   hookZeventZaddrr/   countr.   fileintintervalpatternportr0   Zsubnettimer2   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   Zexportr|   rq   rw   r   r   rg   r   rj   Zfallthroughr   r   rh   addrn   r   timeoutschedulez	(print)\bz(global|local|const|option)\bz4(module)(\s+)(([A-Za-z_]\w*)(?:::([A-Za-z_]\w*))*)\brR   r0   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*)(::)r7   z\\.z%-?[0-9]*(\.[0-9]+)?[DTd-gsx]r8   ./)r9   rP   rQ   r   r   r   rX   r   r   r   r   r0   r   N)%r:   r;   r<   r=   r>   r?   r@   Z_hexZ_floatZ_hr   r   r   r   r   r   r   ZPreprocr   r   ZPseudorC   r   WordrL   rF   rE   r   ZRegexrD   r   rH   rG   rJ   r   r   rM   rN   rN   rN   rO   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
    ZPuppetZpuppetz*.pprQ   rX   namesrY   r   stringsz[]{}:(),;[]r[   z(\s*)(#.*)$z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)z(in|and|or|not)\br7   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?)mZabsentZalertrb   auditZaugeasbeforerh   checkrW   ZcomputerZ
configuredZ	containedZcreate_resourcesZcritZcrondebugr   definedefinedZ	directoryrq   rr   Zemergerrru   Z	extlookupfailfalser   Z
filebucketZ	fqdn_randZgeneratehostr|   r!   r   infoZinheritsZinline_templateZ	installedr~   Zk5loginZlatestlinkZloglevelZmacauthorizationZ	mailaliasZmaillistZmcxmd5ZmountZmountedZnagios_commandZnagios_contactZnagios_contactgroupZnagios_hostZnagios_hostdependencyZnagios_hostescalationZnagios_hostextinfoZnagios_hostgroupZnagios_serviceZnagios_servicedependencyZnagios_serviceescalationZnagios_serviceextinfoZnagios_servicegroupZnagios_timeperiodnodeZnoopZnoticenotifyr4   ZpresentZpurgedZrealizeZregsubstZ	resourcesroleZrouterZrunningr   Zscheduled_tasksearchZ
selbooleanZ	selmoduleZservicesha1Z
shellquotesplitZsprintfZssh_authorized_keyZsshkeyZstagestoppedZ	subscribetagZtaggedtemplateZtidytruer   Z	unmounteduserZ
versioncmpZvlanZwarningZyumrepoZzfszoneZzpoolz(?i)r)   r*   z	"([^"])*"z'(\\'|[^'])*')r9   rQ   r   r   rY   rX   r   N)r:   r;   r<   r=   r>   r?   r@   r   r   r   r   r   rB   r   r   r   rK   Variabler   r   rG   rI   rH   rJ   ZLongr   r   rM   rN   rN   rN   rO   r   _  sT   
	
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
    ZRSLZrslz*.rslztext/rslr9   )JZBoolCharZIntZNatZRealr   ZUnitabsallalwaysr   re   ZaxiomZcardrh   ZchannelZchaosrW   Zdevt_relationZdomZelemsrq   rp   rs   existsextendr   rw   Zhdhider|   r}   r   ZindsZ
initialiser   ZinterZisinlenletlocalZltl_assertionobjectZofoutZpostZprereadrealrngschemeskipstopZswapr   ZtheoryZ	test_casetlZtransition_systemr   r6   unionr   r   valuevariabler   r   writez~isinz-inflistz-infsetz-listz-setr)   r*   z(variable|value)\bz--.*?\nz<:.*?:>z	\{!.*?!\}	/\*.*?\*/z^([ \t]*)([\w]+)([ \t]*)(:[^:])z5(^[ \t]*)([\w]+)([ \t]*)(\([\w\s,]*\))([ \t]*)(is|as)z\b[A-Z]\w*\br3   z".*"z\'.\'zq(><|->|-m->|/\\|<=|<<=|<\.|\|\||\|\^\||-~->|-~m->|\\/|>=|>>|\.>|\+\+|-\\|<->|=>|:-|~=|\*\*|<<|>>=|\+>|!!|\|=\||#)z [0-9]+\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-f]+[0-9]+r[   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      ?)rer   I)textrN   rN   rO   analyse_text  s    zRslLexer.analyse_textN) r:   r;   r<   r=   r>   r?   r@   r   r   	MULTILINEDOTALLflagsr   r   rF   r   r   r   r   r   r   rC   rD   r   r   r   r   rG   rH   rJ   rM   r   rN   rN   rN   rO   r     sP   
(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
    ZMscgenZmscgenZ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	\{|\}|,|;rQ   z\]r8   z(\s*)(=)(\s*),z(?://|#).*?\nz/\*(?:.|\n)*?\*/z
[ \t\r\n]+)r9   r   rQ   N)r:   r;   r<   r=   r>   r?   r@   Z_varr   rC   r   ZPropertyr   r   Builtinr   r   r   r   rK   r   r   r   rA   rB   rM   rN   rN   rN   rO   r     sD   
	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
    ZVGLZvglz*.rpfr9   z	\{[^}]*\}rk   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]+r[   N)r:   r;   r<   r=   r>   r?   r@   r   r   r   
IGNORECASEr   r   rB   r   rD   r   r   r   r   rK   r   r   rM   rN   rN   rN   rO   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
    ZAlloyZalloyz*.alsztext/x-alloyz[a-zA-Z_][\w\']*z[^\S\n]+z(extends)\br8   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   "(\\\\|\\[^\\]|[^"\\])*"rZ   )r  r   r  r9   N) r:   r;   r<   r=   r>   r?   r@   r   r   r   r   r   Ziden_rexr   Z
text_tupler   r   r   r   r   rA   rB   r   rE   rF   rD   rC   r   r   rJ   r   rM   rN   rN   rN   rO   r   H  sZ   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
    ZPanZpanz*.panbasicz\(parenr   curlydata)r|   rw   r   rq   r6   Zbindr   Zvalidfinalr+   uniquer   rx   r   r   ry   r   Z	structureZ
extensibledeclarationr)   r*   )4Zfile_contentsformatindexlengthmatchmatchesreplaceZsplicer   ZsubstrZto_lowercaseZto_uppercaser   error	tracebackr   Zbase64_decodeZbase64_encodeZdigestescapeZunescapeappendZcreatefirstZnlistkeyr`   merger   ZprependZ
is_booleanZ
is_definedZ	is_doubleZis_listZis_longZis_nlistZis_nullZ	is_numberZis_propertyis_resourceZ	is_stringZ
to_booleanZ	to_doubleZto_longZ	to_stringri   rn   r   Zpath_existsZ	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]+|\\.|[^'\\])*'r[   z[^=\s\[\]{}()$"\'`\\;#]+z\d+(?= |\Z)z\}r8   z:-z\w+z[^}:"\'`$]+:r9   \))r9   r  r  r  r  N)r:   r;   r<   r=   r>   r?   r@   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rA   r   r   rM   rN   rN   rN   rO   r     sV   
	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
    ZCrmshZcrmshZpcmkz*.crmshz*.pcmk)r   Z	primitivegroupri   mslocationZ
colocationorderZfencing_topologyZ
rsc_ticketZrsc_templatepropertyZrsc_defaultsZop_defaultsZ
acl_targetZ	acl_groupr   r   r   z(?![\w#$-])r2   )paramsmetaZ
operationsopZruler   Zutilization)r   r   Zdeny)rc   r   )r   Znot_defined)Z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)r9   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) r:   r;   r<   r=   r>   r?   r@   r   r   elemsubZaclZbin_relZun_opsZdate_expZacl_modZbin_opsZval_qualZrsc_role_actionr   r   r   r   rK   r   r   r   r   r   r   r   rM   rN   rN   rN   rO   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
    ZFlatlineZflatlineztext/x-flatline)r   )z!=*+-<z<==>z>=r   Zacosr   zall-butzall-with-defaultszall-with-numeric-defaultrc   ZasinZatanZavgz
avg-windowz
bin-centerz	bin-countcallzcategory-countZceilZcondzcond-windowZconsZcosZcoshr   zdiff-windowZdivzensure-valuezensure-weighted-valueZepochz	epoch-dayzepoch-fieldsz
epoch-hourzepoch-millisecondzepoch-minutezepoch-monthzepoch-secondzepoch-weekdayz
epoch-yearZexpfZfieldz
field-propfieldsfilterr  Zfloorheadr|   r}   Zintegerlanguager  Zlevenshteinzlinear-regressionr`   Zlnr   Zlog10r_   r  zmatches?r'   Zmaximumr   ZmeanZmedianminZminimummissingzmissing-countzmissing?Zmissing_countmodmode	normalizer   ZnthZoccurrencesr   Z
percentilezpercentile-labelZ
populationzpopulation-fractionpowZ	preferredz
preferred?zquantile-labelZrandzrand-intzrandom-valuezre-quoter   r  zreplace-firstrestroundz
row-numberzsegment-labelr   Zsha256ZsinZsinhZsqrtZsquarezstandard-deviationZstandard_deviationstrZsubssumzsum-squaresz
sum-windowZsum_squaresZsummaryz
summary-nozsummary-strtailZtanZtanhz
to-degreesz
to-radiansZvarianceZ	vectorizezweighted-random-valueZwindowZwinnowzwithin-percentiles?zz-scorez(?!#)[\w!$%*+<=>?/.#-]+r9   z[,]+r[   z
-?\d+\.\d+z-?\d+z0x-?[a-f\d]+r  z\\(.|[a-z]+)_ r2   z(?<=\()z(\(|\))N)r:   r;   r<   r=   r>   r?   r@   r   Zspecial_formsbuiltinsZ
valid_namer   r   r   rG   rJ   rH   r   r   ZSymbolr   r   r   r   r   r   r   rM   rN   rN   rN   rO   r     s0   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
    ZSnowballZsnowballz*.sblz\n\r\t c                 K   s   |    tj| fi | d S N)_reset_stringescapesr   __init__)r   optionsrN   rN   rO   rD  g  s    zSnowballLexer.__init__c                 C   s   d| _ d| _d S )Nr^   )_start_end)r   rN   rN   rO   rC  k  s    z"SnowballLexer._reset_stringescapesc                    s    fdd}|S )Nc           	      3   sF  |  }| }tdt| j j}tdt| j j}d} }|t|k r4|r|||}|| d t	j
|dfV  |ddkr|| d t	j
|dfV  |j  q4|| d t	j|dfV  | }|||}||   t	j| fV  |d| jkr&d|jd< q4| }d}qH||  |_d S )	Nz([^%s]*)(.)r         r^   r  T)startr  r   compiler  rF  r  rG  r   r   rA   stackpopr   rs   pos)	lexerr  ctxsr   r0   r  rO  Z	do_stringdo_string_firstrN   rO   callbackp  s0    



z'SnowballLexer._string.<locals>.callbackrN   )rT  rU  rN   rS  rO   _stringo  s    zSnowballLexer._stringc                 C   s6   | d| _| d| _ttjttjttj| ||S )N      )	r  rF  rG  r   r   r   r   r   r   )rP  r  rQ  rN   rN   rO   _stringescapes  s    zSnowballLexer._stringescapes)r   Zlenofr)   r2   root1z[%s]+z\d+r^   r0   z[()]r]   z//.*z)[!*+\-/<=>]=|[-=]>|<[+-]|[$*+\-/<=>?\[\]])re   gethexZamongr   decimalZbackwardmode)r   ZbooleansZintegersZroutinesZ	externalsZ	groupingsr
  )!ro   r   rc   rw   ZhopZnonr   ra   r   r   r{   Zloopr   testr   r   ZunsetZatmarkZattachrn   Zgopastinsertrepeatr   ZtomarkZatleastZatlimitreverseZsetmarkZtolimitZsetlimitZ	backwardsZ	substring)sizelimitZcursorZmaxintZminintz(stringdef\b)([%s]*)([^%s]+)z%(stringescapes\b)([%s]*)(.)([%s]*)(.)z[A-Za-z]\w*r  r8   )rZ  r
  z[^']*'TF)r9   rZ  r
  r0   r  Nc                 C   s   |    t| ||S rB  )rC  r   get_tokens_unprocessed)r   r   contextrN   rN   rO   rd    s    z$SnowballLexer.get_tokens_unprocessed)NN) r:   r;   r<   r=   r>   r?   r@   Z_wsrD  rC  rV  rY  r   r   r   r   r   r   rJ   r   rA   r   r   rB   r   r   r   r   r   r   rM   rd  rN   rN   rN   rO   r   Z  sv   





1r   )$r=   r   Zpygments.lexerr   r   r   r   r   r   r   r	   r
   Zpygments.tokenr   r   r   r   r   r   r   r   r   __all__r   r   r   ZBroLexerr   r   r   r   r   r   r   r   r   rN   rN   rN   rO   <module>   s$   
,,>i W?1"<DFL