o
    ni8                     @   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mZ g d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 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-2017 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Literal
Whitespace)ProtoBufLexerBroLexer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repeatedr   packedctype
extensionstomaxrpcreturnsoneof\bprefixsuffix)int32int64uint32uint64sint32sint64fixed32fixed64sfixed32sfixed64floatdoubleboolstringbytesr3   (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)rootrE   rF   rG   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_   _/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/vendor/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jdfdeejej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jfdej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#.*$z//.*?\n/\*[\w\W]*?\*/z\\([\\nrt"\'])rI   	[^\\"\n]+'z
[^\\\'\n]+z[a-z*](\.\w|\w)*rH   z1(async|oneway|extends|throws|required|optional)\brD   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   r0   rC   )voidr@   bytei16i32i64r?   rA   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catchrj   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yieldr1   z1[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)z[+-]?0x[0-9A-Fa-f]+z[+-]?[0-9]+)
rJ   rc   rd   rf   rg   rh   ri   rj   rk   rl   N)'rK   rL   rM   rN   rO   rP   rQ   	mimetypesr   r   Doubler
   rR   r   r   rV   r   r   rW   r	   r   r   Functionr   r   r   rS   Escaper   r]   rU   r   rT   Reservedr   rX   rY   r[   r^   r_   r_   r_   r`   r   V   s    



'
r   c                   @   s  e Zd ZdZdZdgZdgZdZdZdZ	de
jfd	e
jfd
efdefdefdefdejfdejfdeeefdejfdefdefde d e efde d e d e d efde d e d efdefe	d e	 d efed ejfde ejfeejfd ejfd!ejd"fd#ed$fd%efd&efd'ejfd(efd)eeejfd*efgd#ed+fd,ejfd-efdefd.efgd!ejd+fd/ejfd0ejfdejfd.ejfgd1Z d2S )3r   zN
    For `Bro <http://bro-ids.org/>`_ scripts.

    .. versionadded:: 1.5
    Brobroz*.broz[0-9a-fA-F_]z(((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?z[A-Za-z0-9][-A-Za-z0-9]*z^@.*?\nz#.*?\nrm   rn   z\\\nz(add|alarm|break|case|const|continue|delete|do|else|enum|event|export|for|function|if|global|hook|local|module|next|of|print|redef|return|schedule|switch|type|when|while)\bzz(addr|any|bool|count|counter|double|file|int|interval|net|pattern|port|record|set|string|subnet|table|time|timer|vector)\bz(T|F)\bz(&)((?:add|delete|expire)_func|attr|(?:create|read|write)_expire|default|disable_print_hook|raw_output|encrypt|group|log|mergeable|optional|persistent|priority|redef|rotate_(?:interval|size)|synchronized)\bz\s+module\bz\d+/(tcp|udp|icmp|unknown)\bz(\d+\.){3}\d+(z){7}0xz|:)*::(z|:)*z	((\d+|:)(z	|:)*)?::(z(\d+\.\d+\.|(\d+\.){2}\d+)z(\.z)+z!\s+(day|hr|min|sec|msec|usec)s?\bz0[xX]\d+/regexre   rA   z[!%*/+:<=>?~|-]z([-+=&|]{2}|[+=!><-]=)z(in|match)\bz[{}()\[\]$.,;]z([_a-zA-Z]\w*)(::)rH   rI   z/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})rp   z\\z	\\[\\nt/]z	[^\\/\n]+)rJ   rA   r   N)!rK   rL   rM   rN   rO   rP   rQ   _hex_float_hr   PreprocrR   r   r   rT   rU   r   r   rV   r   r   r   DaterY   rX   r[   Regexr   Wordr   r   r^   r_   r_   r_   r`   r      sr    
/

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
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*.pprd   rk   namesrl   	operatorsstringsz[]{}:(),;[][^\S\n]+z\s*#.*$z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)z(in|and|or|not)\brH   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   checkrj   computer
configured	containedcreate_resourcescritcrondebugr   definedefined	directoryr   r   emergerrr   	extlookupfailfalsefile
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notifyrE   presentpurgedrealizeregsubst	resourcesrolerouterrunningschedule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)r0   r1   z	"([^"])*"z'(\\'|[^'])*')rJ   rd   r  r  rl   rk   r  N)rK   rL   rM   rN   rO   rP   rQ   r   r   r   r   rS   r   r  r   r\   r   Variabler   r   rX   rZ   rY   r[   Longr   r   r^   r_   r_   r_   r`   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jfdeeej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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/rslrJ   )JBoolCharIntNatRealr   Unitabsallalwaysanyr   axiomcardr   channelchaosrj   devt_relationdomelemsr   r   r   existsextendr  r   hdhider   r   r   inds
initialiseint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^  rG   unionr   r   valuevariabler   r   writez~isinz-inflistz-infsetz-listz-setr0   r1   z(variable|value)\bz--.*?\nz<:.*?:>z	\{!.*?!\}	/\*.*?\*/z^[ \t]*([\w]+)[ \t]*:[^:]z1(^[ \t]*)([\w]+)([ \t]*\([\w\s,]*\)[ \t]*)(is|as)z\b[A-Z]\w*\brD   z".*"z\'.\'zq(><|->|-m->|/\\|<=|<<=|<\.|\|\||\|\^\||-~->|-~m->|\\/|>=|>>|\.>|\+\+|-\\|<->|=>|:-|~=|\*\*|<<|>>=|\+>|!!|\|=\||#)z [0-9]+\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-f]+[0-9]+.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      ?)rerM  I)textr_   r_   r`   analyse_text  s   zRslLexer.analyse_textN)rK   rL   rM   rN   rO   rP   rQ   r   r  	MULTILINEDOTALLflagsr   r   rW   r   r   r   r   r   rT   rU   r   rm  r   r   rX   rY   r[   r^   r  r_   r_   r_   r`   r   d  sH    %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jeejefdefedgdejfdejfdej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	\{|\}|,|;rd   z\]rI   z(\s*)(=)(\s*),z(?://|#).*?\nz/\*(?:.|\n)*?\*/z
[ \t\r\n]+)rJ   r  rd   N)rK   rL   rM   rN   rO   rP   rQ   _varr   rT   r   Propertyr   r  Builtinrh  r   r   r   r\   r   r   r   r   rR   rS   r^   r_   r_   r_   r`   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*.rpfrJ   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]+rn   N)rK   rL   rM   rN   rO   rP   rQ   r  r  r  
IGNORECASEr  r   rS   r   rU   r   r   r   r   r\   r   r   r^   r_   r_   r_   r`   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\']*r  z(extends)\brI   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  "(\\\\|\\"|[^"])*"rm   )r  r   r  rJ   N) rK   rL   rM   rN   rO   rP   rQ   r   r  r  r  r  iden_rexr   
text_tupler   r   r   r   r   rR   rS   r   rV   rW   rU   rT   r  r   r[   r   r^   r_   r_   r_   r`   r     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 <http://github.com/quattor/pan/>`_ source files.

    Based on tcsh lexer.

    .. versionadded:: 2.0
    Panpanz*.panbasicz\(parenr  curlydata)r   r   r   r   rG   bindr   validfinalr2   uniquer  r   r   r\  r   r  	structure
extensibledeclarationr0   z\s*\br1   )4file_contentsformatindexlengthmatchmatchesreplacesplicerS  substrto_lowercaseto_uppercaser  error	traceback
deprecated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]+|\\.|[^'\\])*'rn   z[^=\s\[\]{}()$"\'`\\;#]+z\d+(?= |\Z)z\}rI   z:-z\w+z[^}:"\'`$]+:rJ   \))rJ   r  r  r  r  N)rK   rL   rM   rN   rO   rP   rQ   r   r   r   r   r  r   r   r   r   rh  r   r   r   r   rR   r   r^   r_   r_   r_   r`   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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)r?  	primitivegroupr   mslocation
colocationorderfencing_topology
rsc_ticketrsc_templatepropertyrsc_defaultsop_defaults
acl_target	acl_groupr`  rH  rZ  z(?![\w#$-])rC   )paramsmeta
operationsoprule
attributesutilization)r  r  deny)r   r   )r  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)rJ   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) rK   rL   rM   rN   rO   rP   rQ   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_   r`   r   s  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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>=rr  acosrs  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coshcountz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   lnloglog10r   r  zmatches?r,   maximumr.  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-labelrQ  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!$%*+<=>?/.#-]+rJ   z[,\s]+z
-?\d+\.\d+z-?\d+z0x-?[a-f\d]+r  z\\(.|[a-z]+)_ rC   z(?<=\()z(\(|\))N)rK   rL   rM   rN   rO   rP   rQ   r   special_formsbuiltins
valid_namer   r   rX   r[   rY   r   rm  Symbolr   r   r   r  r   rh  r   r^   r_   r_   r_   r`   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
    Snowballsnowballz*.sblz\n\r\t c                 K   s   |    tj| fi | d S N)_reset_stringescapesr   __init__)r   optionsr_   r_   r`   rn    s   zSnowballLexer.__init__c                 C   s   d| _ d| _d S )Nrq   )_start_end)r   r_   r_   r`   rm    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rd|jd< n| }d}|t|k s+||  |_d S )	Nz([^%s]*)(.)r         rq   r  T)startr  r  compiler  rp  r  rq  r  r   rR   stackpopr   r   pos)	lexerr  ctxsr  rA   r  ry  	do_stringdo_string_firstr_   r`   callback  s4   



