o
    Rh                    @   s  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lmZ ddl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'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.jvm
    ~~~~~~~~~~~~~~~~~~~

    Pygments lexers for JVM languages.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)	Lexer
RegexLexerincludebygroupsusingthiscombineddefaultwords)	TextCommentOperatorKeywordNameStringNumberPunctuation
Whitespaceshebang_matches)	unistring)	JavaLexer
ScalaLexer	GosuLexerGosuTemplateLexerGroovyLexer	IokeLexerClojureLexerClojureScriptLexerKotlinLexer
XtendLexerAspectJLexerCeylonLexerPigLexer	GoloLexerJasminLexer	SarlLexerc                   @   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eeeejd	fd
efdeejefdejfdefdeeeejeefdejfdejfdejfdeejedfdejfdejd	fdeejedfdeejedfdedfdedfdejfdeeej fdeeeefd eeej!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(fd(efd)efgd*e)fd!ej*d+fgd!ed+fgd,ejd+fgd-ed+fdefe+dgd.efd/efd0efd1efded+fgd2Z,d3S )4r   z
    For Java source code.
    Javaz(https://www.oracle.com/technetwork/java/javaz*.javaztext/x-java zJ(^\s*)((?:(?:public|private|protected|static|strictfp)(?:\s+))*)(record)\bclass[^\S\n]+(//.*?)(\n)	/\*.*?\*/zz(assert|break|case|catch|continue|default|do|else|finally|for|if|goto|instanceof|new|return|switch|this|throw|try|while)\bzF((?:(?:[^\W\d]|\$)[\w.\[\]$<>?]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()@[^\W\d][\w.]*z(abstract|const|enum|extends|final|implements|native|private|protected|public|sealed|static|strictfp|super|synchronized|throws|transient|volatile|yield)\b6(boolean|byte|char|double|float|int|long|short|void)\b(package)(\s+)import(true|false|null)\bz(class|interface)\bz
(var)(\s+)varz(import(?:\s+static)?)(\s+)z"""\nmultiline_string"string!'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'(\.)((?:[^\W\d]|\$)[\w$]*)z^(\s*)(default)(:)z^(\s*)((?:[^\W\d]|\$)[\w$]*)(:)z([^\W\d]|\$)[\w$]*a  ([0-9][0-9_]*\.([0-9][0-9_]*)?|\.[0-9][0-9_]*)([eE][+\-]?[0-9][0-9_]*)?[fFdD]?|[0-9][eE][+\-]?[0-9][0-9_]*[fFdD]?|[0-9]([eE][+\-]?[0-9][0-9_]*)?[fFdD]|0[xX]([0-9a-fA-F][0-9a-fA-F_]*\.?|([0-9a-fA-F][0-9a-fA-F_]*)?\.[0-9a-fA-F][0-9a-fA-F_]*)[pP][+\-]?[0-9][0-9_]*[fFdD]?z"0[xX][0-9a-fA-F][0-9a-fA-F_]*[lL]?z0[bB][01][01_]*[lL]?z0[0-7_]+[lL]?z0|[1-9][0-9_]*[lL]?[~^*!%&\[\]<>|+=/?-]
[{}();:.,]\n\s+#pop	[\w.]+\*?"""z[^\\"]+\\\\\\"\\)rootr*   r3   r1   r4   r6   N)-__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesversion_addedre	MULTILINEDOTALLflagsr   r   r   r   r   Declarationr   Single	Multiliner   Functionr   	DecoratorType	NamespaceConstantr   Char	AttributeLabelr   FloatHexBinOctIntegerr   r   Classr   tokens rd   rd   U/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/pygments/lexers/jvm.pyr      s    

6


r   c                   @   sN   e Zd ZdZdZdZdgZdgZdgZdZ	h dZ
h d	Zh d
Zdd ZdS )r!   z"
    For AspectJ source code.
    AspectJzhttp://www.eclipse.org/aspectj/aspectjz*.ajztext/x-aspectj1.6>+   getsetargscalllocksoftaftercflowerroraroundaspectbeforetargetunlockwithindeclarehandlerparentsperthisproceedwarningpercflowpointcutthrowing	execution	pertarget	returning
annotation
cflowbelow
precedence
privileged
withincodeissingletonpercflowbelowpertypewithinthisJoinPointinitializationadviceexecutionpreinitializationthisAspectInstancestaticinitializationthisJoinPointStaticPart thisEnclosingJoinPointStaticPart>   soft:error:parents:warning:precedence:>   @type@field@method@constructorc                 c   s    t | |D ]I\}}}|tu r|| jv r|t|fV  q|tju r9|| jv r9|t|d d fV  |t|d fV  q|tju rJ|| j	v rJ|t|fV  q|||fV  qd S )N)
r   get_tokens_unprocessedr   aj_keywordsr   r\   aj_inter_typer   rV   aj_inter_type_annotation)selftextindextokenvaluerd   rd   re   r      s   z#AspectJLexer.get_tokens_unprocessedN)rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   r   r   r   r   rd   rd   rd   re   r!   w   s    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 Zdeddddd d Zdedd d Zde dZdeddZe dZe e dZe e de dZe e de dZde de dZdZde de dZdZd Zd!Z d"Z!d#Z"i d$e#d%e#d&e#d'e#d(e#d)e#d*e#d+e#d,e#d-e#d.e#d/e#d0e#d1e#d2e#d3e#d4e#d5e#d6e#d7e#d8e#d9e#d:gd%d;e$fgd&d<e%j&fd=e%j'd>fgd'd?e%j(fgd(d@e)e*e$dAfgd)dBe)e*e$e*e$dCfdDe)e*e$dCfgd*e+e"dEdEdFe*fdGe*fgd+dHe e,j-fgd,dIe)e.e$e*e$fgd-dJe dKe dLe)e*e$e,j/fdMe dKe dLe)e*e$e,j0fdNe dKe dLe)e*e$e*e$e,j0fdOe dKe dLe)e*e$e,j0fdPe*j1fdQe dKe dLe)e*e$e*e$e,j2fdRe)e*e$dSfdTe de)e*e$e,j0fdTe dLe)e*e$e,fg	d.dUe de dVe dWe)e*e$e,j0fgd/dXe)e*e$fgd0dYe)e*e$e*fdZe de e)e*e$e,j0fdZe de dLe e)e*e$e,j2fgd9d[e.fd\e.fgd7e+e dEdEdFe*fgd8dKe d]e)e3e$fd^e3fe+e!e3fd_e d`e de3fgd1dae,j4j5fdbe*j6fdce7j8fdde7j9fdee7j9fdfe7j9fdge7j:j;fdhe7j:fdie<fdje<fdke)e<j=e<j>e<j=fdle<j=fgi d2dme<dnfdoe<dpfdqe<fgd3dre dse<j?fgd4dte)e.e*fgd5due de dve*fdwe*fgd6dxe.fdye.fgd:ee,j0fee,fgd>dze%j'fd=e%j'd{fd|e%j'd}fd~e%j'fgdAde@d}fe#d&de*fe#dde.dfgde#d%e#d&de*fde3fde.d}fde.fde.fe#dgdCde@d}fe#d&e#dde.dfgde#d%e#d&de3fde.d}fde.fe#dgdSde@d}fde.d}fe#d&e#dgdnde<d}fde<fe#dgdpde<d}fe#dgdde<jAd}fde.dfe#d$gdde.d{fde.d}fe#d$gdee,j0fdKe de)e,j2e.fde.fee,fde$fgdde<fde<j>fde de)e<jAe,fde<jAdfde<fgiZBdS )r   z 
    For Scala source code.
    Scalazhttp://www.scala-lang.orgscalaz*.scalaztext/x-scalar)   z[!#%&*\-\/:?@^SmSo]z[_\$LlLuLoNlLt[z(?:z|[0-9])z(?:{}|[0-9])\$+*z
