a
    Df                     @   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-2024 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                   @   s2  e Zd ZdZdZdZddgZdgZd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   z5
    Lexer for Protocol Buffer definition files.
    zProtocol Bufferz/https://developers.google.com/protocol-buffers/Zprotobufprotoz*.protoz1.4z[ \t]+z[,;{}\[\]()<>]z/(\\\n)?/(\n|(.|\n)*?[^\\]\n)z/(\\\n)?\*(.|\n)*?\*(\\\n)?/)importoptionoptionalrequiredZrepeatedreservedr   packedctype
extensionstomaxZrpcreturnsZoneofZsyntax\bprefixsuffix)int32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)rootr9   r:   r;   N)!__name__
__module____qualname____doc__nameurlaliases	filenamesversion_addedr   r   r   Single	Multiliner   r   TypeConstantr   	NamespaceDeclarationr   r   FloatHexOctIntegerr   r   	Attributer   Classtokens rU   rU   a/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/pygments/lexers/dsls.pyr      sh   #

r   c                   @   s  e Zd ZdZdZdZdgZdgZdgZd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d0e#j&fgd1
Z'd2S )3r   z+
    For Thrift interface definitions.
    ZThriftzhttps://thrift.apache.org/Zthriftz*.thriftzapplication/x-thrift2.1
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)*r<   z1(async|oneway|extends|throws|required|optional)\br8   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,   r7   )voidr4   byteZi16Zi32Zi64r3   r5   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catchr_   clonecontinuedeclaredefr   deldeletedoZdynamicelifelseZelseifelsifendZ
enddeclareZendforZ
endforeachendifZ	endswitchZendwhileZensureexceptexecfinallyr2   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>   rX   rY   r[   r\   r]   r^   r_   r`   ra   N)(r?   r@   rA   rB   rC   rD   rE   rF   	mimetypesrG   r   r   Doubler
   rH   r   r   rL   r   rM   r	   r   r   Functionr   r   r   rI   Escaper   rS   rK   r   rJ   Reservedr   rN   rO   rQ   rT   rU   rU   rU   rV   r   T   s   



'r   c                   @   sd  e Zd ZdZdZdZddgZddgZd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d0ejfd1e fd2e fd3e fd4e	 d5 e j!fe
d6 e j"fe
d  e j"fd7e j#fed8 e d9 efgd:efd;efd<ejfd=efgd>e$fd?e$fgd@eee$fdAefgdBej%fdCej%fd,edDfdEefgdBej%fdFejdDfdEejfgdGZ&dHS )Ir   z
    For Zeek scripts.
    ZZeekzhttps://www.zeek.org/ZzeekZbroz*.zeekz*.broz2.5z[0-9a-fA-F]z(((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?z[A-Za-z0-9][-A-Za-z0-9]*rX   rY   
directives
attributestypesr`   literals	operatorspunctuationz2((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(?=\s*\()identifiersrb   rc   z(\\)(\n)rd   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recordrl   tableZvectorr   hookeventaddrr4   countr3   fileintintervalpatternportr5   Zsubnettimer7   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   rt   r   rw   Zfallthroughr   r   ru   addr{   r   timeoutschedulez	(print)\bz(global|local|const|option)\bz4(module)(\s+)(([A-Za-z_]\w*)(?:::([A-Za-z_]\w*))*)\brZ   r5   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*)(::)r<   z\\.z%-?[0-9]*(\.[0-9]+)?[DTd-gsx]r=   ./)r>   rX   rY   r   r   r   r`   r   r   r   r   r5   r   N)'r?   r@   rA   rB   rC   rD   rE   rF   rG   Z_hexZ_floatZ_hr   r   r   r   r   r   r   ZPreprocr   r   ZPseudorJ   r   WordrS   rM   rL   r   RegexrK   r   rO   rN   rQ   r   r   rT   rU   rU   rU   rV   r      s   


 r   c                   @   s   e Zd ZdZdZdZdgZdgZd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 configuration DSL.
    ZPuppetzhttps://puppet.com/Zpuppetz*.pp1.6rY   r`   namesra   r   stringsz[]{}:(),;[]rc   z(\s*)(#.*)$z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)z(in|and|or|not)\br<   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alertrn   auditZaugeasbeforeru   checkr_   ZcomputerZ
configuredZ	containedZcreate_resourcescritcrondebugr   definedefined	directoryr~   r   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notifyr9   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>   rY   r   r   ra   r`   r   N)r?   r@   rA   rB   rC   rD   rE   rF   rG   r   r   r   r   r   rI   r   r   r   rR   Variabler   r   rN   rP   rO   rQ   ZLongr   r   rT   rU   rU   rU   rV   r   ^  sX   
	
r   c                   @   s   e Zd ZdZdZdZdgZdgZdgZd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.
    ZRSLz"http://en.wikipedia.org/wiki/RAISEZrslz*.rslztext/rsl2.0r>   )JZBoolCharZIntZNatRealr   ZUnitabsallalwaysr   rq   ZaxiomZcardru   ZchannelZchaosr_   Zdevt_relationdomelemsr~   r}   r   existsextendr   r   Zhdhider   r   r   Zinds
initialiser   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   r;   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*\br8   z".*"z\'.\'zq(><|->|-m->|/\\|<=|<<=|<\.|\|\||\|\^\||-~->|-~m->|\\/|>=|>>|\.>|\+\+|-\\|<->|=>|:-|~=|\*\*|<<|>>=|\+>|!!|\|=\||#)z [0-9]+\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-f]+[0-9]+rc   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)textrU   rU   rV   analyse_text  s    zRslLexer.analyse_textN)"r?   r@   rA   rB   rC   rD   rE   rF   r   rG   r#  	MULTILINEDOTALLflagsr   r   rM   r   r   r   r   r   r   rJ   rK   r   r  r   r   rN   rO   rQ   rT   r&  rU   rU   rU   rV   r     sT   
(r   c                   @   s   e Zd ZdZdZdZddgZdgZd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 files.
    ZMscgenz!http://www.mcternan.me.uk/mscgen/ZmscgenZmscz*.mscr   z(\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	\{|\}|,|;rY   z\]r=   z(\s*)(=)(\s*),z(?://|#).*?\nz/\*(?:.|\n)*?\*/z
[ \t\r\n]+)r>   r*  rY   N)r?   r@   rA   rB   rC   rD   rE   rF   rG   Z_varr   rJ   r   ZPropertyr   r   Builtinr   r   r   r   rR   r   r   r   rH   rI   rT   rU   rU   rU   rV   r     sH   
	r   c                   @   s   e Zd ZdZdZdZdgZdgZd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 source code.
    ZVGLz-http://www.thermoscientific.com/samplemanagerZvglz*.rpfr   r>   z	\{[^}]*\}rx   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]+rc   N)r?   r@   rA   rB   rC   rD   rE   rF   rG   r#  r'  r(  
IGNORECASEr)  r   rI   r   rK   r   r   r   r   rR   r   r   rT   rU   rU   rU   rV   r   %  s.   r   c                   @   sZ  e Zd ZdZdZdZdgZdgZdgZd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.
    ZAlloyzhttp://alloy.mit.eduZalloyz*.alsztext/x-alloyr  z[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"  rb   )r0  r   r/  r1  r>   N)$r?   r@   rA   rB   rC   rD   rE   rF   r   rG   r#  r'  r(  r)  Ziden_rexZ
string_rexr   Z
text_tupler   r   r   r   r   r   r   rH   rI   r   rL   rM   rK   rJ   r   r   rQ   rT   rU   rU   rU   rV   r   F  sl   r   c                
   @   s   e Zd ZdZdZdZdgZdgZd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 source files.

    Based on tcsh lexer.
    ZPanzhttps://github.com/quattor/pan/Zpanz*.panr  basicz\(parenr.  curlydata)r   r   r   r~   r;   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keyrk   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_stringrv   r{   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]+|\\.|[^'\\])*'rc   z[^=\s\[\]{}()$"\'`\\;#]+z\d+(?= |\Z)z\}r=   z:-z\w+z[^}:"\'`$]+:r>   \))r>   r2  r5  r4  r3  N)r?   r@   rA   rB   rC   rD   rE   rF   rG   r   r   r   r   r,  r   r   r   r   r   r   r   r   r   rH   r   r   rT   rU   rU   rU   rV   r     sZ   
	r   c                   @   sD  e Zd ZdZdZdZddgZddgZg Z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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 de dejfeejfeejfeejfdej fde deeeefd e d!eeeejfd"efd#efgiZ!d$S )%r   zE
    Lexer for crmsh configuration files for Pacemaker clusters.
    ZCrmshzhttp://crmsh.github.io/ZcrmshZpcmkz*.crmshz*.pcmkrW   )r   Z	primitivegrouprv   mslocationZ
colocationorderZfencing_topologyZ
rsc_ticketZrsc_templatepropertyZrsc_defaultsZop_defaultsZ
acl_targetZ	acl_groupr   r   r   z(?![\w#$-])r7   )paramsmeta
operationsopZruler   Zutilization)r  r   Zdeny)ro   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(?:z:)?(z)(?![\w#$-])z#[a-z]+(?![\w#$-])(z)(:)("(?:""|[^"])*"|\S+)z([\w#$-]+)(?:(:)(z))?(?![\w#$-])z(\\(?=\n)|[\[\](){}/:@])z\s+|\nN)"r?   r@   rA   rB   rC   rD   rE   rF   r   rG   r   elemsubZaclZbin_relZun_opsZdate_expZacl_modZbin_opsZval_qualZrsc_role_actionr   r   r   r   rR   r   r   r   r   r   r   r,  rT   rU   rU   rU   rV   r     s`   


r   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	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   z)
    Lexer for Flatline expressions.
    ZFlatlinez$https://github.com/bigmlcom/flatlineZflatlineztext/x-flatline2.2)r  )z!=*+-<z<==>z>=r  acosr  zall-butzall-with-defaultszall-with-numeric-defaultro   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filterrI  floorheadr   r   integerlanguager=  Zlevenshteinzlinear-regressionrk   lnr   log10rj   r?  zmatches?r*   maximumr   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  r@  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[,]+rc   z
-?\d+\.\d+z-?\d+z0x-?[a-f\d]+z"(\\\\|\\[^\\]|[^"\\])*"z\\(.|[a-z]+)_ r7   z(?<=\()z(\(|\))N)r?   r@   rA   rB   rC   rD   rE   rF   r   rG   Zspecial_formsbuiltinsZ
valid_namer   r   r   rN   rQ   rO   r   r  ZSymbolr   r   r   r,  r   r   r   rT   rU   rU   rU   rV   r     s4   r   c                   @   sf  e Zd ZdZdZdZdgZdgZd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	 d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	 d$e	 d%eejeejfd&e	 d'e	 d(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d0fgd1Z d5d3d4Z!d2S )6r   z)
    Lexer for Snowball source code.
    ZSnowballzhttps://snowballstem.org/Zsnowballz*.sblr`  z\n\r\t c                 K   s   |    tj| fi | d S N)_reset_stringescapesr   __init__)r   optionsrU   rU   rV   r  l  s    zSnowballLexer.__init__c                 C   s   d| _ d| _d S )Nrf   )_start_end)r   rU   rU   rV   r  p  s    z"SnowballLexer._reset_stringescapesc                    s    fdd}|S )Nc           	      3   sN  |  }| }tdt| j dj}tdt| j dj}d} }|t|k r<|r|||}|| d t	j
|dfV  |ddkr|| d t	j
|dfV  |j  q<|| d t	j|dfV  | }|||}||   t	j| fV  |d| jkr.d|jd< q<| }d	}qP||  |_d S )
Nz([^]*)(.)r         rf   rE  T)startrR  r#  compilerE  r  r>  r  r  r   rH   stackpopr   r   pos)	lexerr>  ctxsr%  r5   rE  r  Z	do_stringdo_string_firstrU   rV   callbacku  s0    



