Your IP : 216.73.216.213


Current Path : /opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/__pycache__/dsls.cpython-37.pyc

B

ɽ�\;��@sHdZddlZddlmZmZmZmZmZmZm	Z	m
Z
mZddlm
Z
mZmZmZmZmZmZmZmZmZddddd	d
ddd
dddgZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd	�d	e�ZGdd
�d
e�ZGdd�de�ZGdd�de�Z Gdd
�d
e�Z!Gdd�de�Z"Gdd�de�Z#dS)z�
    pygments.lexers.dsls
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for various domain-specific languages.

    :copyright: Copyright 2006-2019 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*eZdZdZdZddgZdgZdefdefde	j
fd	e	jfed
ddd�e
fed
dd�e
jfde
jfdee
je�dfdee
je�dfdee
je�dfdefdefdejfdejfdejfdejfdejfdejfdefdeejee�fd efgd!ejd"fed"�gd!ejd"fed"�gd!ed"fed"�gd#�Zd$S)%rz|
    Lexer for `Protocol Buffer <http://code.google.com/p/protobuf/>`_
    definition files.

    .. versionadded:: 1.4
    zProtocol BufferZprotobuf�protoz*.protoz[ \t]+z[,;{}\[\]()<>]z/(\\\n)?/(\n|(.|\n)*?[^\\]\n)z/(\\\n)?\*(.|\n)*?\*(\\\n)?/)�import�option�optional�requiredZrepeatedrZpacked�ctype�
extensions�to�maxZrpcZreturnsZoneofz\b)�prefix�suffix)Zint32Zint64Zuint32Zuint64Zsint32Zsint64Zfixed32Zfixed64Zsfixed32Zsfixed64�float�double�bool�string�bytes)r+z(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))\bz0x[0-9a-fA-F]+[LlUu]*z0[0-7]+[LlUu]*z
\d+[LlUu]*z[+-=]z([a-zA-Z_][\w.]*)([ \t]*)(=)z[a-zA-Z_][\w.]*z[a-zA-Z_]\w*z#pop)�rootr1r2r3N)�__name__�
__module__�__qualname__�__doc__�name�aliases�	filenamesrrr�Single�	Multilinerr�Type�Constantr�	Namespace�Declarationrr�Float�Hex�Oct�Integerr
r�	Attributer�Class�tokens�rIrI�E/opt/alt/python37/lib/python3.7/site-packages/pygments/lexers/dsls.pyrsP

c@s�eZdZdZdZdgZdgZdgZed�ed�de	j
ed	d
�fde	jed	d�fd
e
ejej�dfde
ejej�dfde
ee�ejee�fed�ed�defdefdefgdejfdejfgdefdefdejfgde	jfgde	j
dfde	j
fgde	jdfd e	jfgd!ejdfed�gd"ejdfed�gd#efd$ejfd%ejfed&d'd(�ejfed)d'd(�ej fed*d'd'd+�ej!fgd,e"j#fd-e"j$fd.e"j%fgd/�
Z&d0S)1rzg
    For `Thrift <https://thrift.apache.org/>`__ interface definitions.

    .. versionadded:: 2.1
    ZThriftZthriftz*.thriftzapplication/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)*z\nz\s+z#.*$z//.*?\nz/\*[\w\W]*?\*/z\\([\\nrt"\'])z#popz	[^\\"\n]+�'z
[^\\\'\n]+z[a-z*](\.\w|\w)*z[a-zA-Z_]\w*z1(async|oneway|extends|throws|required|optional)\bz(true|false)\bz(const|typedef)\b)Z
cpp_namespaceZcpp_includeZcpp_typeZjava_packageZcocoa_prefixZcsharp_namespaceZdelphi_namespaceZ
php_namespaceZ	py_moduleZperl_packageZruby_namespaceZsmalltalk_categoryZsmalltalk_prefixZxsd_allZxsd_optionalZxsd_nillableZ
xsd_namespaceZ	xsd_attrsrz\b)r+)�voidr.ZbyteZi16Zi32Zi64r-r/�binary�map�list�set�slistZsenum)eZBEGINZENDZ	__CLASS__Z__DIR__Z__FILE__Z__FUNCTION__Z__LINE__Z
__METHOD__Z
__NAMESPACE__Zabstract�alias�and�args�as�assertZbegin�break�caseZcatchrR�clone�continue�declare�defr�del�delete�doZdynamic�elif�elseZelseif�elsif�endZ
enddeclareZendforZ
endforeachZendifZ	endswitchZendwhileZensure�except�exec�finallyr,�for�foreach�function�global�goto�ifZ
implementsr"�in�inlineZ
instanceof�	interface�is�lambda�moduleZnative�new�nextZnil�not�or�pass�public�printZprivateZ	protected�raiseZredoZrescueZretry�register�return�self�sizeof�static�super�switchZsynchronized�thenr�throwZ	transient�try�undefZunlessZunsigned�until�use�varZvirtualZvolatileZwhen�while�with�xor�yield)r*r+z1[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)z[+-]?0x[0-9A-Fa-f]+z[+-]?[0-9]+)
r4rKrLrNrOrPrQrRrSrTN)'r5r6r7r8r9r:r;�	mimetypesrr�Doubler
r<rrr@rrrAr	rr�Functionr
rrr=�EscaperrGr?rr>�ReservedrrBrCrErHrIrIrIrJrVsh