*(?:(?<=_)z+)?|z+)z`[^`]+`)z
(?!//|/\*)z(?=\s*(//|$)))newreturnthrowclassOfisInstanceOfasInstanceOfelseifthendowhileforyieldmatchcasecatchfinallytry)z<%z=:=z<:<z<%<z>:z<:===z!=<=>=z<><>z<-u   ←->u   →=>u   ⇒?@r   -r   r   %~\)private	protectedsynchronizedz	@volatileabstractfinallazysealedimplicitoverridez
@transientz@nativerC   
whitespacecommentszscript-headerimportsexportszstorage-modifiersannotationsr   declarationsinheritance	extensionend	constantsstringssymbolszsingleton-typeinlinequotedkeywords	operatorspunctuationnamesr<   //.*?\n/\*commentz^#!([^\n]*)$z\b(import)(\s+)zimport-pathz\b(export)(\s+)(given)(\s+)zexport-pathz\b(export)(\s+)\b)prefixsuffixzj\b(transparent|opaque|infix|open|inline)\b(?=[a-z\s]*\b(def|val|var|given|type|class|trait|object|enum)\b)r   z(\()(\s*)(using)(\s)z\b(def)\b(\s*)(z)?z\b(trait)\b(\s*)z,\b(?:(case)(\s+))?(class|object|enum)\b(\s*)z(?<!\.)\b(type)\b(\s*)z\b(val|var)\bz\b(package)(\s+)(object)\b(\s*)z\b(package)(\s+)packagez\b(given)\b(\s*)(z \b(extends|with|derives)\b(\s*)(z|(?=\([^\)]+=>)|(?=z	)|(?="))?z\b(extension)(\s+)(?=[\[\(])z8\b(end)(\s+)(if|while|for|match|new|extension|val|var)\bz\b(end)(\s+)(z[{}()\[\];,.]z(?<!:):(?!:)z
{2,})(\s+)z	/(?![/*])z(?<!z)(!|&&|\|\|)(?!z\b(this|super)\br2   z0[xX][0-9a-fA-F_]*zJ([0-9][0-9_]*\.[0-9][0-9_]*|\.[0-9][0-9_]*)([eE][+-]?[0-9][0-9_]*)?[fFdD]?z[0-9]+([eE][+-]?[0-9]+)?[fFdD]z[0-9]+([eE][+-]?[0-9]+)[fFdD]?z
[0-9]+[lL][0-9]+z""".*?"""(?!")z"(\\\\|\\"|[^"])*"z(')(\\.)(')z'[^\\]'|'\\u[0-9a-fA-F]{4}'z[fs]"""zinterpolated-string-triplez[fs]"zinterpolated-stringzraw"(\\\\|\\"|[^"])*"z('z)(?!')z(\.)(type)\bz\b(inline)(?=\s+(z)\s*:)z=\b(inline)\b(?=(?:.(?!\b(?:val|def|given)\b))*\b(if|match)\b)z['$]\{(?!')z'\[(?!')z[^/*]+#push\*/r=   [*/]z(?<=[\n;:])z\b(given)\bzqualified-name\{zimport-path-curly-bracer   \},z[\[\]]zexport-path-curly-bracez
(?<=[\n;]):z"""(?!")r5   zinterpolated-string-commonzinterpolated-string-bracez interpolated-string-nested-bracez)(\.)z\.r+   z[^"$\\]+z\$\$z(\$)(\$\{z\\.N)CrD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   unicombineopcharletterupperLetterletterOrDigitformatreplaceletterOrDigitNoDollarSignalphaIdsimpleInterpolatedVariableidrestidUpperplainidbackQuotedIdanyIdnotStartOfCommentendOfLineMaybeWithCommentr   r   storage_modifiersr   r   r   rS   rT   Hashbangr   r   r
   r   rV   r   rU   rb   rR   rX   r   BuiltinPseudorY   r   r^   r]   ra   Longr   rZ   EscapeSymbolr   Interpolrc   rd   rd   rd   re   r      s   

"%(-69>


PUX
aeh
n

}     	      

  #  *  4  :  B  H  M  Q
  V  ]  d


 
r   c                   @   s  e Zd ZdZdZdgZg dZdgZdZdZ	e
je
jB Zdeeeeje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ejeejfdejfdeejefdejfdeejeejfdeejeejfdedfdeeej fdeeej fdefdefde!j"fde!j#fdefgdefdeeejd fd!ejfd"ed fd#ed$fd%efgded&fe$d'gdedfd(ed&fe$d)gdedfd*ed$fd+ed&fe$d)gd,Z%d-S ).r   z
    For Gosu source code.
    Gosugosu)z*.gsz*.gsxz*.gspz*.varkztext/x-gosuhttps://gosu-lang.github.io1.59^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_]\w*)(\s*)(\()r+   r   r-   @[a-zA-Z_][\w.]*z(in|as|typeof|statictypeof|typeis|typeas|if|else|foreach|for|index|while|do|continue|break|return|try|catch|finally|this|throw|new|switch|case|default|eval|super|outer|classpath|using)\bz(var|delegate|construct|function|private|internal|protected|public|abstract|override|final|static|extends|transient|implements|represents|readonly)\bz(property)(\s+)(get|set)?z<(boolean|byte|char|double|float|int|long|short|void|block)\br0   z (true|false|null|NaN|Infinity)\bz5(class|interface|enhancement|enum)(\s+)([a-zA-Z_]\w*)z(uses)(\s+)([\w.]+\*?)r5   r6   z(\??[.#])([a-zA-Z_]\w*)z(:)([a-zA-Z_]\w*)[a-zA-Z_$]\w*z)and|or|not|[\\~^*!%&\[\](){}<>|+=:;,./?-]%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?r   r;   z(\\<)|(\\\$)z(<%@\s+)(extends|params)stringTemplatez<%!--.*?--%>z
(<%)|(<%=)r  stringTemplateShorthand.r=   templateTextz%>rC   r   r   )rC   r(  r6   r%  r&  N)&rD   rE   rF   rG   rH   rJ   rK   rL   rI   rM   rN   rO   rP   rQ   r   r   r   r   rU   r   r   r   rS   rT   rV   r   rR   rW   rX   rY   rb   r   r[   r   r]   ra   r   rc   rd   rd   rd   re   r     s    

&

r   c                   @   s6   e Zd ZdZdZdgZdgZdgZdZdZ	dd	 Z
d
S )r   z
    For Gosu templates.
    zGosu Templategstz*.gstztext/x-gosu-templater  r   c                 c   s$    t  }dg}|||E d H  d S )Nr(  )r   r   )r   r   lexerstackrd   rd   re   r     s   z(GosuTemplateLexer.get_tokens_unprocessedN)rD   rE   rF   rG   rH   rJ   rK   rL   rI   rM   r   rd   rd   rd   re   r   
  s    r   c                   @   sp  e Zd ZdZdZdZdgZddgZdgZdZ	e
je
jB Zd	ejd
fed
gdefdeejefdejfdefdeeeejeefdejfdejfdejfdeejefdejfdeejedfdeejedfde j!fde jfde j!fde jfde fde fde j"fd eeej#fd!ej$fd"efd#efd$e%j&fd%e%j'fd&e%j(fd'efgd(ej)d)fgd*ejd)fgd+Z*d,d- Z+d.S )/r   z!
    For Groovy source code.
    Groovyzhttps://groovy-lang.org/groovyz*.groovyz*.gradleztext/x-groovyr   z#!(.*?)$baser+   r,   r-   z(assert|break|case|catch|continue|default|do|else|finally|for|if|goto|instanceof|new|return|switch|this|throw|try|while|in|as)\bzo^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_]\w*|"(?:\\\\|\\[^\\]|[^"\\])*"|'(?:\\\\|\\[^\\]|[^'\\])*')(\s*)(\()r"  z(abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\bz:(def|boolean|byte|char|double|float|int|long|short|void)\br0   r2   (class|interface)(\s+)r*   (import)(\s+)r1   z	""".*?"""z	'''.*?'''"(\\\\|\\[^\\]|[^"\\])*"'(\\\\|\\[^\\]|[^'\\])*'z\$/((?!/\$).)*/\$z/(\\\\|\\[^\\]|[^/\\])*/r7   (\.)([a-zA-Z_]\w*)[a-zA-Z_]\w*:r#  [~^*!%&\[\](){}<>|+=:;,./?-]r$  0x[0-9a-fA-F]+[0-9]+L?r;   [a-zA-Z_]\w*r=   r>   )rC   r.  r*   r1   c                 C   s
   t | dS )Nr-  r   )r   rd   rd   re   analyse_texte  s   
zGroovyLexer.analyse_textN),rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   Preprocr	   r   r   rS   rT   r   r   r   r   rU   r   rV   rR   rW   rX   rY   r   DoublerZ   r[   r\   r   r]   r^   ra   rb   rc   r9  rd   rd   rd   re   r     sp    

.
;r   c                   @   sR  e Zd ZdZdZdZdgZddgZdgZdZ	d	e
jfd
edfgde
dfedde
fgde
jdfedde
jfgdedfedgde
jdfedde
jfde
jfgde
jdfedde
jfde
jfgde
dfedde
fgg defdefdefdefde
jdfde
jd fd!e
jfd"e
jfd#e
jfd$e
jd%fd&e
d'fd(e
d)fd*ejfd+ejfd,ejfd-efd.efd/efd0ejfd1ejfd2efd3ejfd4efd5ejfd6efd7ejfd8ejfd9e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 fdAe fdBefdCej!fdDefdEZ"dFS )Gr   z`
    For Ioke (a strongly typed, dynamic,
    prototype based programming language) source.
    Iokezhttps://ioke.org/z*.ikiokeikztext/x-iokesrcz1.4zS(\\b|\\e|\\t|\\n|\\f|\\r|\\"|\\\\|\\#|\\\Z|\\u[0-9a-fA-F]{1,4}|\\[0-3]?[0-7]?[0-7])z#\{textInterpolationRootz(?<!\\)"r=   interpolatableTextz[^"]r   rC   z(?<!\\)/[im-psux]*z\\/z[^/]z(?<!\\)][im-psux]*z\\]z[^\]]z(?<!\\)]r;   r<   z;(.*?)\nz\A#!(.*?)\nz#/slashRegexpz#r\[squareRegexpz	:[\w!:?]+z[\w!:?]+:(?![\w!?])z:"(\\\\|\\[^\\]|[^"\\])*"z((?<=fn\()|(?<=fnx\()|(?<=method\()|(?<=macro\()|(?<=lecro\()|(?<=syntax\()|(?<=dmacro\()|(?<=dlecro\()|(?<=dlecrox\()|(?<=dsyntax\())(\s*)"documentationr5   r   z#\[