z'SnowballLexer._string.<locals>.callbackrU   )r  r  rU   r  rV   _stringt  s    zSnowballLexer._stringc                 C   s6   | d| _| d| _ttjttjttj| ||S )N      )	rR  r  r  r   r   r   r   r   r   )r  r>  r  rU   rU   rV   _stringescapes  s    zSnowballLexer._stringescapeszlen\bzlenof\broot1[z]+z\d+rf   r5   z[()]re   z//.*z)[!*+\-/<=>]=|[-=]>|<[+-]|[$*+\-/<=>?\[\]])rq   gethexZamongr   decimalZbackwardmoder,   r7   )r   ZbooleansZintegersZroutinesZ	externalsZ	groupingsr9  )!r|   r   ro   r   ZhopZnonr   rl   r   r   r   Zloopr   testr   r   ZunsetZatmarkattachr{   Zgopastinsertrepeatr   ZtomarkatleastZatlimitreverseZsetmarkZtolimitZsetlimitZ	backwardsZ	substring)sizelimitcursorZmaxintZminintz(stringdef\b)([z]*)([^z]+)z(stringescapes\b)([z]*)(.)([r  z[A-Za-z]\w*rQ  r=   )r  Zlenof)r  r9  z[^']*'TF)r>   r  r9  r5   rE  Nc                 C   s   |    t| ||S r  )r  r   get_tokens_unprocessed)r   r%  contextrU   rU   rV   r    s    z$SnowballLexer.get_tokens_unprocessed)NN)"r?   r@   rA   rB   rC   rD   rE   rF   rG   _wsr  r  r  r  r   r,  r   r   r   r   r   rQ   r   rH   r   r   rI   r   r   r   r   r   rT   r  rU   rU   rU   rV   r   _  s|   


2r   )$rB   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   rU   rU   rU   rV   <module>   s$   
,,=i W?1!DDEL