U
    YSh                    @   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 ddd	d
ddddddddddddgZG dd deZG dd deZG dd deZ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   F/root/rtd-docs/venv/lib/python3.8/site-packages/pygments/lexers/jvm.pyr      s    

6

c                +   @   s   e Zd ZdZdZdZdgZdgZdgZdZ	dd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2h+Z
d3d4d5d6d7hZd8d9d:d;hZd<d= Zd>S )?r!   z"
    For AspectJ source code.
    AspectJzhttp://www.eclipse.org/aspectj/aspectjz*.ajztext/x-aspectj1.6ZaspectZpointcutZ
privilegedcallZ	executionZinitializationZpreinitializationhandlergetsetZstaticinitializationtargetargsZwithinZ
withincodeZcflowZ
cflowbelow
annotationbeforeafteraroundproceedZthrowingZ	returningZadviceexecutiondeclareparentswarningerrorZsoft
precedenceZthisJoinPointZthisJoinPointStaticPartZ thisEnclosingJoinPointStaticPartZissingletonZperthisZ	pertargetZpercflowZpercflowbelowZpertypewithinlockunlockZthisAspectInstancezparents:zwarning:zerror:zsoft:zprecedence:z@typez@methodz@constructorz@fieldc                 c   s   t | |D ]\}}}|tkr6|| jkr6|t|fV  q|tjkrp|| jkrp|t|d d fV  |t|d fV  q|tjkr|| j	kr|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   sl                                     c                (   @   sv  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"e#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gd:e$fgd;e%j&fd<e%j'd=fgd>e%j(fgd?e)e*e$d@fgdAe)e*e$e*e$dBfdCe)e*e$dBfge+e"dDdDdEe*fdFe*fgdGe e,j-fgdHe)e.e$e*e$fgdIe dJe dKe)e*e$e,j/fdLe dJe dKe)e*e$e,j0fdMe dJe dKe)e*e$e*e$e,j0fdNe dJe dKe)e*e$e,j0fdOe*j1fdPe dJe dKe)e*e$e*e$e,j2fdQe)e*e$dRfdSe de)e*e$e,j0fdSe dKe)e*e$e,fg	dTe de dUe dVe)e*e$e,j0fgdWe)e*e$fgdXe)e*e$e*fdYe de e)e*e$e,j0fdYe de dKe e)e*e$e,j2fgdZe.fd[e.fge+e dDdDdEe*fgdJe d\e)e3e$fd]e3fe+e!e3fd^e d_e de3fgd`e,j4j5fdae*j6fdbe7j8fdce7j9fdde7j9fdee7j9fdfe7j:j;fdge7j:fdhe<fdie<fdje)e<j=e<j>e<j=fdke<j=fgdle<dmfdne<dofdpe<fgdqe dre<j?fgdse)e.e*fgdte de due*fdve*fgdwe.fdxe.fgee,j0fee,fgdye%j'fd<e%j'dzfd{e%j'd|fd}e%j'fgd~e@d|fe#d%de*fe#dde.dfge#d$e#d%de*fde3fde.d|fde.fde.fe#dgd~e@d|fe#d%e#dde.dfge#d$e#d%de3fde.d|fde.fe#dgde@d|fde.d|fe#d%e#dgde<d|fde<fe#dgde<d|fe#dgde<jAd|fde.dfe#dgde.dzfde.d|fe#dgee,j0fdJe de)e,j2e.fde.fee,fde$fgde<fde<j>fde de)e<jAe,fde<jAdfde<fgd#ZBdS )r   z 
    For Scala source code.
    Scalazhttp://www.scala-lang.orgscalaz*.scalaztext/x-scalar)   z[!#%&*\-\/:?@^ZSmZSo]z[_\$LlLuZLoNlLt[z(?:z|[0-9])z(?:{}|[0-9])\$+*z
*(?:(?<=_)z+)?|z+)z`[^`]+`)z
(?!//|/\*)z(?=\s*(//|$)))newreturnthrowZclassOfZisInstanceOfZasInstanceOfelseifZthendowhileforyieldmatchcaseZcatchfinallytry)z<%z=:=z<:<z<%<z>:z<:===z!=<=>=z<><>z<-u   ←->u   →=>u   ⇒?@r   -r   r   %~\)privateZ	protectedZsynchronizedz	@volatileZabstractfinalZlazyZsealedZimplicitoverridez
@transientz@native
whitespacecommentsscript-headerimportsexportsstorage-modifiersannotationsr   declarationsinheritance	extensionend	constantsstringssymbolssingleton-typeinlinequotedkeywords	operatorspunctuationnamesr<   //.*?\n/\*commentz^#!([^\n]*)$z\b(import)(\s+)import-pathz\b(export)(\s+)(given)(\s+)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]"""interpolated-string-triplez[fs]"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)\bqualified-name\{import-path-curly-bracer   \},z[\[\]]export-path-curly-bracez
(?<=[\n;]):z"""(?!")r5   interpolated-string-common interpolated-string-nested-bracerC   z)(\.)z\.r+   z[^"$\\]+z\$\$z(\$)(\$\{interpolated-string-bracez\\.)#rC   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   N)CrD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   unicombineZopcharletterZupperLetterZletterOrDigitformatreplaceZletterOrDigitNoDollarSignZalphaIdZsimpleInterpolatedVariableZidrestZidUpperZplainidZbackQuotedIdZanyIdZnotStartOfCommentZendOfLineMaybeWithCommentr   r   Z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  

 











	



 c                   @   s  e Zd ZdZdZdgZddddg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%d0S )1r   z
    For Gosu source code.
    Gosugosuz*.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   

&
 
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   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   r  rd   rd   rd   re   r     sn   
.

;c                /   @   s  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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g'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   r  r  r  r  r  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   




 	 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   Zletr   quoter3   loop)zdef-Zdefnzdefn-ZdefmacroZdefmultiZ	defmethodZ	defstructZdefoncert   Z	definlineZdefinterfaceZdefprotocolZ	defrecorddeftypeZ
defprojectns(-  r   r   r   r   /r   r   r   r   r   r   z..accessorZagentzagent-errorsZagetZalengthzall-nsZalterandzappend-childapplyz	array-mapZasetzaset-booleanz	aset-bytez	aset-charzaset-doublez
aset-floatzaset-intz	aset-longz
aset-shortassertZassocawaitz	await-forZbeanZbindingzbit-andzbit-notzbit-orzbit-shift-leftzbit-shift-rightzbit-xorbooleanzbranch?Zbutlastbytecastcharchildrenr*   zclear-agent-errorsr   ZcommutecompZ
comparatorZ
complementconcatZconjZconsZ
constantlyZcondzif-notzconstruct-proxyz	contains?countz	create-nszcreate-structcycledecZderef
differenceZdisjZdissocZdistinctZdoalldocZdorundoseqZdosyncZdotimesZdotodoubleZdownZdropz
drop-whileZeditzend?Zensureevalzevery?zfalse?Zffirstzfile-seqfilterfindzfind-doczfind-nszfind-varfirstfloatflushr   ZfnseqZfrestZgensymzget-proxy-classrk   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?intZ
interleaveintersectionZintoz
into-arrayZiteratejoinkeykeyskeywordzkeyword?lastzlazy-catz	lazy-consleftZleftszline-seqzlist*listloadz	load-fileZlockinglongr!  Zmacroexpandzmacroexpand-1z
make-arrayz	make-nodemapz
map-invertzmap?Zmapcatmaxzmax-keyZ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-unmapZnthZnthrestorparsepartialpathpeekpopzpos?przpr-strprintz	print-strZprintlnzprintln-strZprnzprn-strprojectproxyzproxy-mappingsquotZrandzrand-intrangezre-findz	re-groupsz
re-matcherz
re-matchesz
re-patternzre-seqreadz	read-linereducerefzref-setZreferremremovezremove-methodz	remove-nsrenamezrename-keysrepeatr   Z	replicateresolverestzresultset-seqreverseZrfirstrightZrightsrC   ZrrestZrseqsecondselectzselect-keyssendzsend-offseqzseq-zipzseq?rl   shortZslurpZsomesortzsort-byz
sorted-mapzsorted-map-byz
sorted-setzspecial-symbol?zsplit-atz
split-withstrzstring?structz
struct-mapsubsZsubvecsymbolzsymbol?syncZ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?Z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?ZzipmapZzipperz(?!#)[\w!$%*+<=>?/.#|-]+rC   z;.*$z,+r<   z
-?\d+\.\d+z	-?\d+/\d+r  z0x-?[abcdef\d]+r   'z\\(.|[a-z]+)z::?#?z~@|[`\'#^~&@] r   z(?<=\()z(\[|\])z(\{|\})z(\(|\))N)#rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   Zspecial_formsr   builtinsZ
valid_namer   rS   r   r   r   r]   ra   r^   r   r   rZ   r   r
   r   rR   r   r   rU   r  r   rc   rd   rd   rd   re   r   (  sD   9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   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+)templater   r1   r   r  r  r  z[a-zA-Z_\$]\w*z3(isa|[.]{3}|[.]{2}|[=#!<>+-/%&;,.\*\\\(\)\[\]\{\}])r   r  r  r;   r  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    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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*   r   r1   r   z%'\\.'|'[^\\]'|'\\\{#[0-9a-fA-F]{4}\}'z(\.)([a-z_]\w*)r  r  r  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   

 
.
 

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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g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   ZLmr   r   r   ZNdZPcZCfZMnZ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?)BooleanZByterZ   r
  r]   ZIntr   ZShortr   AnyZ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   Zkt_nameZkt_space_nameZ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   r  rU   r	   r   r   rc   rd   rd   rd   re   r   >  s     
 
 
 =

	
	
	

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*   r   r1   z(''')r  z(\u00BB)r   r  r  r   [~^*!%&\[\](){}<>\|+=:;,./?-]r   r  r  r;   r  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      sf   %

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]+r  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#     sb   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   r  r  r  r  r6   r  r  r  r  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   r  rb   r  r   r   r
  rc   rd   rd   rd   re   r$   ]  s   






=




c                "   @   sH  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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d/e ejd0fd1e ejdfd2e ejd3fd4e ejd5fd,e ejd6fed7ed8ejfd9e ejd:fd;e ejd<fd=e ejd>fd?e ejd@fedAed8ejdfdBe ejdCfdDe ejdEfg dejdfdFejfdGejfgdejdfdHejfdIejfgdJefdejdKfedLdMe dNe ej!eefeej"fgdedOfdLe ejdPfedLgdJefdQe ejdfedLeej"dRfgdJefdQe ejdfedLe#dRgdejdKfedLeej"fgdSe edfed0gedLdTe dUe dVe ej$ej%ej&edfdWe dUe dXe ej%ej&dfgedLdYedZfdTe d[e dVe ej$ej%ej&edfdWe d[e dXe ej%ej&dfgedLdYefdTe dUe d\e ej$ej%ej&edfde d]ej$dfe#dgedLdYefdTe d[e dVe ej$ej%ej&edfde d]ej$dfe#dgd^edfe#dCge
efd_e d`e'dafe#dbgedLdWe dUe dXe ej%ej(dfgdce ejddfedLdWe dee dfe dge dX	e ej%ej&ejj)dfgedLdWe dee dhe dge di	e ej%ej&ej*edjfgedLeej!dfgedLdMe die ej*edjfgdke ejdfedLgedLdWe dee dfe dge dX	e ej%ej&ejj&dfgdJefdLe ejdfedLeej!fgedLeejdfgedLdle edfdme ednfdoe edpfgdqZ+drds Z,dtS )ur%   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   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\.annotationro   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\.catch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)verificationenclosing-method)ZaaloadZaastoreZaconst_nullZaloadZaload_0Zaload_1Zaload_2Zaload_3Zaload_wZareturnZarraylengthZastoreZastore_0Zastore_1Zastore_2Zastore_3Zastore_wathrowZbaloadZbastoreZbipush
breakpointZcaloadZcastoreZd2fZd2iZd2lZdaddZdaloadZdastoreZdcmpgZdcmplZdconst_0Zdconst_1ZddivZdloadZdload_0Zdload_1Zdload_2Zdload_3Zdload_wZdmulZdnegZdremZdreturnZdstoreZdstore_0Zdstore_1Zdstore_2Zdstore_3Zdstore_wZdsubdupdup2Zdup2_x1Zdup2_x2Zdup_x1Zdup_x2Zf2dZf2iZf2lZfaddZfaloadZfastoreZfcmpgZfcmplZfconst_0Zfconst_1Zfconst_2ZfdivZfloadZfload_0Zfload_1Zfload_2Zfload_3Zfload_wZfmulZfnegZfremZfreturnZfstoreZfstore_0Zfstore_1Zfstore_2Zfstore_3Zfstore_wZfsubZi2bZi2cZi2dZi2fZi2lZi2siaddZialoadiandZiastoreZiconst_0Ziconst_1Ziconst_2Ziconst_3Ziconst_4Ziconst_5Z	iconst_m1ZidivZiincZiinc_wZiloadZiload_0Ziload_1Ziload_2Ziload_3Ziload_wimulZinegint2byteZint2charZ	int2shortiorZiremZireturnZishlZishrZistoreZistore_0Zistore_1Zistore_2Zistore_3Zistore_wisubZiushrixorZl2dZl2fZl2iZladdZlaloadZlandZlastoreZlcmpZlconst_0Zlconst_1Zldc2_wZldivZlloadZlload_0Zlload_1Zlload_2Zlload_3Zlload_wZlmulZlnegZlookupswitchZlorZlremZlreturnZlshlZlshrZlstoreZlstore_0Zlstore_1Zlstore_2Zlstore_3Zlstore_wZlsubZlushrZlxorZmonitorenterZmonitorexitZnoprZ  Zpop2retZret_wr   ZsaloadZsastoreZsipushZ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)ZgotoZgoto_wZ	if_acmpeqZ	if_acmpneZ	if_icmpeqZ	if_icmpgeZ	if_icmpgtZ	if_icmpleZ	if_icmpltZ	if_icmpneZifeqZifgeZifgtZifleZifltZifneZ	ifnonnullZifnullZjsrZjsr_wz(multianewarray|newarray)r  Ztableswitchtablez\\u[\da-fA-F]{4}z[^'\\]+z0\\([nrtfb"\'\\]|u[\da-fA-F]{4}|[0-3]?[0-7]{1,2})z[^"\\]+z\n+r   r	   r   z)([ \t\r]*)(:))r=   annotation-body)r=   annotation-defaultz\.end)annotation-itemsr  allz(L)((?:z[/.])*)(z)(;)z((?:r   z\[+)r=   r  z/)*)(z?)(;)z\[)L]+r  z(?=[^z]*\())r=   r  )r=   r  r  )r=   r  z	[/.](?=[^z]*[/.]))*)(z[/.])?(z(]*[/.]))*)(z)(\())r=   r  descriptors/convert-dotsr  z(locals|method|stack)z6(Double|Float|Integer|Long|Null|Top|UninitializedThis)ZObject)r=   r  ZUninitialized)r=   r  )r	   r   r6   rC   ro   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r3   r  c                 C   sV   d}t d| t jr4|d7 }t d| t jr4|d7 }t d| t jrL|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   rO  )r   Zscorerd   rd   re   r    s    zJasminLexer.analyse_textN)-rD   rE   rF   rG   rH   rI   rJ   rK   rM   _whitespacer  Z
_separator_break_nameZ_unqualified_namer   r   rS   r
  r   r   r   r^   ra   r]   r   r  r   r  r
   r   r   r   r\   r  r	   rW   rX   rb   r   	ExceptionInstancerU   rc   r  rd   rd   rd   re   r%     s  


   S



	

 	 


 
 
  fc                   @   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*   r   r1   r   r  r  r   r  r   r  r  r;   r  r=   r>   )rC   r*   r1   Nr  rd   rd   rd   re   r&     s\   
$

)-rG   rN   Zpygments.lexerr   r   r   r   r   r   r   r	   r
   Zpygments.tokenr   r   r   r   r   r   r   r   r   Z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>   sV   
,,         ]'  OM @ /O ACq  