c@s�eZdZdZdZdgZdgZdZdZdZ	de
jfd	e
jfd
e
fde
fde
fd
efdejfdejfdeee�fdejfdefdefdedeefdedededefdededefdefe	de	defedejfdeejfeejfd ejfd!ejd"fd#ed$fd%efd&efd'ejfd(efd)eeej�fd*efgd#ed+fd,ejfd-efdefd.efgd!ejd+fd/ejfd0ejfdejfd.ejfgd1�Z d2S)3rzN
    For `Bro <http://bro-ids.org/>`_ scripts.

    .. versionadded:: 1.5
    ZBroZbroz*.broz[0-9a-fA-F_]z(((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?z[A-Za-z0-9][-A-Za-z0-9]*z^@.*?\nz#.*?\nz\nz\s+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?\bz0[xX]z\d+�/�regexrMr/z[!%*/+:<=>?~|-]z([-+=&|]{2}|[+=!><-]=)z(in|match)\bz[{}()\[\]$.,;]z([_a-zA-Z]\w*)(::)z[a-zA-Z_]\w*z#popz/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})z	[^\\"\n]+z\\z	\\[\\nt/]z	[^\\/\n]+)r4r/r�N)!r5r6r7r8r9r:r;Z_hexZ_floatZ_hrZPreprocr<rrr>r?rrr@rrrZDaterCrBrE�Regexr
�Wordrr�rHrIrIrIrJr�sb


c@s�eZdZdZdZdgZdgZed�ed�ed�ed�ed	�ed
�defde	fgd
e
fde
jfgdefdej
fgdejfdeejeee�fdejfgdejfdejfdejfdejfdejjfdejfgedddd�efgdefdefgd �Zd!S)"rz_
    For `Puppet <http://puppetlabs.com/>`__ configuration DSL.

    .. versionadded:: 1.6
    ZPuppetZpuppetz*.pprLrS�namesrT�	operators�stringsz[]{}:(),;[]z[^\S\n]+z\s*#.*$z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)z(in|and|or|not)\bz[a-zA-Z_]\w*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?z0[xX][a-fA-F0-9]+z\d+Lz\d+j?)mZabsentZalertr\ZauditZaugeas�beforerb�checkrRZcomputerZ
configuredZ	containedZcreate_resourcesZcritZcron�debugr�define�defined�	directoryrkrlZemerg�errroZ	extlookup�fail�false�fileZ
filebucketZ	fqdn_randZgenerate�hostrvr"r�infoZinheritsZinline_templateZ	installedryZk5loginZlatest�linkZloglevelZmacauthorizationZ	mailaliasZmaillistZmcx�md5ZmountZmountedZnagios_commandZnagios_contactZnagios_contactgroupZnagios_hostZnagios_hostdependencyZnagios_hostescalationZnagios_hostextinfoZnagios_hostgroupZnagios_serviceZnagios_servicedependencyZnagios_serviceescalationZnagios_serviceextinfoZnagios_servicegroupZnagios_timeperiod�nodeZnoopZnotice�notifyr1ZpresentZpurgedZrealizeZregsubstZ	resources�roleZrouterZrunningZscheduleZscheduled_task�searchZ
selbooleanZ	selmoduleZservice�sha1Z
shellquote�splitZsprintfZssh_authorized_keyZsshkeyZstage�stopped�	subscribe�tagZtagged�templateZtidy�truer�Z	unmounted�userZ
versioncmpZvlanZwarningZyumrepoZzfs�zoneZzpoolz(?i)z\b)r*r+z	"([^"])*"z
'(\\'|[^'])*')r4rLr�r�rTrSr�N)r5r6r7r8r9r:r;rrrrr=r
r�rrFr�VariablerrrBrDrCrEZLongrrrHrIrIrIrJr
s@





