a
    ;@b7                    @   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 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-2021 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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gZdgZdgZej	ej
B ejB Zdeeeeejdfdefd	ej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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fd*efd+efd,efded'fgd-Z)d.S )/r   zM
    For `Java <https://www.oracle.com/technetwork/java/>`_ source code.
    ZJavajavaz*.javaztext/x-javazJ(^\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)\bzE((?:(?:[^\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+)"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'   r0   r.   r2   N)*__name__
__module____qualname____doc__namealiases	filenames	mimetypesre	MULTILINEDOTALLUNICODEflagsr   r   r   r   r   Declarationr   Single	Multiliner   Functionr   	DecoratorType	NamespaceConstantr   Char	AttributeLabelr   FloatHexBinOctIntegerr   Classtokens r^   r^   2lib/python3.9/site-packages/pygments/lexers/jvm.pyr      s   

6

r   c                   @   sF   e Zd ZdZdZdgZdgZdgZh dZh dZ	h dZ
d	d
 ZdS )r    zb
    For `AspectJ <http://www.eclipse.org/aspectj/>`_ source code.

    .. versionadded:: 1.6
    ZAspectJZaspectjz*.ajztext/x-aspectj>+   ZaspecttargetZ thisEnclosingJoinPointStaticPartbeforeZwithinZwarningZsofterrorZinitializationZ	pertargetZperthislockZpercflowdeclaresetZhandlergetZthisAspectInstanceZ	executionZthisJoinPointZaround
annotationZissingletonZ
privilegedZstaticinitializationZthisJoinPointStaticPartZ
precedenceZpreinitializationparentsZ
cflowbelowZ	returningZpertypewithinZcflowZthrowingZadviceexecutionZproceedZunlockZ
withincodeZpercflowbelowcallZpointcutargsZafter>   zsoft:zerror:zwarning:zprecedence:zparents:>   z@fieldz@typez@constructorz@methodc                 c   s   t | |D ]\}}}|tu r6|| jv r6|t|fV  q|tju rp|| jv rp|t|d d fV  |t|d fV  q|tju r|| j	v r|t|fV  q|||fV  qd S )N)
r   get_tokens_unprocessedr   aj_keywordsr   rV   aj_inter_typer   rP   aj_inter_type_annotation)selftextindextokenvaluer^   r^   r_   rl      s    z#AspectJLexer.get_tokens_unprocessedN)r?   r@   rA   rB   rC   rD   rE   rF   rm   rn   ro   rl   r^   r^   r^   r_   r    p   s   r    c                (   @   s  e Zd ZdZdZdgZdgZdgZej	ej
B Zdedd d	 Zd
eddddd d	 Zdedd d	 Zde Zdedd Zde Zdeef Zdeeef Zdeeef Zdeef ZdZdeef 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 d+e d,e d-e d.e d/e d0e d1e d2e d3e d4gd5e!fgd6e"j#fd7e"j$d8fgd9e"j%fgd:e&e'e!d;fgd<e&e'e!e'e!d=fd>e&e'e!d=fge(ed?d?d@e'fdAe'fgdBe e)j*fgdCe&e+e!e'e!fgdDeef e&e'e!e)j,fdEeef e&e'e!e)j-fdFeef e&e'e!e'e!e)j-fdGeef e&e'e!e)j-fdHe'j.fdIeef e&e'e!e'e!e)j/fdJe&e'e!dKfdLe e&e'e!e)j-fdMe e&e'e!e)fg	dNeeef e&e'e!e)j-fgdOe&e'e!fgdPe&e'e!e'fdQeef e&e'e!e)j-fdReeef e&e'e!e)j/fgdSe+fdTe+fge(ed?d?d@e'fgdUe e&e0e!fdVe0fe(ee0fdWeef e0fgdXe)j1j2fdYe'j3fdZe4j5fd[e4j6fd\e4j6fd]e4j6fd^e4j7j8fd_e4j7fd`e9fdae9fdbe&e9j:e9j;e9j:fdce9j:fgdde9defdfe9dgfdhe9fgdie e9j<fgdje&e+e'fgdkeef e'fdle'fgdme+fdne+fgee)j-fee)fgdoe"j$fd7e"j$dpfdqe"j$drfdse"j$fgdte!drfe d due'fe dvdwe+dxfge de d due'fdye0fdze+drfd{e+fd|e+fe dvgdte!drfe d e dvdwe+d}fge de d dye0fdze+drfd{e+fe dvgd~e!drfde+drfe d e dvgde9drfde9fe dgde9drfe dgdze9j=drfdwe+dfe dgdwe+dpfdze+drfe dgee)j-fde e&e)j/e+fde+fee)fde!fgde9fde9j;fde e&e9j=e)fde9j=dfde9fgd#Z>dS )r   z?
    For `Scala <http://www.scala-lang.org>`_ source code.
    ZScalaZscalaz*.scalaztext/x-scalaz[!#%&*\-\/:?@^ZSmZSo]z[_\$LlLuZLoNlLt[z(?:%s|[0-9])z\$ z%s+z%s%s*z%s%s*(?:(?<=_)%s+)?z
(?:%s|%s+)z`[^`]+`z	(?:%s|%s)z
(?!//|/\*)z(?=\s*(//|$)))newreturnthrowZclassOfZisInstanceOfZasInstanceOfelseifZthendowhileforyieldmatchZcaseZcatchfinallytry)z<%z=:=z<:<z<%<z>:z<:===z!=<=>=z<><>z<-u   ←->u   →=>u   ⇒?@|-+*%~\)Z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namesr8   r)   /\*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)z@%sz(\()(\s*)(using)(\s)z\b(def)\b(\s*)%s(%s)?z\b(trait)\b(\s*)%s(%s)?z3\b(?:(case)(\s+))?(class|object|enum)\b(\s*)%s(%s)?z(?<!\.)\b(type)\b(\s*)%s(%s)?z\b(val|var)\bz&\b(package)(\s+)(object)\b(\s*)%s(%s)?z\b(package)(\s+)packagez\b(given)\b(\s*)(%s)z\b(given)\b(\s*)(%s)?zC\b(extends|with|derives)\b(\s*)(%s|%s|(?=\([^\)]+=>)|(?=%s)|(?="))?z\b(extension)(\s+)(?=[\[\(])z8\b(end)(\s+)(if|while|for|match|new|extension|val|var)\bz\b(end)(\s+)(%s)%sz\b(end)(\s+)(%s|%s)?%sz[{}()\[\];,.]z(?<!:):(?!:)z(%s{2,})(\s+)z	/(?![/*])z(?<!%s)(!|&&|\|\|)(?!%s)z\b(this|super)\br/   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
('%s)(?!')z(\.)(type)\bz\b(inline)(?=\s+(%s|%s)\s*:)z=\b(inline)\b(?=(?:.(?!\b(?:val|def|given)\b))*\b(if|match)\b)z['$]\{(?!')z'\[(?!')z[^/*]+#push\*/r9   [*/]z(?<=[\n;:])z\b(given)\bqualified-name\{import-path-curly-bracer   \},z[\[\]]export-path-curly-bracez
(?<=[\n;]):z"""(?!")r1   interpolated-string-common interpolated-string-nested-bracer>   z(%s)(\.)z\.r(   z[^"$\\]+z\$\$z(\$)(%s)\$\{interpolated-string-bracez\\.)#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   r   N)?r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rK   unicombineZopcharZletterZupperLetterZletterOrDigitreplaceZletterOrDigitNoDollarSignZalphaIdZsimpleInterpolatedVariableZidrestZidUpperZplainidZbackQuotedIdZanyIdZnotStartOfCommentZendOfLineMaybeWithCommentr   r   Zstorage_modifiersr   r   r   rM   rN   ZHashbangr   r   r
   r   rP   r   rO   r\   rL   rR   r   BuiltinZPseudorS   r   rX   rW   r[   Longr   rT   EscapeSymbolInterpolr]   r^   r^   r^   r_   r      s  














	


 r   c                   @   s  e Zd ZdZdZdgZg dZdg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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.

    .. versionadded:: 1.5
    ZGosuZgosu)z*.gsz*.gsxz*.gspz*.varkztext/x-gosu9^(\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)\br-   z (true|false|null|NaN|Infinity)\bz5(class|interface|enhancement|enum)(\s+)([a-zA-Z_]\w*)z(uses)(\s+)([\w.]+\*?)r1   r2   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   r7   z(\\<)|(\\\$)z(<%@\s+)(extends|params)stringTemplatez<%!--.*?--%>z
(<%)|(<%=)r   stringTemplateShorthand.r9   templateTextz%>r>   r   r   )r>   r   r2   r   r   N)$r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rK   r   r   r   r   rO   r   r   r   rM   rN   rP   r   rL   rQ   rR   rS   r\   r   rU   r   rW   r[   r   r]   r^   r^   r^   r_   r     s   

&
r   c                   @   s.   e Zd ZdZdZdgZdgZdgZdd ZdS )	r   z8
    For Gosu templates.

    .. versionadded:: 1.5
    zGosu TemplateZgstz*.gstztext/x-gosu-templatec                 c   s"   t  }dg}|||E d H  d S )Nr   )r   rl   )rp   rq   Zlexerstackr^   r^   r_   rl     s    z(GosuTemplateLexer.get_tokens_unprocessedN)	r?   r@   rA   rB   rC   rD   rE   rF   rl   r^   r^   r^   r_   r     s   r   c                   @   sb  e Zd ZdZdZdgZddgZdgZej	ej
B Zdejdfedgd	efd
ej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 <http://groovy.codehaus.org/>`_ source code.

    .. versionadded:: 1.5
    ZGroovygroovyz*.groovyz*.gradleztext/x-groovyz#!(.*?)$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)\br-   r/   (class|interface)(\s+)r'   (import)(\s+)r.   z	""".*?"""z	'''.*?'''"(\\\\|\\[^\\]|[^"\\])*"'(\\\\|\\[^\\]|[^'\\])*'z\$/((?!/\$).)*/\$z/(\\\\|\\[^\\]|[^/\\])*/r3   (\.)([a-zA-Z_]\w*)[a-zA-Z_]\w*:r   [~^*!%&\[\](){}<>|+=:;,./?-]r   0x[0-9a-fA-F]+[0-9]+L?r7   [a-zA-Z_]\w*r9   r:   )r>   r   r'   r.   c                 C   s
   t | dS )Nr   r   )rq   r^   r^   r_   analyse_text`  s    zGroovyLexer.analyse_textN)*r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rK   r   ZPreprocr	   r   rM   rN   r   r   r   r   r   rO   r   rP   rL   rQ   rR   rS   r   DoublerT   rU   rV   r   rW   rX   r[   r\   r]   r   r^   r^   r^   r_   r     sj   
.

;r   c                /   @   s  e Zd ZdZdZdgZddgZdg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d.ejfd/ejfd0efd1ejfd2efd3ejfd4efd5ejfd6ejfd7ejfd8ejfd9ejfd:ejfd;ejfd<ejfd=e
fd>efd?efd@e
fdAejfdBefg'dCZ dDS )Er   z
    For `Ioke <http://ioke.org/>`_ (a strongly typed, dynamic,
    prototype based programming language) source.

    .. versionadded:: 1.4
    ZIokez*.ikZiokeZikztext/x-iokesrczS(\\b|\\e|\\t|\\n|\\f|\\r|\\"|\\\\|\\#|\\\Z|\\u[0-9a-fA-F]{1,4}|\\[0-3]?[0-7]?[0-7])z#\{textInterpolationRootz(?<!\\)"r9   interpolatableTextz[^"]r   r>   z(?<!\\)/[im-psux]*z\\/z[^/]z(?<!\\)][im-psux]*z\\]z[^\]]z(?<!\\)]r7   r8   z;(.*?)\nz\A#!(.*?)\nz#/slashRegexpz#r\[squareRegexpz	:[\w!:?]+z[\w!:?]+:(?![\w!?])z:"(\\\\|\\[^\\]|[^"\\])*"z((?<=fn\()|(?<=fnx\()|(?<=method\()|(?<=macro\()|(?<=lecro\()|(?<=syntax\()|(?<=dmacro\()|(?<=dlecro\()|(?<=dlecrox\()|(?<=dsyntax\())\s*"documentationr1   rq   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   rq   r   r   r   r   r   r>   N)!r?   r@   rA   rB   rC   rE   rD   rF   r   r   r   r   DocZRegexr   r   r   Otherr   ZEntityVariabler   ReservedrS   r   rO   r   rX   rW   r[   r   r\   r]   r^   r^   r^   r_   r   d  s   




	 r   c                   @   s   e Zd ZdZdZddgZdgZddgZdZd	Z	d
Z
dZddejfdefdej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 <http://clojure.org/>`_ source code.

    .. versionadded:: 0.11
    ZClojureZclojureZcljz*.cljztext/x-clojurezapplication/x-clojure)
r   defr   fnr   Zletr|   quoter0   loop)zdef-Zdefnzdefn-ZdefmacroZdefmultiZ	defmethodZ	defstructZdefoncerd   Z	definlineZdefinterfaceZdefprotocolZ	defrecordZ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-childZ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-xorZbooleanzbranch?ZbutlastZbytecastcharZ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cycleZdecZderef
differenceZdisjZdissocZdistinctZdoalldocZdorundoseqZdosyncZdotimesZdotoZ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-classrf   zhash-mapzhash-setz
identical?identityzif-letr.   zin-nsZincrr   zinsert-childzinsert-leftzinsert-rightzinspect-tablezinspect-treez	instance?intZ
interleaveintersectionZintoz
into-arrayZiteratejoinkeykeyskeywordzkeyword?Zlastzlazy-catz	lazy-consleftZleftszline-seqzlist*listloadz	load-fileZlockingZ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-keyrC   	namespacezneg?r|   newlinenextznil?Z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?Zprzpr-strprintz	print-strZprintlnzprintln-strZprnzprn-strZprojectproxyzproxy-mappingsZquotZrandzrand-intrangezre-findz	re-groupsz
re-matcherz
re-matchesz
re-patternzre-seqreadz	read-linereducerefzref-setZreferZremremovezremove-methodz	remove-nsrenamezrename-keysrepeatr   Z	replicateresolverestzresultset-seqreverseZrfirstrightZrightsr>   ZrrestZrseqsecondZselectzselect-keyssendzsend-offseqzseq-zipzseq?re   ZshortZslurpZsomesortzsort-byz
sorted-mapzsorted-map-byz
sorted-setzspecial-symbol?zsplit-atz
split-withstrzstring?structz
struct-mapZsubsZsubvecsymbolzsymbol?syncZtakeztake-nthz
take-whiletesttimezto-arrayzto-array-2dztree-seqztrue?unionZupzupdate-proxyvalZvalszvar-getzvar-setzvar?Zvectorz
vector-zipzvector?Z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!$%*+<=>?/.#|-]+r>   z;.*$z[,\s]+z
-?\d+\.\d+r   z0x-?[abcdef\d]+r   'z\\(.|[a-z]+)z::?#?z~@|[`\'#^~&@] r   z(?<=\()z(\[|\])z(\{|\})z(\(|\))N) r?   r@   rA   rB   rC   rD   rE   rF   Zspecial_formsr   builtinsZ
valid_namer   rM   r   r   rW   r[   rX   r   r   rT   r   r
   r   rL   r   r   rO   r   r   r]   r^   r^   r^   r_   r   #  s<   9r   c                   @   s*   e Zd ZdZdZddgZdgZddgZdS )	r   zs
    Lexer for `ClojureScript <http://clojure.org/clojurescript>`_
    source code.

    .. versionadded:: 2.0
    ZClojureScriptZclojurescriptZcljsz*.cljsztext/x-clojurescriptzapplication/x-clojurescriptN)r?   r@   rA   rB   rC   rD   rE   rF   r^   r^   r^   r_   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j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 )TeaLangLexerz|
    For `Tea <http://teatrove.org/>`_ 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)\br/   z(template)(\s+)templater   r.   r   r   r   r   z[a-zA-Z_\$]\w*z3(isa|[.]{3}|[.]{2}|[=#!<>+-/%&;,.\*\\\(\)\[\]\{\}])r   r   r   r7   r   r9   r:   )r>   rC  r.   N)!r?   r@   rA   rB   rG   rH   rI   rK   r   r   r   r   rO   r   r   r   rM   rN   rP   r   rL   rS   rR   r   r   rU   rV   r   rW   rX   r[   r\   r]   r^   r^   r^   r_   rB    s@   

rB  c                   @   s  e Zd ZdZdZdgZdgZdgZej	ej
B ZdZdeeeejeefdefd	ej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d.Z'd/S )0r!   zY
    For `Ceylon <http://ceylon-lang.org/>`_ source code.

    .. versionadded:: 1.6
    ZCeylonZceylonz*.ceylonztext/x-ceylonz(?:\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+)r/   z#(class|interface|object|alias)(\s+)r'   r   r.   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]?r7   z[A-Za-z_]\w*r9   z[a-z][\w.]*z[^*/]r   r   r   )r>   r'   r.   r   N)(r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rK   _wsr   r   r   r   rO   r   r   r   rM   rN   rP   r   rL   rQ   rR   rS   r   rT   rU   rV   r   rW   rX   rY   r[   r\   r]   r^   r^   r^   r_   r!     s   

.


r!   c                    @   s  e Zd ZdZdZdgZddgZdgZej	ej
B 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fdefdejfd ej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d.ej"fd/eeee!ed0fd1e d2 ee#e$d3d4ej%ed0fd5eej%ee!d6fd1e d7 ee#e$d3d4ej%ed8fd1e d9 ee#e$d3d4ej%ed:fd;efd<efd=e!fd>e&d?fd@e&dAfdBe&j'fdCe(fdDe dE efgeej)dFfgeej*dFfgdGe!fdefeej*fdHe dI ee!eefdJedKfdLe!dFfgdJedKfdDe dM e eee!ej+dFfeej+dFfgdNeeedFfdOe!fdPefdGe!fdefeefgdQej%fdefe,dFgd@e&dFfe-dRgd>e&dFfd@e&fe-dRgdSe&fdTe&fdUe&fdVe&j.dWfdXee&j.efdYe&fgd@e&fdVe&j.dWfdZe!d[fd\e&j.dFfe-d]gdZe!d[fd\e!dFfe-d]gd^Z/d_S )`r   z\
    For `Kotlin <http://kotlinlang.org/>`_
    source code.

    .. versionadded:: 1.5
    ZKotlinZkotlinz*.ktz*.ktsztext/x-kotlinz@?[_rw   rv   ry   ZLmrx   ru   rz   ZNdZPcZCfZMnZMcz]*ZZsz\'~!%^&*()+=|\[\]:;,.<>/\?-]*(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|tailrecr(   r8   \\\nr7   r)   z	^#!/.+?\nz/[*].*?[*]/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?)ZBooleanZByterT   r   rW   ZIntr   ZShortr   AnyZUnitr   r@  r/   z(package|import)(\s+)(\S+)z(\?\.)((?:[^\W\d]|\$)[\w$]*)r4   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::|!!|\?[:.]r5   r6   """multiline_stringr1   r2   z'\\.'|'[^\\]'z?[0-9](\.[0-9]*)?([eE][+-][0-9]+)?[flFL]?|0[xX][0-9a-fA-F]+[Ll]?r{   z((\?[^.])?)r9   r   z	(:)(\s+)()r   generic\)z(\.)z(>)(\s*)r   z(reified|out|in)\bz\w+string_commonr;   r<   r=   r   interpolationz	(\$)(\w+)z[^\\"$]+r   scoper   r>   )r>   r'   rK  rJ  rL  rP  rH  r2   rN  rR  rS  rT  N)0r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   r   r   Zkt_nameZkt_space_nameZkt_idrH  r   r   rM   rN   r   r   r   r
   rQ   rS   r   rR   r   rU   r   rP   r   r   rL   r   rT   r   r\   r   rO   r	   r   r   r]   r^   r^   r^   r_   r   8  s   


=

	
	
	

r   c                   @   s<  e Zd ZdZdZdgZdgZdgZej	ej
B Zd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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   zW
    For `Xtend <http://xtend-lang.org/>`_ source code.

    .. versionadded:: 1.6
    ZXtendZxtendz*.xtendztext/x-xtend=^(\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)\br,   r-   r/   r   r'   r   r.   z(''')rC  z(\u00BB)r   r   r   r   [~^*!%&\[\](){}<>\|+=:;,./?-]r   r   r   r7   r   r9   r:   z'''z\u00ABr   )r>   r'   r.   rC  N%r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rK   r   r   r   r   rO   r   r   r   rM   rN   rP   r   rL   rQ   rR   rS   r   r   rV   r   rW   rX   r[   r\   r]   r^   r^   r^   r_   r     sb   %

r   c                   @   s   e Zd ZdZdZdgZdgZdgZej	ej
B Zdefdefdejfd	e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 <https://pig.apache.org/>`_ source code.

    .. versionadded:: 2.0
    ZPigZpigz*.pigz
text/x-pigr8   z--.*z/\*[\w\W]*?\*/rF  r=   z1\'(?:\\[ntbrf\\\']|\\u[0-9a-f]{4}|[^\'\\\n\r])*\'r   typesrA  punctr   z[0-9]*\.[0-9]+(e[0-9]+)?[fd]?z0x[0-9a-f]+r   r7   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(==|<=|<|>=|>|!=))r>   r   rA  rX  rY  r   N)r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   
IGNORECASErK   r   r   rN   r   r   r   rW   rX   r[   r   r   rO   r   r   r   rQ   r   r]   r^   r^   r^   r_   r"     s^   r"   c                   @   s  e Zd ZdZdZdgZdgZd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d.ej fgd!ed)fe!d/d0efgd$ej"d)fe!d/gd&ed)fe!d/gd1e	fd2e	fd3e	fgd4Z#d5S )6r#   zU
    For `Golo <http://golo-lang.org/>`_ source code.

    .. versionadded:: 2.0
    ZGoloz*.goloZgolor(   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$.]*rM  stringescapetriplestringr1   doublestringr>  singlestringz----((.|\n)*?)----r9   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})r2   r7   rZ  r[  r\  )r>   ra  r^  r`  r_  r2   rb  rc  rd  re  r   N)$r?   r@   rA   rB   rC   rE   rD   r   r   r   ZWordr   r   r   rR   r   rL   rS   r   rO   r   rW   rZ   rX   r[   r   rP   r   r   r   r\   r   r   r   r   r]   r^   r^   r^   r_   r#   X  s   






=




r#   c                "   @   s  e Zd ZdZdZddgZdgZdZde Zde Z	d	e	 Z
d
e	 Zde	 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d*fd+e
 ejdfd,e
 ejd-fd.e
 ejd/fd0e
 ejd1fed2e
d3ejfd4e
 ejd5fd6e
 ejd7fd8e
 ejd9fd:e
 ejd;fed<e
d3ejdfd=e
 ejd>fd?e
 ejd@fg dejdfdAejfdBejfgdejdfdCejfdDejfgdEefdejdFfedGdHe eejeefeej fgdedIfdJe
 ejdKfedGgdEefdLe
 ejdfedGeej dMfgdEefdLe
 ejdfedGe!dMgdejdFfedGeej fgdNe
 edfed*gedGdOeef eej"ej#ej$edfdPeef eej#ej$dfgedGdQedRfdSeef eej"ej#ej$edfdTeef eej#ej$dfgedGdQefdUeef eej"ej#ej$edfdVe	 ej"dfe!dgedGdQefdSeef eej"ej#ej$edfdVe	 ej"dfe!dgdWedfe!d>geefdXe	 edYfe!dZgedGdPeef eej#ej%dfgd[e
 ejd\fedGd]ee	eef eej#ej$ejj&dfgedGd^ee	eef eej#ej$ej'ed_fgedGeejdfgedGd`e eej'ed_fgdae
 ejdfedGgedGd]ee	eef eej#ej$ejj$dfgdEefdJe
 ejdfedGeejfgedGeejdfgedGdbe
 edfdce
 eddfdee
 edffgdgZ(dhdi Z)djS )kr$   zb
    For `Jasmin <http://jasmin.sourceforge.net/>`_ assembly code.

    .. versionadded:: 2.0
    ZJasminZjasminZjasminxtz*.jz \n\t\rz	(?:[%s]+)z%s:=z
(?=[%s]|$)z[^%s]+z(?:[^%s.;\[/]+)r7   r9   r>  )r9   r   r1   r2   r   r   labelz;.*z(\$[-+])?0x-?[\da-fA-F]+%sz(\$[-+]|\+)?-?\d+%szG-?(\d+\.\d*|\.\d+)([eE][-+]?\d+)?[fFdD]?[\x00-\x08\x0b\x0c\x0e-\x1f]*%sz\$%sz\.annotation%srg   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)%sz	\.catch%scaught-exceptionzb(\.class|\.implements|\.inner|\.super|inner|invisible|invisibleparam|outer|visible|visibleparam)%sclass/convert-dotsz	\.field%s)descriptor/convert-dotsfieldz(\.end|\.limit|use)%sno-verificationz
\.method%smethodz\.set%sr0   z
\.throws%s	exceptionz(from|offset|to|using)%szis%s)ri  r0   z(locals|stack)%sverificationzmethod%s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inegZ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nopr$  Zpop2retZret_wr}   ZsaloadZsastoreZsipushZswapr@  z0(anewarray|checkcast|instanceof|ldc|ldc_w|new)%sclass/no-dotsz=invoke(dynamic|interface|nonvirtual|special|static|virtual)%s
invocationz(getfield|putfield)%s)descriptor/no-dotsrj  z(getstatic|putstatic)%s)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)%sri  ztableswitch%s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	   z(%s)([ \t\r]*)(:))r9   annotation-bodyz	default%s)r9   annotation-defaultz\.end%s)annotation-itemsr}  zall%sz(L)((?:%s[/.])*)(%s)(;)z((?:%s[/.])*)(%s)z\[+)r9   r}  z(L)((?:%s/)*)(%s)(;)z((?:%s/)*)(%s)z(L)((?:%s[/.])*)(%s?)(;)z
[^%s\[)L]+rQ  z(?=[^%s]*\())r9   r|  )r9   rh  zstatic%s)r9   r~  z(((?:%s[/.](?=[^%s]*[/.]))*)(%s[/.])?(%s)z-((?:%s[/.](?=[^%s(]*[/.]))*)(%s[/.])?(%s)(\())r9   ri  descriptors/convert-dotsri  z(%s)(\()z(locals|method|stack)%sz8(Double|Float|Integer|Long|Null|Top|UninitializedThis)%szObject%s)r9   r{  zUninitialized%s)r9   rf  )r	   r   r2   r>   rg   r  r  r  rg  rh  r{  ri  r}  r  ro  rm  rj  r|  rf  rl  rk  r~  r  r0   rn  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      ?)rG   searchrH   r  )rq   Zscorer^   r^   r_   r     s    zJasminLexer.analyse_textN)*r?   r@   rA   rB   rC   rD   rE   Z_whitespacerD  Z
_separator_break_nameZ_unqualified_namer   r   rM   r   r   r   r   rX   r[   rW   r   r   r   r   r
   r   r   r   rV   r   r	   rQ   rR   r\   	ExceptionZInstancerO   r]   r   r^   r^   r^   r_   r$     s  







S


	




	








	
	


  jr$   c                   @   s  e Zd ZdZdZdgZdgZdgZej	ej
B Zde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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%   zR
    For `SARL <http://www.sarl.io>`_ source code.

    .. versionadded:: 2.4
    ZSARLZsarlz*.sarlztext/x-sarlrU  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,   r-   z+(false|it|null|occurrence|this|true|void)\bzY(agent|annotation|artifact|behavior|capacity|class|enum|event|interface|skill|space)(\s+)r'   r   r.   r   r   r   r   rV  r   r   r   r7   r   r9   r:   )r>   r'   r.   NrW  r^   r^   r^   r_   r%     sX   
$

r%   ),rB   rG   Zpygments.lexerr   r   r   r   r   r   r   r	   r
   Zpygments.tokenr   r   r   r   r   r   r   r   Zpygments.utilr   Zpygmentsr   r   __all__r   r    r   r   r   r   r   r   r   rB  r!   r   r   r"   r#   r$   r%   r^   r^   r^   r_   <module>   s<   
,(V'  !OM @ /O ACq  