z'SnowballLexer._string.<locals>.callbackr_   )r  r  r_   r~  r`   _string  s   zSnowballLexer._stringc                 C   s6   | d| _| d| _ttjttjttj| ||S )N      )	r  rp  rq  r   r   r   r   r   r   )rz  r  r{  r_   r_   r`   _stringescapes5  s   zSnowballLexer._stringescapes)r  lenofr0   rC   root1z[%s]+r   rq   rA   z[()]ro   z//.*z)[!*+\-/<=>]=|[-=]>|<[+-]|[$*+\-/<=>?\[\]])r   gethexamongr  decimalbackwardmode)r  booleansintegersroutines	externals	groupingsr  )!r   r   r   r   hopnonr   r   r   r  r   loopr   testr^  r  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  rI   )r  r  z[^']*'TF)rJ   r  r  rA   r  Nc                 C   s   |    t| ||S rl  )rm  r   get_tokens_unprocessed)r   r  contextr_   r_   r`   r  l  s   z$SnowballLexer.get_tokens_unprocessed)NN) rK   rL   rM   rN   rO   rP   rQ   _wsrn  rm  r  r  r   r   r  r   r   r   r[   r   rR   r   r   rS   r   r   r   r  r   r   r^   r  r_   r_   r_   r`   r      sx    





1r    )$rN   r  pygments.lexerr   r   r   r   r   r   r   r	   r
   pygments.tokenr   r   r   r   r   r   r   r   r   r   __all__r   r   r   r   r   r   r   r   r   r   r   r    r_   r_   r_   r`   <module>   s"   
,0>iNW<1"<DFK