c@s�eZdZdZdZdgZdgZdgZej	ej
BZdedddd	�e
fd
e
jfdefdefd
efdefdejfdeeejee
�fde
jfde
jfdefdejfdefdejfdejfdejfdefgiZdd�ZdS)rz�
    `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
    ZRSLZrslz*.rslztext/rslr4)JZBool�CharZIntZNat�RealrZUnit�abs�all�always�anyr_ZaxiomZcardrbZchannelZchaosrRZ
devt_relation�domZelemsrkrjrm�exists�extendr�rqZhdZhidervrwrzZindsZ
initialise�intZinterZisin�len�let�localZ
ltl_assertion�objectZof�out�post�pre�read�real�rng�scheme�skip�stopZswapr�ZtheoryZ	test_case�tlZtransition_systemr�r3�unionr�r��value�variabler�r��writez~isinz-inflistz-infsetz-listz-setz\b)r*r+z(variable|value)\bz--.*?\nz<:.*?:>z	\{!.*?!\}z	/\*.*?\*/z^[ \t]*([\w]+)[ \t]*:[^:]z1(^[ \t]*)([\w]+)([ \t]*\([\w\s,]*\)[ \t]*)(is|as)z\b[A-Z]\w*\bz(true|false)\bz".*"z\'.\'zq(><|->|-m->|/\\|<=|<<=|<\.|\|\||\|\^\||-~->|-~m->|\\/|>=|>>|\.>|\+\+|-\\|<->|=>|:-|~=|\*\*|<<|>>=|\+>|!!|\|=\||#)z [0-9]+\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-f]+z[0-9]+�.cCst�d|tj�dk	rdSdS)zP
        Check for the most common text in the beginning of a RSL file.
        zscheme\s*.*?=\s*class\s*typeNg�?)�rer��I)�textrIrIrJ�analyse_text�szRslLexer.analyse_textN)r5r6r7r8r9r:r;r�r��	MULTILINE�DOTALL�flagsrrrArrr�rrr>r?rr�r
rrBrCrErHr�rIrIrIrJrds<
c@s�eZdZdZdZddgZdgZdZdej	fde
jfd	ej
fd
efdefde
jfee
jfd
edfdefed�g
dedfedeee
jejeeje�fdefed�gdejfdejfdejfgd�ZdS)rz]
    For `Mscgen <http://www.mcternan.me.uk/mscgen/>`_ files.

    .. versionadded:: 1.6
    ZMscgenZmscgenZmscz*.mscz(\w+|"(?:\\"|[^"])*")zmsc\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	\{|\}|,|;rLz\]z#popz
(\s*)(=)(\s*)�,z
(?://|#).*?\nz/\*(?:.|\n)*?\*/z
[ \t\r\n]+)r4r�rLN)r5r6r7r8r9r:r;Z_varrr>rZPropertyr
r��Builtinr�rrrrFrrrrr<r=rHrIrIrIrJr�s4
c
@s�eZdZdZdZdgZdgZejej	Bej
BZddej
fdejfdefd	ejfd
efdefdeeej�fd
efdefdefdefgiZdS)rz~
    For `SampleManager VGL <http://www.thermoscientific.com/samplemanager>`_
    source code.

    .. versionadded:: 1.6
    ZVGLZvglz*.rpfr4z	\{[^}]*\}rez�(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]+z\s+N)r5r6r7r8r9r:r;r�r�r��
IGNORECASEr�rr=rr?r
rrrrFrrrHrIrIrIrJr�s$c@s$eZdZdZdZdgZdgZdgZej	ej
BZdZde
fZded	feefed
efded	fgeeed	fgeded	feed	fgdejfd
ejfdejfedeeje
�dfdeeje
�dfdejfdejfdefdefdefdejfdeee
�dfdefdefeefdefdejfdefd e
fgd!�Zd"S)#rzU
    For `Alloy <http://alloy.mit.edu>`_ source code.

    .. versionadded:: 2.0
    ZAlloyZalloyz*.alsztext/x-alloyz[a-zA-Z_][\w\']*z[^\S\n]+z(extends)\bz#popr�z\{z--.*?$z//.*?$z	/\*.*?\*/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[:,]z[0-9]+z"(\\\\|\\"|[^"])*"z\n)r�r|r�r4N) r5r6r7r8r9r:r;r�r�r�r�r�Ziden_rexrZ
text_tuplerrrr
rr<r=rr@rAr?r>r�rrErrHrIrIrIrJr�sN


c
@s�eZdZdZdZdgZdgZed�dedfded	fed
�ge	ddd
d�efe	ddd
d�e
jfdefde
jfdee
jee�fdefde
fdefgde
jfde
jfdefdefdefgdedfdefde
jfdefd efed!�gd"edfed!�gd#�Zd$S)%rz~
    Lexer for `pan <http://github.com/quattor/pan/>`_ source files.

    Based on tcsh lexer.

    .. versionadded:: 2.0
    ZPanZpanz*.pan�basicz\(�parenz\{�curly�data)rvrqr�rkr3�bindr�Zvalid�finalr*�uniquer�rrrr�rsr�Z	structureZ
extensible�declarationz\bz\s*\b)r*r+)4�
file_contents�format�index�length�match�matches�replaceZsplicer�ZsubstrZto_lowercaseZto_uppercaser��error�	tracebackZ
deprecatedZ
base64_decodeZ
base64_encode�digest�escapeZunescape�append�create�firstZnlist�keyrY�merger~ZprependZ
is_booleanZ
is_definedZ	is_doubleZis_listZis_longZis_nlistZis_nullZ	is_numberZis_property�is_resource�	is_stringZ
to_booleanZ	to_doubleZto_longZ	to_stringrcrhr�Zpath_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]+|\\.|[^'\\])*'z\s+z[^=\s\[\]{}()$"\'`\\;#]+z\d+(?= |\Z)z\}z#popz:-z\w+z[^}:"\'`$]+�:r4z\))r4r�r�r�r�N)r5r6r7r8r9r:r;rrrrr�rrr�rr�rr
rr�r<rrHrIrIrIrJr/sF	c@s(eZdZdZdZddgZddgZgZeddd	�Z	ed
dd	�Z
eddd	�Zeddd	�Zed
dd	�Z
eddd	�ZdZdZdZdZddefdeejee�fdeeeee�fdefe	efe
efeefdeefejfeejfe
ejfeejfdejfdeeeee�fdeeeeej�fdefdefgiZdS)rz�
    Lexer for `crmsh <http://crmsh.github.io/>`_ configuration files
    for Pacemaker clusters.

    .. versionadded:: 2.1
    ZCrmshZcrmshZpcmkz*.crmshz*.pcmk)r�Z	primitive�grouprc�ms�locationZ
colocation�orderZfencing_topologyZ
rsc_ticketZrsc_template�propertyZrsc_defaultsZop_defaultsZ
acl_targetZ	acl_groupr�r�r�z(?![\w#$-]))r+)�params�metaZ
operations�opZruleZ
attributesZutilization)r�r�Zdeny)r]r�)r�Znot_defined)Zin_range�date�specrwz*(?: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)r4z^#.*\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) r5r6r7r8r9r:r;r�r�elem�subZaclZbin_relZun_opsZdate_expZacl_modZbin_opsZval_qualZrsc_role_actionrrrrFrrrrrr
r�r�rHrIrIrIrJrssPc@s�eZdZdZdZdgZgZdgZdZdZ	dZ
dd	efd
ej
fdejfdejfd
efdejfdejfeedd�efee	dd�ejfde
ejfe
ejfdefgiZdS)rzn
    Lexer for `Flatline <https://github.com/bigmlcom/flatline>`_ expressions.

    .. versionadded:: 2.2
    ZFlatlineZflatlineztext/x-flatline)r�)�z!=�*�+�-�<z<=�=�>z>=r��acosr�zall-butzall-with-defaultszall-with-numeric-defaultr]�asin�atan�avgz
