U
    luf                     @   sH  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 ddddd	d
ddddddg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-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                   @   s.  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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   zP
    Lexer for Protocol Buffer definition files.

    .. versionadded:: 1.4
    zProtocol Bufferz/https://developers.google.com/protocol-buffers/Zprotobufprotoz*.protoz[ \t]+z[,;{}\[\]()<>]z/(\\\n)?/(\n|(.|\n)*?[^\\]\n)z/(\\\n)?\*(.|\n)*?\*(\\\n)?/)importoptionoptionalrequiredZrepeatedreservedr   packedctype
extensionstomaxZrpcZ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)rootr6   r7   r8   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 rQ   rQ   8/tmp/pip-unpacked-wheel-7eq1ciah/pygments/lexers/dsls.pyr      sl    
 
 #

c                   @   s  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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d0
Z&d1S )2r   zF
    For Thrift interface definitions.

    .. versionadded:: 2.1
    ZThriftzhttps://thrift.apache.org/Z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"\'])r:   z	[^\\"\n]+'z
[^\\\'\n]+z[a-z*](\.\w|\w)*r9   z1(async|oneway|extends|throws|required|optional)\br5   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+   r4   )voidr1   byteZi16Zi32Zi64r0   r2   binarymaplistsetslistZsenum)eZBEGINZENDZ	__CLASS__Z__DIR__Z__FILE__Z__FUNCTION__Z__LINE__Z
__METHOD__Z__NAMESPACE__ZabstractaliasandargsasassertbeginbreakcaseZcatchrZ   clonecontinuedeclaredefr   deldeletedoZdynamicelifelseZelseifelsifendZ
enddeclareZendforZ
endforeachendifZ	endswitchZendwhileZensureexceptexecfinallyr/   forforeachfunctionglobalgotoifZ
implementsr!   ininlineZ
instanceof	interfaceislambdamoduleZnativenewnextnilnotorpasspublicprintprivateZ	protectedraiseZredoZrescue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]+)
r;   rS   rT   rV   rW   rX   rY   rZ   r[   r\   N)'r<   r=   r>   r?   r@   rA   rB   rC   	mimetypesr   r   Doubler
   rD   r   r   rH   r   rI   r	   r   r   Functionr   r   r   rE   Escaper   rO   rG   r   rF   Reservedr   rJ   rK   rM   rP   rQ   rQ   rQ   rR   r   U   s   
 
 



 'c                   @   s`  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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d0efd1efd2efd3e d4 ej fe	d5 ej!fe	d ej!fd6ej"fe
d7 e
 d8 efgd9efd:e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dAej$fdBej$fd+edCfdDefgdAej$fdEejdCfdDejfgdFZ%dGS )Hr   z6
    For Zeek scripts.

    .. versionadded:: 2.5
    ZZeekzhttps://www.zeek.org/ZzeekZbroz*.zeekz*.broz[0-9a-fA-F]z(((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?z[A-Za-z0-9][-A-Za-z0-9]*rS   rT   
directives
attributestypesr[   literals	operatorspunctuationz2((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(?=\s*\()identifiersr]   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   
persistentZrotate_intervalZrotate_sizeZencryptZ
raw_outputZ	mergeableZerror_handlerZtype_column
deprecated&r+   r,   )anyenumrecordrg   tableZvectorr   hookeventaddrr1   countr0   fileintintervalpatternportr2   Zsubnettimer4   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   ry   r   r   r   ro   r   rr   Zfallthroughr   r   rp   addrv   r   timeoutschedulez	(print)\bz(global|local|const|option)\bz4(module)(\s+)(([A-Za-z_]\w*)(?:::([A-Za-z_]\w*))*)\brU   r2   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*)(::)r9   z\\.z%-?[0-9]*(\.[0-9]+)?[DTd-gsx]r:   ./)r;   rS   rT   r   r   r   r[   r   r   r   r   r2   r   N)&r<   r=   r>   r?   r@   rA   rB   rC   Z_hexZ_floatZ_hr   r   r   r   r   r   r   ZPreprocr   r   ZPseudorF   r   WordrO   rI   rH   r   RegexrG   r   rK   rJ   rM   r   r   rP   rQ   rQ   rQ   rR   r      s     


 c                   @   s   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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   zB
    For Puppet configuration DSL.

    .. versionadded:: 1.6
    ZPuppetzhttps://puppet.com/Zpuppetz*.pprT   r[   namesr\   r   stringsz[]{}:(),;[]r^   z(\s*)(#.*)$z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)z(in|and|or|not)\br9   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absentalertri   auditZaugeasbeforerp   checkrZ   ZcomputerZ