squareTextz\w[\w!:?]+(?=\s*=.*mimic\s)z.[a-zA-Z_][\w!:?]*(?=[\s]*[+*/-]?=[^=].*($|\.))z(break|cond|continue|do|ensure|for|for:dict|for:set|if|let|loop|p:for|p:for:dict|p:for:set|return|unless|until|while|with)(?![\w!:?])z%(eval|mimic|print|println)(?![\w!:?])z|(cell\?|cellNames|cellOwner\?|cellOwner|cells|cell|documentation|hash|identity|mimic|removeCell\!|undefineCell\!)(?![\w!:?])z(stackTraceAsText)(?![\w!:?])z"(dict|list|message|set)(?![\w!:?])z`(case|case:and|case:else|case:nand|case:nor|case:not|case:or|case:otherwise|case:xor)(?![\w!:?])z(asText|become\!|derive|freeze\!|frozen\?|in\?|is\?|kind\?|mimic\!|mimics|mimics\?|prependMimic\!|removeAllMimics\!|removeMimic\!|same\?|send|thaw\!|uniqueHexId)(?![\w!:?])z (after|around|before)(?![\w!:?])zG(kind|cellDescriptionDict|cellSummary|genSym|inspect|notice)(?![\w!:?])z(use|destructuring)zn(cell\?|cellOwner\?|cellOwner|cellNames|cells|cell|documentation|identity|removeCell!|undefineCell)(?![\w!:?])z(internal:compositeRegexp|internal:concatenateText|internal:createDecimal|internal:createNumber|internal:createRegexp|internal:createText)(?![\w!:?])zk(availableRestarts|bind|error\!|findRestart|handle|invokeRestart|rescue|restart|signal\!|warn\!)(?![\w!:?])z(nil|false|true)(?![\w!:?])a
  (Arity|Base|Call|Condition|DateTime|Aspects|Pointcut|Assignment|BaseBehavior|Boolean|Case|AndCombiner|Else|NAndCombiner|NOrCombiner|NotCombiner|OrCombiner|XOrCombiner|Conditions|Definitions|FlowControl|Internal|Literals|Reflection|DefaultMacro|DefaultMethod|DefaultSyntax|Dict|FileSystem|Ground|Handler|Hook|IO|IokeGround|Struct|LexicalBlock|LexicalMacro|List|Message|Method|Mixins|NativeMethod|Number|Origin|Pair|Range|Reflector|Regexp Match|Regexp|Rescue|Restart|Runtime|Sequence|Set|Symbol|System|Text|Tuple)(?![\w!:?])uw   (generateMatchMethod|aliasMethod|λ|ʎ|fnx|fn|method|dmacro|dlecro|syntax|macro|dlecrox|lecrox|lecro|syntax)(?![\w!:?])z-?0[xX][0-9a-fA-F]+z(-?(\d+\.?\d*|\d*\.\d+)([eE][+-]?[0-9]+)?-?\d+z#\(a  (&&>>|\|\|>>|\*\*>>|:::|::|\.\.\.|===|\*\*>|\*\*=|&&>|&&=|\|\|>|\|\|=|\->>|\+>>|!>>|<>>>|<>>|&>>|%>>|#>>|@>>|/>>|\*>>|\?>>|\|>>|\^>>|~>>|\$>>|=>>|<<=|>>=|<=>|<\->|=~|!~|=>|\+\+|\-\-|<=|>=|==|!=|&&|\.\.|\+=|\-=|\*=|\/=|%=|&=|\^=|\|=|<\-|\+>|!>|<>|&>|%>|#>|\@>|\/>|\*>|\?>|\|>|\^>|~>|\$>|<\->|\->|<<|>>|\*\*|\?\||\?&|\|\||>|<|\*|\/|%|\+|\-|&|\^|\||=|\$|!|~|\?|#|\u2260|\u2218|\u2208|\u2209)z-(and|nand|or|xor|nor|return|import)(?![\w!?])z.(\`\`|\`|\'\'|\'|\.|\,|@@|@|\[|\]|\(|\)|\{|\})z[A-Z][\w!:?]*z[a-z_][\w!:?]*)r@  r   rC  r?  rA  rB  rD  rC   N)#rD   rE   rF   rG   rH   rI   rK   rJ   rL   rM   r   r  r   r   DocRegexr   r   r  Otherr   EntityVariabler   ReservedrY   r  rU   r   r^   r]   ra   r   rb   rc   rd   rd   rd   re   r   i  s,   



	

"'*/259?BDGLRWZ	fklmory}    
r   c                   @   s   e Zd ZdZdZdZddgZddgZdd	gZd
Z	dZ
dZdZdZddejfdefdefdejfdefdejfdejfdefde ejfdejfde ejfdefee
ddefeeddejfeeddejfde ejfeej fde!fd e!fd!e!fgiZ"d"S )#r   z(
    Lexer for Clojure source code.
    Clojurezhttp://clojure.org/clojurecljz*.cljz*.cljcztext/x-clojurezapplication/x-clojurez0.11)