avg-windowz
bin-centerz	bin-count�callzcategory-count�ceilZcondzcond-windowZcons�cos�cosh�countzdiff-windowZdivzensure-valuezensure-weighted-value�epochz	epoch-dayzepoch-fieldsz
epoch-hourzepoch-millisecondzepoch-minutezepoch-monthzepoch-secondz
epoch-weekdayz
epoch-year�exp�f�fieldz
field-prop�fields�filterr�floor�headrvrw�integer�languager�Zlevenshteinzlinear-regressionrY�ln�log�log10rXr�zmatches?r)Zmaximumr�ZmeanZmedian�minZminimum�missingz
missing-countzmissing?Z
missing_count�mod�mode�	normalizerZnth�occurrencesr�Z
percentilezpercentile-label�
populationzpopulation-fraction�powZ	preferredz
preferred?zquantile-labelZrandzrand-intzrandom-valuezre-quoter�r�z
replace-first�rest�roundz
row-numberz
segment-labelr��sha256�sin�sinh�sqrtZsquarezstandard-deviationZstandard_deviation�strZsubs�sumzsum-squaresz
sum-windowZsum_squares�summaryz
summary-nozsummary-str�tail�tan�tanhz
to-degreesz
to-radiansZvarianceZ	vectorizezweighted-random-valueZwindowZwinnowzwithin-percentiles?zz-scorez(?!#)[\w!$%*+<=>?/.#-]+r4z[,\s]+z
-?\d+\.\d+z-?\d+z0x-?[a-f\d]+z"(\\\\|\\"|[^"])*"z\\(.|[a-z]+)�_� )r+z(?<=\()z(\(|\))N)r5r6r7r8r9r:r;r�Z
special_forms�builtinsZ
valid_namerrrBrErCrr�ZSymbolrrrr�r�r�rrHrIrIrIrJr�s*c@sNeZdZdZdZdgZdgZdZdd�Zdd	�Z	d
d�Z
dd
�Zeddd�e
jfed�gdeefdejfdejdfdefdejfdejfde
feddd�ejfeddd�ejdfeddd�e
jfeddd�ejfdeefeejeej�fd eefefd!efgd"ed#feddd�ed$fed�gd%e
d&�fgd%e
d'�fgd(�Zd,d*d+�Zd)S)-r zb
    Lexer for `Snowball <http://snowballstem.org/>`_ source code.

    .. versionadded:: 2.2
    ZSnowballZsnowballz*.sblz\n\r\t cKs|��tj|f|�dS)N)�_reset_stringescapesr�__init__)r��optionsrIrIrJrGszSnowballLexer.__init__cCsd|_d|_dS)NrU)�_start�_end)r�rIrIrJrFsz"SnowballLexer._reset_stringescapescs�fdd�}|S)Nc	3sF|��}|��}t�dt�|j��j}t�dt�|j��j}d}�}x�|t|�k�r2|r�|||�}||�d�t	j
|�d�fV|�d�dkr�||�d�t	j
|�d�fV|j��P||�d�t	j
|�d�fV|��}|||�}||��t	j
|��fV|�d�|jk�r$d|jd<P|��}d}qJW||��|_dS)	Nz([^%s]*)(.)r��rUr����T)�startrr��compiler�rIr�rJr�rr<�stack�popr�rm�pos)	�lexerr��ctx�sr�r/r�rRZ	do_string)�do_string_firstrIrJ�callbacks0



z'SnowballLexer._string.<locals>.callbackrI)rVrWrI)rVrJ�_stringszSnowballLexer._stringcCs6|�d�|_|�d�|_ttjttjttj�|||�S)N��)	rrIrJrrr�rrr�)rSr�rTrIrIrJ�_stringescapes5szSnowballLexer._stringescapes)r�Zlenofz\b)r+�root1z[%s]+z\d+rUr/z[()]z/\*[\w\W]*?\*/z//.*z)[!*+\-/<=>]=|[-=]>|<[+-]|[$*+\-/<=>?\[\]])r_�get�hexZamongr�ZdecimalZbackwardmode)r�ZbooleansZintegersZroutinesZ	externalsZ	groupingsr�)!rir�r]rqZhopZnonrrZr�r�ruZloopr~�testr�r�ZunsetZatmark�attachrhZgopast�insert�repeatr�Ztomark�atleastZatlimit�reverseZsetmarkZtolimitZsetlimitZ	backwardsZ	substring)�size�limitZcursorZmaxintZminintz(stringdef\b)([%s]*)([^%s]+)z%(stringescapes\b)([%s]*)(.)([%s]*)(.)z[A-Za-z]\w*z\)z#pop)r\r�z[^']*'TF)r4r\r�r/r�NcCs|��t�|||�S)N)rFr�get_tokens_unprocessed)r�r��contextrIrIrJrglsz$SnowballLexer.get_tokens_unprocessed)NN) r5r6r7r8r9r:r;Z_wsrGrFrXr[rr
r�rrrrErr<rrr=rr�rr�rr�rHrgrIrIrIrJr sT



)$r8r�Zpygments.lexerrrrrrrrr	r
Zpygments.tokenrrr
rrrrrrr�__all__rrrrrrrrrrrr rIrIrIrJ�<module>
s$,0>iNW<1"<DFK