configuredZ	containedZcreate_resourcescritcrondebugr   definedefined	directoryry   rz   emergerrr~   Z	extlookupfailfalser   Z
filebucketZ	fqdn_randgeneratehostr   r!   r   infoZinheritsZinline_template	installedr   Zk5loginZlatestlinkZloglevelZmacauthorizationZ	mailaliasZmaillistZmcxmd5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noopnoticenotifyr6   ZpresentZpurgedZrealizeZregsubst	resourcesroleZrouterZrunningr   Zscheduled_tasksearchZ
selbooleanZ	selmoduleZservicesha1Z
shellquotesplitZsprintfZssh_authorized_keyZsshkeyZstagestopped	subscribetagZtaggedtemplateZtidytruer   Z	unmounteduserZ
versioncmpZvlanwarningZyumrepoZzfszoneZzpoolz(?i)r+   r,   z	"([^"])*"z'(\\'|[^'])*')r;   rT   r   r   r\   r[   r   N)r<   r=   r>   r?   r@   rA   rB   rC   r   r   r   r   r   rE   r   r   r   rN   Variabler   r   rJ   rL   rK   rM   ZLongr   r   rP   rQ   rQ   rQ   rR   r   a  sZ   
 	
 c                   @   s   e Zd 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 is the formal specification
    language used in RAISE (Rigorous Approach to Industrial Software Engineering)
    method.

    .. versionadded:: 2.0
    ZRSLz"http://en.wikipedia.org/wiki/RAISEZrslz*.rslztext/rslr;   )JZBoolCharZIntZNatRealr   ZUnitabsallalwaysr   rl   ZaxiomZcardrp   ZchannelZchaosrZ   Zdevt_relationdomelemsry   rx   r{   existsextendr   r   ZhdZhider   r   r   Zinds
initialiser   ZinterisinlenletlocalZltl_assertionobjectZofoutpostprereadrealrngschemeskipstopZswapr   ZtheoryZ	test_casetlZtransition_systemr   r8   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*\br5   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k	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)textrQ   rQ   rR   analyse_text  s    zRslLexer.analyse_textN)!r<   r=   r>   r?   r@   rA   rB   rC   r   r  	MULTILINEDOTALLflagsr   r   rI   r   r   r   r   r   r   rF   rG   r   r   r   r   rJ   rK   rM   rP   r  rQ   rQ   rQ   rR   r     sZ       (c                   @   s   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 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   z6
    For Mscgen files.

    .. versionadded:: 1.6
    ZMscgenz!http://www.mcternan.me.uk/mscgen/Z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	\{|\}|,|;rT   z\]r:   z(\s*)(=)(\s*),z(?://|#).*?\nz/\*(?:.|\n)*?\*/z
[ \t\r\n]+)r;   r!  rT   N)r<   r=   r>   r?   r@   rA   rB   rC   Z_varr   rF   r   ZPropertyr   r   Builtinr   r   r   r   rN   r   r   r   rD   rE   rP   rQ   rQ   rQ   rR   r     sF   
	c                   @   s   e Zd 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   zG
    For SampleManager VGL source code.

    .. versionadded:: 1.6
    ZVGLz-http://www.thermoscientific.com/samplemanagerZvglz*.rpfr;   z	\{[^}]*\}rs   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@   rA   rB   rC   r  r  r  