r'  defr   fnr   letr   quoter3   loop)zdef-defnzdefn-defmacrodefmulti	defmethod	defstructdefoncerx   	definlinedefinterfacedefprotocol	defrecorddeftype
defprojectns(-  r   r   r   r   /r   r   r   r   r   r   z..accessoragentzagent-errorsagetalengthzall-nsalterandzappend-childapplyz	array-mapasetzaset-booleanz	aset-bytez	aset-charzaset-doublez
aset-floatzaset-intz	aset-longz
aset-shortassertassocawaitz	await-forbeanbindingzbit-andzbit-notzbit-orzbit-shift-leftzbit-shift-rightzbit-xorbooleanzbranch?butlastbytecastcharchildrenr*   zclear-agent-errorsr   commutecomp
comparator
complementconcatconjcons
constantlycondzif-notzconstruct-proxyz	contains?countz	create-nszcreate-structcycledecderef
differencedisjdissocdistinctdoalldocdorundoseqdosyncdotimesdotodoubledowndropz
drop-whileeditzend?ensureevalzevery?zfalse?ffirstzfile-seqfilterfindzfind-doczfind-nszfind-varfirstfloatflushr   fnseqfrestgensymzget-proxy-classri   zhash-mapzhash-setz
identical?identityzif-letr1   zin-nsincr   zinsert-childzinsert-leftzinsert-rightzinspect-tablezinspect-treez	instance?int
interleaveintersectionintoz
into-arrayiteratejoinkeykeyskeywordzkeyword?lastzlazy-catz	lazy-consleftleftszline-seqzlist*listloadz	load-filelockinglongrS  macroexpandzmacroexpand-1z
make-arrayz	make-nodemapz
map-invertzmap?mapcatmaxzmax-keymemfnmergez
merge-withmetaminzmin-keyrH   	namespacezneg?r   newlinenextznil?nodenotznot-any?z
not-every?znot=z
ns-importsz
ns-internszns-mapzns-namez
ns-publicsz	ns-refersz
ns-resolvezns-unmapnthnthrestorparsepartialpathpeekpopzpos?przpr-strprintz	print-strprintlnzprintln-strprnzprn-strprojectproxyzproxy-mappingsquotrandzrand-intrangezre-findz	re-groupsz
re-matcherz
re-matchesz
re-patternzre-seqreadz	read-linereducerefzref-setreferremremovezremove-methodz	remove-nsrenamezrename-keysrepeatr
  	replicateresolverestzresultset-seqreverserfirstrightrightsrC   rrestrseqsecondselectzselect-keyssendzsend-offseqzseq-zipzseq?rj   shortslurpsomesortzsort-byz
sorted-mapzsorted-map-byz
sorted-setzspecial-symbol?zsplit-atz
split-withstrzstring?structz
struct-mapsubssubvecsymbolzsymbol?synctakeztake-nthz
take-whiletesttimezto-arrayzto-array-2dztree-seqztrue?unionupzupdate-proxyvalvalszvar-getzvar-setzvar?vectorz
vector-zipzvector?whenz
when-firstzwhen-letzwhen-notzwith-local-varsz	with-metaz	with-openzwith-out-strzxml-seqzxml-zipzzero?zipmapzipperz(?!#)[\w!$%*+<=>?/.#|-]+rC   z;.*$z,+r<   z
-?\d+\.\d+z	-?\d+/\d+rE  z0x-?[abcdef\d]+r1  'z\\(.|[a-z]+)z::?#?z~@|[`\'#^~&@] r   z(?<=\()z(\[|\])z(\{|\})z(\(|\))N)#rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   special_formsr   builtins
valid_namer   rS   r   r   r   r]   ra   r^   r   r  rZ   r   r
   r   rR   r   r  rU   rJ  r   rc   rd   rd   rd   re   r   (  sF    9r   c                   @   s2   e Zd ZdZdZdZddgZdgZddgZd	Z	d
S )r   z.
    Lexer for ClojureScript source code.
    ClojureScriptz http://clojure.org/clojurescriptclojurescriptcljsz*.cljsztext/x-clojurescriptzapplication/x-clojurescript2.0N)
rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rd   rd   rd   re   r     s    r   c                   @   s   e Zd ZdZejejB Zdee	e
ejeefdefdeejefdejfdejfdefdejfd	ejfd
eejedfdeejedfdejfdejfdeeejfdejfdefdefdejfdejfdejfdefgdejdfgdejdfgdZ dS )TeaLangLexerzb
    For Tea source code. Only used within a
    TeaTemplateLexer.

    .. versionadded:: 1.5
    z:^(\s*(?:[a-zA-Z_][\w\.\[\]]*\s+)+?)([a-zA-Z_]\w*)(\s*)(\()r+   r,   r-   z@[a-zA-Z_][\w\.]*z/(and|break|else|foreach|if|in|not|or|reverse)\bz(as|call|define)\br2   z(template)(\s+)templater0  r1   r1  r2  r3  r4  z[a-zA-Z_\$]\w*z3(isa|[.]{3}|[.]{2}|[=#!<>+-/%&;,.\*\\\(\)\[\]\{\}])r$  r6  r7  r;   r8  r=   r>   )rC   r  r1   N)!rD   rE   rF   rG   rN   rO   rP   rQ   r   r   r   r   rU   r   r   r   rS   rT   rV   r   rR   rY   rX   r   r;  r[   r\   r   r]   r^   ra   rb   rc   rd   rd   rd   re   r     sB    


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Zd	eeeejeefd
efdeejefdejdfdejfdefdejfdejfdeejefdejfdeejedfdeejedfdefdej fdeeej!fdej"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#j&fd%e#j&fd&e#j'fd'e#j'fd(efgd)ej(d*fgd+ejd*fgd,ejfdejd-fd.ejd*fd/ejfgd0Z)d1S )2r"   z!
    For Ceylon source code.
    Ceylonzhttp://ceylon-lang.org/ceylonz*.ceylonztext/x-ceylonrh   z(?:\s|//.*?\n|/[*].*?[*]/)+r!  r+   r,   r   r   z(shared|abstract|formal|default|actual|variable|deprecated|small|late|literal|doc|by|see|throws|optional|license|tagged|final|native|annotation|sealed)\bz(break|case|catch|continue|else|finally|for|in|if|return|switch|this|throw|try|while|is|exists|dynamic|nonempty|then|outer|assert|let)\bz9(abstracts|extends|satisfies|super|given|of|out|assign)\bz(function|value|void|new)\bz(assembly|module|package)(\s+)r2   z#(class|interface|object|alias)(\s+)r*   r0  r1   r1  z%'\\.'|'[^\\]'|'\\\{#[0-9a-fA-F]{4}\}'z(\.)([a-z_]\w*)r4  r8  r5  z/\d{1,3}(_\d{3})+\.\d{1,3}(_\d{3})+[kMGTPmunpf]?z7\d{1,3}(_\d{3})+\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?z*[0-9][0-9]*\.\d{1,3}(_\d{3})+[kMGTPmunpf]?z2[0-9][0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[kMGTPmunpf]?z##([0-9a-fA-F]{4})(_[0-9a-fA-F]{4})+z#[0-9a-fA-F]+z\$([01]{4})(_[01]{4})+z\$[01]+z\d{1,3}(_\d{3})+[kMGTP]?z[0-9]+[kMGTP]?r;   z[A-Za-z_]\w*r=   z[a-z][\w.]*z[^*/]r   r   r   )rC   r*   r1   r   N)*rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   _wsr   r   r   r   rU   r   r   r   rS   rT   rV   r   rR   rW   rX   rY   r   rZ   r[   r\   r   r]   r^   r_   ra   rb   rc   rd   rd   rd   re   r"     s    


.


r"   c                   @   s  e Zd ZdZdZdZdgZddgZdgZdZ	e
je
jB Zd	ed
dddd d d ed
ddddddddd
 d Zd	ed
dddd d d ed
dddddddddd d Zde d e d ZdZg defdefdejfd efd!eejefd"eejefd#ejfd$efd%efd&ejfed'ejfed(d)d*ejfd+ej fd,eeeej!fd-ee"ej#fd.ee$ej#fd/ej%fd0ej%fd1eeee$ed2fd3e d4 ee&e'd5d6ej(ed2fd7eej(ee$d8fd3e d9 ee&e'd5d6ej(ed:fd3e d; ee&e'd5d6ej(ed<fd=e"fd>e"fd?e$fd@edAfdBedCfdDej)fdEe*fdFe dG efeej+dHfgeej,dHfgdIe$fdefeej,fdJe dK ee$eefdLe"dMfdNe$dHfgdLe"dMfdFe dO e eee$ej-dHfeej-dHfgdPee"edHfdQe$fdRefdIe$fdefeefgdSej(fdefe.dHgdBedHfe/dTgd@edHfdBefe/dTgdUefdVefdWefdXej0dYfdZeej0efd[efgdBefdXej0dYfd\e$d]fd^ej0dHfe/d_gd\e$d]fd^e$dHfe/d_gd`Z1daS )br   z!
    For Kotlin source code.
    Kotlinzhttp://kotlinlang.org/kotlinz*.ktz*.ktsztext/x-kotlinr   z@?[_r   r   r   Lmr   r   r   NdPcCfMnMcz]*Zsz\'~!%^&*()+=|\[\]:;,.<>/\?-]*r   z|`z`)zactual|abstract|annotation|companion|const|crossinline|data|enum|expect|external|final|infix|inline|inner|internal|lateinit|noinline|open|operator|override|private|protected|public|sealed|suspend|tailrec|valuer+   r<   \\$r;   r,   z^(#!/.+?)(\n)z/[*].*?[*]/zas\?z(as|break|by|catch|constructor|continue|do|dynamic|else|finally|get|for|if|init|[!]*in|[!]*is|out|reified|return|set|super|this|throw|try|typealias|typeof|vararg|when|where|while)\bzit\b)zBoolean?zByte?zChar?zDouble?zFloat?zInt?zLong?zShort?zString?zAny?zUnit?)BooleanByterZ   r;  r]   Intr  Shortr   AnyUnitr   r  r2   z(package|import)(\s+)(\S+)z(\?\.)((?:[^\W\d]|\$)[\w$]*)r8   r.   z[^\W\d][\w.]+@z(object)(\s+)(:)(\s+)r*   z((?:(?:z(|fun)\s+)*)(class|interface|object)(\s+)	modifiers)statez(var|val)(\s+)(\()destructuring_assignmentz)\s+)*)(var|val)(\s+)variablez)\s+)*)(fun)(\s+)functionz::|!!|\?[:.]r9   r:   r?   r4   r5   r6   z'\\.'|'[^\\]'z?[0-9](\.[0-9]*)?([eE][+-][0-9]+)?[flFL]?|0[xX][0-9a-fA-F]+[Ll]?r)   z((\?[^.])?)r=   r   z	(:)(\s+)(r   r   generic\)z(\.)z(>)(\s*)r  z(reified|out|in)\bz\w+string_commonr@   rA   rB   r  interpolationz	(\$)(\w+)z[^\\"$]+r   scoper   rC   )rC   r*   r  r  r  r  r  r6   r4   r  r  r  N)2rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r  r  kt_namekt_space_namekt_idr  r   r   r  r   r   rS   rT   r   r   r  r
   rW   rY   rX   r   r[   r   rV   r   r   rR   rZ   r   rb   rJ  rU   r	   r   r  rc   rd   rd   rd   re   r   >  sB   	!
#&
(
+./13457:
=
	
	
	


r   c                   @   sJ  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eeejeefd	efd
eejefdejfdejfdefdejfdejfdeejefdejfdeejedfdeejedfdedfdedfdejfdejfdej fdefdefde!j"fde!j#fd e!j$fd!efgd"ej%d#fgd$ejd#fgd%ed#fd&ed#fd'efgd(Z&d)S )*r    z 
    For Xtend source code.
    Xtendzhttps://www.eclipse.org/xtend/xtendz*.xtendztext/x-xtendrh   =^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_$][\w$]*)(\s*)(\()r+   r,   r-   r"  z(assert|break|case|catch|continue|default|do|else|finally|for|if|goto|instanceof|new|return|switch|this|throw|try|while|IF|ELSE|ELSEIF|ENDIF|FOR|ENDFOR|SEPARATOR|BEFORE|AFTER)\bz(def|abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile|val|var)\br/   r0   r2   r/  r*   r0  r1   z(''')r  z(\u00BB)r1  r2  r4  r#  [~^*!%&\[\](){}<>\|+=:;,./?-]r$  r6  r7  r;   r8  r=   r>   z'''z\u00ABr'  )rC   r*   r1   r  N'rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   r   r   r   r   rU   r   r   r   rS   rT   rV   r   rR   rW   rX   rY   r   r;  r\   r   r]   r^   ra   rb   rc   rd   rd   rd   re   r      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
je
jB Zdefd	efd
ejfdejfdefdefededededed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defdefgdefgdejfgdejfgdefgde fd e fd!e fgd"Z!d#S )$r#   z$
    For Pig Latin source code.
    Pigzhttps://pig.apache.org/pigz*.pigz
text/x-pigr  r<   z--.*z/\*[\w\W]*?\*/r  rB   z1\'(?:\\[ntbrf\\\']|\\u[0-9a-f]{4}|[^\'\\\n\r])*\'r   typesr  punctr   z[0-9]*\.[0-9]+(e[0-9]+)?[fd]?z0x[0-9a-f]+r7  r;   z([a-z_]\w*)(\s*)(\()z[()#:]z[^(:#\'")\s]+z\S+\s+a  (assert|and|any|all|arrange|as|asc|bag|by|cache|CASE|cat|cd|cp|%declare|%default|define|dense|desc|describe|distinct|du|dump|eval|exex|explain|filter|flatten|foreach|full|generate|group|help|if|illustrate|import|inner|input|into|is|join|kill|left|limit|load|ls|map|matches|mkdir|mv|not|null|onschema|or|order|outer|output|parallel|pig|pwd|quit|register|returns|right|rm|rmf|rollup|run|sample|set|ship|split|stderr|stdin|stdout|store|stream|through|union|using|void)\bz(AVG|BinStorage|cogroup|CONCAT|copyFromLocal|copyToLocal|COUNT|cross|DIFF|MAX|MIN|PigDump|PigStorage|SIZE|SUM|TextLoader|TOKENIZE)\bzR(bytearray|BIGINTEGER|BIGDECIMAL|chararray|datetime|double|float|int|long|tuple)\bz[;(){}\[\]][#=,./%+\-?] (eq|gt|lt|gte|lte|neq|matches)\b(==|<=|<|>=|>|!=))rC   r   r  r)  r*  r   N)"rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   
IGNORECASErQ   r   r   rT   r   r  r   r   r   r]   r^   ra   r   r   rU   r   r   r  rW   r   rc   rd   rd   rd   re   r#     sd    
r#   c                   @   s  e Zd ZdZdZdZdgZdgZdZde	fde
fd	efd
efdejfdefdeeje	dfdeeje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jfdefdeejefdejfdeejefdejfdejfdejfdejjfd ejfd!efd"ejfd#eed$d%fd&eed$d'fd(eed$d)fd*ejfgd!ejd+fgd,ejd+fgd-ej d+fgd!ej!d+fgd.efd/efgd0ej"fgd#ed+fe#d1d2efgd&ej$d+fe#d1gd(ed+fe#d1gd3efd4efd5efgd6Z%d7S )8r$   z
    For Golo source code.
    Golozhttp://golo-lang.org/z*.gologolor  r+   z#.*$z5(\^|\.\.\.|:|\?:|->|==|!=|=|\+|\*|%|/|<=|<|>=|>|=|\.)z(?<=[^-])(-)(?=[^-])z2(?<=[^`])(is|isnt|and|or|not|oftype|in|orIfNull)\bz
[]{}|(),[]z(module|import)(\s+)modnamez\b([a-zA-Z_][\w$.]*)(::)z+\b([a-zA-Z_][\w$]*(?:\.[a-zA-Z_][\w$]*)+)\bz(let|var)(\s+)varnamez(struct)(\s+)
structnamez(function)(\s+)funcnamez(null|true|false)\bz(augment|pimp|if|else|case|match|return|case|when|then|otherwise|while|for|foreach|try|catch|finally|throw|local|continue|break)\bz%(map|array|list|set|vector|tuple)(\[)z6(print|println|readln|raise|fun|asInterfaceInstance)\bz(`?[a-zA-Z_][\w$]*)(\()z&-?[\d_]*\.[\d_]*([eE][+-]?\d[\d_]*)?F?z	0[0-7]+j?z0[xX][a-fA-F0-9]+z-?\d[\d_]*Lz
-?\d[\d_]*z`?[a-zA-Z_][\w$]*z@[a-zA-Z_][\w$.]*r?   stringescapetriplestringr5   doublestringr  singlestringz----((.|\n)*?)----r=   z[a-zA-Z_][\w$.]*\*?z`?[\w.]+\*?z[^\\\'"\n]+z[\'"\\]zY\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})r6   r;   r+  r,  r-  )rC   r4  r1  r3  r2  r6   r5  r6  r7  r8  r   N)&rD   rE   rF   rG   rH   rI   rK   rJ   rM   r   r   r   Wordr   r   r   rX   r   rR   rY   r  rU   r   r]   r`   r^   ra   r  rV   r   r   rF  rb   rJ  r  r   r;  rc   rd   rd   rd   re   r$   ]  s    







=




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	 d
Z
e	 dZde dZde dZde dZi dg dedfdejdfdejdfdefdedfe
efdejfde ejfde ejfde ejfd e ejfd!e ejd"fd#e ejfd$e ejd%fd&e ejd'fd(e ejd)fd*e ejd+fd,e ejd-fd.e ejd/fd0e ejd1fd2e ejdfd3e ejd4fd5e ejd6fd-e ejd7fed8ed9ejfd:e ejd;fd<e ejd=fd>e ejd?fd@e ejdAfedBed9ejdfdCe ejdDfdEe ejdFfdGdejdfdHejfdIejfgddejdfdJejfdKejfgdLdMefdejdGfeddNe dOe ej!eefeej"fgd"dedPfde ejdQfedgdRdMefdSe ejdfedeej"dTfgdUdMefdSe ejdfede#dTgdVdejdGfedeej"fgd%dWe edfed1gd'eddXe dYe dZe ej$ej%ej&edfd[e dYe d\e ej%ej&dfgd;edd]ed^fdXe d_e dZe ej$ej%ej&edfd[e d_e d\e ej%ej&dfgdDedd]efdXe dYe d`e ej$ej%ej&edfde daej$dfe#dgdbedd]efdXe d_e dZe ej$ej%ej&edfde daej$dfe#dgdcddedfe#dDgd7e
efdee dfe'dgfe#dhgd1edd[e dYe d\e ej%ej(dfgdidje ejdkfedd[e dle dme dne d\	e ej%ej&ejj)dfgedd[e dle doe dne dp	e ej%ej&ej*edqfgedeej!dfgeddNe dpe ej*edqfgdre ejdfedgedd[e dle dme dne d\	e ej%ej&ejj&dfgdMefde ejdfedeej!fgedeejdfgeddse edfdte edufdve edwfgdxZ+dydz Z,d{S )|r%   z#
    For Jasmin assembly code.
    Jasminzhttp://jasmin.sourceforge.net/jasminjasminxtz*.jr  z \n\t\rz(?:[z]+)z:=z(?=[z]|$)z[^z]+z(?:[^z.;\[/]+)r	   r;   r=   r  )r=   rR  r5   r6   r   r  labelz;.*z(\$[-+])?0x-?[\da-fA-F]+z(\$[-+]|\+)?-?\d+zE-?(\d+\.\d*|\.\d+)([eE][-+]?\d+)?[fFdD]?[\x00-\x08\x0b\x0c\x0e-\x1f]*r   z\.annotationr   a  (\.attribute|\.bytecode|\.debug|\.deprecated|\.enclosing|\.interface|\.line|\.signature|\.source|\.stack|\.var|abstract|annotation|bridge|class|default|enum|field|final|fpstrict|interface|native|private|protected|public|signature|static|synchronized|synthetic|transient|varargs|volatile)z\.catchzcaught-exceptionz`(\.class|\.implements|\.inner|\.super|inner|invisible|invisibleparam|outer|visible|visibleparam)class/convert-dotsz\.field)descriptor/convert-dotsfieldz(\.end|\.limit|use)no-verificationz\.methodmethodz\.setr3   z\.throws	exceptionz(from|offset|to|using)is)r?  r3   z(locals|stack)verificationzenclosing-method)aaloadaastoreaconst_nullaloadaload_0aload_1aload_2aload_3aload_wareturnarraylengthastoreastore_0astore_1astore_2astore_3astore_wathrowbaloadbastorebipush
breakpointcaloadcastored2fd2id2ldadddaloaddastoredcmpgdcmpldconst_0dconst_1ddivdloaddload_0dload_1dload_2dload_3dload_wdmuldnegdremdreturndstoredstore_0dstore_1dstore_2dstore_3dstore_wdsubdupdup2dup2_x1dup2_x2dup_x1dup_x2f2df2if2lfaddfaloadfastorefcmpgfcmplfconst_0fconst_1fconst_2fdivfloadfload_0fload_1fload_2fload_3fload_wfmulfnegfremfreturnfstorefstore_0fstore_1fstore_2fstore_3fstore_wfsubi2bi2ci2di2fi2li2siaddialoadiandiastoreiconst_0iconst_1iconst_2iconst_3iconst_4iconst_5	iconst_m1idiviinciinc_wiloadiload_0iload_1iload_2iload_3iload_wimulinegint2byteint2char	int2shortioriremireturnishlishristoreistore_0istore_1istore_2istore_3istore_wisubiushrixorl2dl2fl2iladdlaloadlandlastorelcmplconst_0lconst_1ldc2_wldivlloadlload_0lload_1lload_2lload_3lload_wlmullneglookupswitchlorlremlreturnlshllshrlstorelstore_0lstore_1lstore_2lstore_3lstore_wlsublushrlxormonitorentermonitorexitnopr  pop2retret_wr   saloadsastoresipushswapr  z.(anewarray|checkcast|instanceof|ldc|ldc_w|new)class/no-dotsz;invoke(dynamic|interface|nonvirtual|special|static|virtual)
invocationz(getfield|putfield))descriptor/no-dotsr@  z(getstatic|putstatic))r  static)gotogoto_w	if_acmpeq	if_acmpne	if_icmpeq	if_icmpge	if_icmpgt	if_icmple	if_icmplt	if_icmpneifeqifgeifgtifleifltifne	ifnonnullifnulljsrjsr_wz(multianewarray|newarray)r?  tableswitchtablerR  z\\u[\da-fA-F]{4}z[^'\\]+z0\\([nrtfb"\'\\]|u[\da-fA-F]{4}|[0-3]?[0-7]{1,2})z[^"\\]+rC   z\n+r   z)([ \t\r]*)(:))r=   annotation-body)r=   annotation-defaultr  z\.end)annotation-itemsr  r  r  allz(L)((?:z[/.])*)(z)(;)z((?:r   z\[+)r=   r  z/)*)(z?)(;)z\[)L]+r  descriptors/convert-dotsr  z(?=[^z]*\())r=   r  )r=   r>  r@  r  )r=   r  z	[/.](?=[^z]*[/.]))*)(z[/.])?(z(]*[/.]))*)(z)(\())r=   r?  r  r?  z(locals|method|stack)z6(Double|Float|Integer|Long|Null|Top|UninitializedThis)Object)r=   r  Uninitialized)r=   r=  )r  r=  rB  rA  r  r  r3   rE  c                 C   sV   d}t d| t jr|d7 }t d| t jr|d7 }t d| t jr&|d7 }t|dS )	Nr   z^\s*\.class\sg      ?z^\s*[a-z]+_[a-z]+\bg333333?za^\s*\.(attribute|bytecode|debug|deprecated|enclosing|inner|interface|limit|set|signature|stack)\bg333333?g      ?)rN   searchrO   r  )r   scorerd   rd   re   r9    s   
zJasminLexer.analyse_textN)-rD   rE   rF   rG   rH   rI   rJ   rK   rM   _whitespacer  
_separator_break_name_unqualified_namer   r   rS   r;  r   r   r   r^   ra   r]   r   rJ  r   rK  r
   r  r   r   r\   rH  r	   rW   rX   rb   r   	ExceptionInstancerU   rc   r9  rd   rd   rd   re   r%     s`   


	
 !"$%(?ADFHNPS
X
^

fl
rx
}   
      %  )  .  3  ;

  fr%   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eeejeefd	efd
eejefdejfdejfdefdejfdejfdeejefdejfdeejedfdeejedfdejfdejfdej fdefdefde!j"fde!j#fde!j$fdefgdej%d fgd!ejd fgd"Z&d#S )$r&   z
    For SARL source code.
    SARLzhttp://www.sarl.iosarlz*.sarlztext/x-sarlz2.4r$  r+   r,   r-   r"  z(as|break|case|catch|default|do|else|extends|extension|finally|fires|for|if|implements|instanceof|new|on|requires|return|super|switch|throw|throws|try|typeof|uses|while|with)\bz(abstract|def|dispatch|final|native|override|private|protected|public|static|strictfp|synchronized|transient|val|var|volatile)\br/   r0   z+(false|it|null|occurrence|this|true|void)\bzY(agent|annotation|artifact|behavior|capacity|class|enum|event|interface|skill|space)(\s+)r*   r0  r1   r1  r2  r4  r#  r%  r$  r6  r7  r;   r8  r=   r>   )rC   r*   r1   Nr&  rd   rd   rd   re   r&     s^    

$

r&   )-rG   rN   pygments.lexerr   r   r   r   r   r   r   r	   r
   pygments.tokenr   r   r   r   r   r   r   r   r   pygments.utilr   pygmentsr   r  __all__r   r!   r   r   r   r   r   r   r   r   r"   r   r    r#   r$   r%   r&   rd   rd   rd   re   <module>   s>    
,,]'  OM @ /O ACq  