IGNORECASEr   r   rE   r   rG   r   r   r   r   rN   r   r   rP   rQ   rQ   rQ   rR   r   +  s,   c                   @   sV  e Zd 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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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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 j!feefd%efgd&Z"d'S )(r   z;
    For Alloy source code.

    .. versionadded:: 2.0
    ZAlloyzhttp://alloy.mit.eduZalloyz*.alsztext/x-alloyz[a-zA-Z_][\w]*"*z"\b(\\\\|\\[^\\]|[^"\\])*"z[^\S\n]+z(extends)\br:   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  r]   )r'  r   r&  r(  r;   N)#r<   r=   r>   r?   r@   rA   rB   rC   r   r  r  r  r   Ziden_rexZ
string_rexr   Z
text_tupler   r   r   r   r   r   r   rD   rE   r   rH   rI   rG   rF   r   r   rM   rP   rQ   rQ   rQ   rR   r   M  sj   c                
   @   s   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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   zZ
    Lexer for pan source files.

    Based on tcsh lexer.

    .. versionadded:: 2.0
    ZPanzhttps://github.com/quattor/pan/Zpanz*.panbasicz\(parenr%  curlydata)r   r   r   ry   r8   bindr   Zvalidfinalr-   uniquer	  r   r   r   r   r  Z	structureZ
extensibledeclarationr+   r,   )4file_contentsformatindexlengthmatchmatchesreplaceZsplicer   substrZto_lowercaseZto_uppercaser   error	tracebackr   Zbase64_decodeZbase64_encodedigestescapeunescapeappendcreatefirstZnlistkeyrf   merger   prependZ
is_booleanZ
is_definedZ	is_doubleZis_listZis_longZis_nlistZis_nullZ	is_numberZis_propertyis_resource	is_stringZ
to_booleanZ	to_doubleZto_longZ	to_stringrq   rv   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\}r:   z:-z\w+z[^}:"\'`$]+:r;   \))r;   r)  r,  r+  r*  N)r<   r=   r>   r?   r@   rA   rB   rC   r   r   r   r   r#  r   r   r   r   r   r   r   r   r   rD   r   r   rP   rQ   rQ   rQ   rR   r     s\    
 	c                   @   s2  e Zd 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 configuration files for Pacemaker clusters.

    .. versionadded:: 2.1
    ZCrmshzhttp://crmsh.github.io/ZcrmshZpcmkz*.crmshz*.pcmk)r   Z	primitivegrouprq   mslocationZ
colocationorderZfencing_topologyZ
rsc_ticketZrsc_templatepropertyZrsc_defaultsZop_defaultsZ
acl_targetZ	acl_groupr   r   r   z(?![\w#$-])r4   )paramsmeta
operationsopZruler   Zutilization)r  r  Zdeny)rj   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)r;   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@   rA   rB   rC   r   r   elemsubZaclZbin_relZun_opsZdate_expZacl_modZbin_opsZval_qualZrsc_role_actionr   r   r   r   rN   r   r   r   r   r   r   r#  rP   rQ   rQ   rQ   rR   r     s^   
c                   @   s   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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   zD
    Lexer for Flatline expressions.

    .. versionadded:: 2.2
    ZFlatlinez$https://github.com/bigmlcom/flatlineZflatlineztext/x-flatline)r  )z!=*+-<z<==>z>=r   acosr   zall-butzall-with-defaultszall-with-numeric-defaultrj   asinatanavgz
avg-windowz
bin-centerz	bin-countcallzcategory-countceilZcondzcond-windowZ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languager4  Zlevenshteinzlinear-regressionrf   lnr   log10re   r6  zmatches?r*   maximumr   ZmeanZmedianminZminimummissingzmissing-countzmissing?Zmissing_countmodmode	normalizer   Znthoccurrencesr   Z
percentilezpercentile-label
populationzpopulation-fractionpow	preferredz
preferred?zquantile-labelZrandzrand-intzrandom-valuezre-quoter  r7  zreplace-firstrestroundz
row-numberzsegment-labelr   sha256sinsinhsqrtZsquarezstandard-deviationZstandard_deviationstrsubssumzsum-squaresz
sum-windowZsum_squaressummaryz
summary-nozsummary-strtailtantanhz
to-degreesz
to-radiansZvarianceZ	vectorizezweighted-random-valueZwindowZwinnowzwithin-percentiles?zz-scorez(?!#)[\w!$%*+<=>?/.#-]+r;   z[,]+r^   z
-?\d+\.\d+z-?\d+z0x-?[a-f\d]+z"(\\\\|\\[^\\]|[^"\\])*"z\\(.|[a-z]+)_ r4   z(?<=\()z(\(|\))N)r<   r=   r>   r?   r@   rA   rB   rC   r   Zspecial_formsbuiltinsZ
valid_namer   r   r   rJ   rM   rK   r   r   ZSymbolr   r   r   r#  r   r   r   rP   rQ   rQ   rQ   rR   r     s2   c                   @   sR  e Zd 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dejf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 )0r   zD
    Lexer for Snowball source code.

    .. versionadded:: 2.2
    ZSnowballzhttps://snowballstem.org/Zsnowballz*.sblz\n\r\t c                 K   s   |    tj| f| d S N)_reset_stringescapesr   __init__)r   optionsrQ   rQ   rR   r  x  s    zSnowballLexer.__init__c                 C   s   d| _ d| _d S )Nra   )_start_end)r   rQ   rQ   rR   r  |  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         ra   r<  T)startrI  r  compiler<  r  r5  r  r  r   rD   stackpopr   r{   pos)	lexerr5  ctxsr  r2   r<  r  Z	do_stringdo_string_firstrQ   rR   callback  s0    



z'SnowballLexer._string.<locals>.callbackrQ   )r  r  rQ   r  rR   _string  s    zSnowballLexer._stringc                 C   s6   | d| _| d| _ttjttjttj| ||S )N      )	rI  r  r  r   r   r   r   r   r   )r  r5  r  rQ   rQ   rR   _stringescapes  s      zSnowballLexer._stringescapeszlen\bzlenof\broot1z[%s]+z\d+ra   r2   z[()]r`   z//.*z)[!*+\-/<=>]=|[-=]>|<[+-]|[$*+\-/<=>?\[\]])rl   gethexZamongr   decimalZbackwardmoder+   r4   )r   ZbooleansZintegersZroutinesZ	externalsZ	groupingsr0  )!rw   r   rj   r   ZhopZnonr   rg   r   r   r   Zloopr   testr   r   ZunsetZatmarkattachrv   Zgopastinsertrepeatr   ZtomarkatleastZatlimitreverseZsetmarkZtolimitZsetlimitZ	backwardsZ	substring)sizelimitcursorZmaxintZminintz(stringdef\b)([%s]*)([^%s]+)z%(stringescapes\b)([%s]*)(.)([%s]*)(.)z[A-Za-z]\w*rH  r:   )r  Zlenof)r  r0  z[^']*'TF)r;   r  r0  r2   r<  Nc                 C   s   |    t| ||S r  )r  r   get_tokens_unprocessed)r   r  contextrQ   rQ   rR   r    s    z$SnowballLexer.get_tokens_unprocessed)NN)!r<   r=   r>   r?   r@   rA   rB   rC   _wsr  r  r  r  r   r#  r   r   r   r   r   rM   r   rD   r   r   rE   r   r   r   r   r   rP   r  rQ   rQ   rQ   rR   r   j  s|   

 



2)$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   rQ   rQ   rQ   rR   <module>   s6   
,,      >j  X@2"EEFM