B
    G
\                @   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 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*dS )'z
    pygments.lexers.jvm
    ~~~~~~~~~~~~~~~~~~~

    Pygments lexers for JVM languages.

    :copyright: Copyright 2006-2017 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JasminLexerc               @   s8  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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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!j"fde!j#fde!j$fde!j%fde!j&fdefdefgdej'd fgd!ejd fgd"Z(d#S )$r   z=
    For `Java <http://www.sun.com/java/>`_ source code.
    ZJavajavaz*.javaztext/x-javaz[^\S\n]+z//.*?\nz	/\*.*?\*/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*)(\()z@[^\W\d][\w.]*z(abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\bz6(boolean|byte|char|double|float|int|long|short|void)\bz(package)(\s+)importz(true|false|null)\bz(class|interface)(\s+)classz(import(?:\s+static)?)(\s+)z"(\\\\|\\"|[^"])*"z!'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'z(\.)((?:[^\W\d]|\$)[\w$]*)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]?z[~^*!%&\[\](){}<>|+=:;,./?-]z\nz#popz	[\w.]+\*?)rootr&   r%   N))__name__
__module____qualname____doc__namealiases	filenames	mimetypesre	MULTILINEDOTALLUNICODEflagsr   r   Single	Multiliner   r   r   r   r   Functionr   	DecoratorDeclarationType	NamespaceConstantr   Char	AttributeLabelr   FloatHexBinOctIntegerClasstokens rG   rG   2lib/python3.7/site-packages/pygments/lexers/jvm.pyr      sN   c               @   sF   e Zd ZdZdZdgZdgZdgZedZ	edZ
e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aspectZpointcutZ
privilegedZcallZ	executionZinitializationZpreinitializationZhandlergetsetZstaticinitializationtargetargsZwithinZ
withincodeZcflowZ
cflowbelow
annotationZbeforeZafterZaroundZproceedZthrowingZ	returningZadviceexecutiondeclareparentsZwarningerrorZsoftZ
precedenceZthisJoinPointZthisJoinPointStaticPartZ thisEnclosingJoinPointStaticPartZissingletonZperthisZ	pertargetZpercflowZpercflowbelowZpertypewithinlockZunlockZthisAspectInstance)zparents:zwarning:zerror:zsoft:zprecedence:)z@typez@methodz@constructorz@fieldc             c   s   xt | |D ]\}}}|tkr8|| jkr8|t|fV  q|tjkrr|| jkrr|t|d d fV  |t|d fV  q|tjkr|| j	kr|t|fV  q|||fV  qW d S )N)
r   get_tokens_unprocessedr   aj_keywordsr   r?   aj_inter_typer   r8   aj_inter_type_annotation)selftextindextokenvaluerG   rG   rH   rS   y   s    z#AspectJLexer.get_tokens_unprocessedN)r(   r)   r*   r+   r,   r-   r.   r/   rJ   rT   rU   rV   rS   rG   rG   rG   rH   r   _   s   
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ZdZd	eeef Zd
eef Zdeeedfdefdejfdejdfde ejfdefde edfdeef ejfdejfdeeedfdeeedfdefdefdejfde ejfdedfd ed!fd"efeefd#efd$ed%fd&efeefd'ej fd(ej!fd)ej"fd*efgd+eef eejeed%fd,efd-ed.fd/ed.fdejd.fd0eef ejd.fgd,efd1efd2eeed.fd3ed4fd5eeeef eej#eed6fd7eeeef eej#ed.fdejd.fd8eef ej#fgd9efd:efd;ed.fd<ed4fd8eef ej#fgd=ejfdejd4fd>ejd.fd?ejfgd@e ej$d.fgdAefdBefdCe ej%fdDej%dEfdFefgdGed.fdHefe&dIgdHed.fe&dIgdJej%d.fd-ej%d4fe&dKgdL
Z'dMS )Nr   z?
    For `Scala <http://www.scala-lang.org>`_ source code.
    ZScalaZscalaz*.scalaztext/x-scalau  [-~\^\*!%&\\<>\|+=:/?@¦-§©¬®°-±¶×÷϶҂؆-؈؎-؏۩۽-۾߶৺୰௳-௸௺౿ೱ-ೲ൹༁-༃༓-༗༚-༟༴༶༸྾-࿅࿇-࿏႞-႟፠᎐-᎙᥀᧠-᧿᭡-᭪᭴-᭼⁄⁒⁺-⁼₊-₌℀-℁℃-℆℈-℉℔№-℘℞-℣℥℧℩℮℺-℻⅀-⅄⅊-⅍⅏←-⌨⌫-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭔⳥-⳪⺀-⿻〄〒-〓〠〶-〷〾-〿㆐-㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉐㉠-㉿㊊-㊰㋀-㏿䷀-䷿꒐-꓆꠨-꠫﬩﷽﹢﹤-﹦＋＜-＞｜～￢￤￨-￮￼-�]+u  [a-zA-Z\$_ªµºÀ-ÖØ-öø-ʯͰ-ͳͶ-ͷͻ-ͽΆΈ-ϵϷ-ҁҊ-Ֆա-ևא-ײء-ؿف-يٮ-ٯٱ-ۓەۮ-ۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪऄ-हऽॐक़-ॡॲ-ॿঅ-হঽৎড়-ৡৰ-ৱਅ-ਹਖ਼-ਫ਼ੲ-ੴઅ-હઽૐ-ૡଅ-ହଽଡ଼-ୡୱஃ-ஹௐఅ-ఽౘ-ౡಅ-ಹಽೞ-ೡഅ-ഽൠ-ൡൺ-ൿඅ-ෆก-ะา-ำเ-ๅກ-ະາ-ຳຽ-ໄໜ-ༀཀ-ཬྈ-ྋက-ဪဿၐ-ၕၚ-ၝၡၥ-ၦၮ-ၰၵ-ႁႎႠ-ჺᄀ-ፚᎀ-ᎏᎠ-ᙬᙯ-ᙶᚁ-ᚚᚠ-ᛪᛮ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝰក-ឳៜᠠ-ᡂᡄ-ᢨᢪ-ᤜᥐ-ᦩᧁ-ᧇᨀ-ᨖᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮ-ᮯᰀ-ᰣᱍ-ᱏᱚ-ᱷᴀ-ᴫᵢ-ᵷᵹ-ᶚḀ-ᾼιῂ-ῌῐ-Ίῠ-Ῥῲ-ῼⁱⁿℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⱼⲀ-ⳤⴀ-ⵥⶀ-ⷞ〆-〇〡-〩〸-〺〼ぁ-ゖゟァ-ヺヿ-ㆎㆠ-ㆷㇰ-ㇿ㐀-䶵一-ꀔꀖ-ꒌꔀ-ꘋꘐ-ꘟꘪ-ꙮꚀ-ꚗꜢ-ꝯꝱ-ꞇꞋ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꤊ-ꤥꤰ-ꥆꨀ-ꨨꩀ-ꩂꩄ-ꩋ가-힣豈-יִײַ-ﬨשׁ-ﴽﵐ-ﷻﹰ-ﻼＡ-Ｚａ-ｚｦ-ｯｱ-ﾝﾠ-ￜ]u)  [A-Z\$_À-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİĲĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸ-ŹŻŽƁ-ƂƄƆ-ƇƉ-ƋƎ-ƑƓ-ƔƖ-ƘƜ-ƝƟ-ƠƢƤƦ-ƧƩƬƮ-ƯƱ-ƳƵƷ-ƸƼǄǇǊǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮǱǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺ-ȻȽ-ȾɁɃ-ɆɈɊɌɎͰͲͶΆΈ-ΏΑ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹ-ϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀ-ӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԱ-ՖႠ-ჅḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙ-ὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾ-ℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱯⱲⱵⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽ-ꝾꞀꞂꞄꞆꞋＡ-Ｚ]z%s(?:%s|[0-9])*(?:(?<=_)%s)?z%s(?:%s|\d)*z(class|trait|object)(\s+)r&   z[^\S\n]+z//.*?\nz/\*commentz@%su  (abstract|ca(?:se|tch)|d(?:ef|o)|e(?:lse|xtends)|f(?:inal(?:ly)?|or(?:Some)?)|i(?:f|mplicit)|lazy|match|new|override|pr(?:ivate|otected)|re(?:quires|turn)|s(?:ealed|uper)|t(?:h(?:is|row)|ry)|va[lr]|w(?:hile|ith)|yield)\b|(<[%:-]|=>|>:|[#=@_⇒←])(\b|(?=\s)|$)z:(?!%s)typez%s%s\bz(true|false|null)\bz(import|package)(\s+)r%   z(type)(\s+)z""".*?"""(?!")z"(\\\\|\\"|[^"])*"z!'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'z'%sz[fs]"""interptriplestringz[fs]"interpstringzraw"(\\\\|\\"|[^"])*"z`[^`]+`z\[	typeparamz
[(){};,.#]z7([0-9][0-9]*\.[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?z0x[0-9a-fA-F]+z[0-9]+L?z\nz(%s|%s|`[^`]+`)(\s*)(\[)z\s+z\{z#popz\(z%s|%s|`[^`]+`z<[%:]|>:|[#_]|forSome|typeu   ([,);}]|=>|=|⇒)(\s*)z[({]z#pushz4((?:%s|%s|`[^`]+`)(?:\.(?:%s|%s|`[^`]+`))*)(\s*)(\[))z#popr`   z1((?:%s|%s|`[^`]+`)(?:\.(?:%s|%s|`[^`]+`))*)(\s*)$z\.|%s|%s|`[^`]+`z[\s,]+u    <[%:]|=>|>:|[#_⇒]|forSome|typez([\])}])z[(\[{]z[^/*]+z\*/z[*/]z(%s|\.)+z[^"$\\]+z\$\$z\$z\$\{interpbracez\\.z"""(?!")"interpstringcommonz\}r'   )
r'   r&   r]   r`   r\   r%   rc   r^   r_   ra   N)(r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r4   opZletterupperZidrestZletter_letter_digitr   r   r   r   r5   r6   r   r8   rE   r<   r   r=   Symbolr   r   r@   rA   rD   r:   r;   Interpolr   rF   rG   rG   rG   rH   r      s   ">









c               @   s  e Zd ZdZdZdgZddd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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gosuz*.gsz*.gsxz*.gspz*.varkztext/x-gosuz9^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_]\w*)(\s*)(\()z[^\S\n]+z//.*?\nz	/\*.*?\*/z@[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)\bz(package)(\s+)z (true|false|null|NaN|Infinity)\bz5(class|interface|enhancement|enum)(\s+)([a-zA-Z_]\w*)z(uses)(\s+)([\w.]+\*?)rb   stringz(\??[.#])([a-zA-Z_]\w*)z(:)([a-zA-Z_]\w*)z[a-zA-Z_$]\w*z)and|or|not|[\\~^*!%&\[\](){}<>|+=:;,./?-]z%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z[0-9]+z\nz(\\<)|(\\\$)z(<%@\s+)(extends|params)stringTemplatez<%!--.*?--%>z
(<%)|(<%=)z\$\{stringTemplateShorthand.z#poptemplateTextz%>r'   z\{z\})r'   rl   rh   ri   rj   N)$r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r4   r   r   r   r   r7   r   r   r   r5   r6   r8   r   r9   r:   r;   r<   rE   r   r>   r   r@   rD   r   rF   rG   rG   rG   rH   r   l  sf   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}x|||D ]
}|V  qW d S )Nrl   )r   rS   )rW   rX   ZlexerstackitemrG   rG   rH   rS     s    z(GosuTemplateLexer.get_tokens_unprocessedN)	r(   r)   r*   r+   r,   r-   r.   r/   rS   rG   rG   rG   rH   r     s   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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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#!(.*?)$basez9^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_]\w*)(\s*)(\()z[^\S\n]+z//.*?\nz	/\*.*?\*/z@[a-zA-Z_][\w.]*z(assert|break|case|catch|continue|default|do|else|finally|for|if|goto|instanceof|new|return|switch|this|throw|try|while|in|as)\bz(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)\bz(package)(\s+)z(true|false|null)\bz(class|interface)(\s+)r&   z(import)(\s+)r%   z	""".*?"""z	'''.*?'''z"(\\\\|\\"|[^"])*"z'(\\\\|\\'|[^'])*'z\$/((?!/\$).)*/\$z/(\\\\|\\"|[^/])*/z!'\\.'|'[^\\]'|'\\u[0-9a-fA-F]{4}'z(\.)([a-zA-Z_]\w*)z[a-zA-Z_]\w*:z[a-zA-Z_$]\w*z[~^*!%&\[\](){}<>|+=:;,./?-]z%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-fA-F]+z[0-9]+L?z\nz[a-zA-Z_]\w*z#popz	[\w.]+\*?)r'   rp   r&   r%   c             C   s
   t | dS )Nro   )r   )rX   rG   rG   rH   analyse_text  s    zGroovyLexer.analyse_textN)*r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r4   r   ZPreprocr	   r   r   r   r   r7   r   r   r5   r6   r8   r   r9   r:   r;   r<   r   Doubler=   r>   r?   r   r@   rA   rD   rE   rF   rq   rG   rG   rG   rH   r     sV   
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(?<!\\)"z#popinterpolatableTextz[^"]z\}r'   z(?<!\\)/[im-psux]*z\\/z[^/]z(?<!\\)][im-psux]*z\\]z[^\]]z(?<!\\)]z\nz\s+z;(.*?)\nz\A#!(.*?)\nz#/slashRegexpz#r\[squareRegexpz	:[\w!:?]+z[\w!:?]+:(?![\w!?])z:"(\\\\|\\"|[^"])*"z((?<=fn\()|(?<=fnx\()|(?<=method\()|(?<=macro\()|(?<=lecro\()|(?<=syntax\()|(?<=dmacro\()|(?<=dlecro\()|(?<=dlecrox\()|(?<=dsyntax\())\s*"documentationrb   rX   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]+)?z-?\d+z#\(ux  (&&>>|\|\|>>|\*\*>>|:::|::|\.\.\.|===|\*\*>|\*\*=|&&>|&&=|\|\|>|\|\|=|\->>|\+>>|!>>|<>>>|<>>|&>>|%>>|#>>|@>>|/>>|\*>>|\?>>|\|>>|\^>>|~>>|\$>>|=>>|<<=|>>=|<=>|<\->|=~|!~|=>|\+\+|\-\-|<=|>=|==|!=|&&|\.\.|\+=|\-=|\*=|\/=|%=|&=|\^=|\|=|<\-|\+>|!>|<>|&>|%>|#>|\@>|\/>|\*>|\?>|\|>|\^>|~>|\$>|<\->|\->|<<|>>|\*\*|\?\||\?&|\|\||>|<|\*|\/|%|\+|\-|&|\^|\||=|\$|!|~|\?|#|≠|∘|∈|∉)z-(and|nand|or|xor|nor|return|import)(?![\w!?])z.(\`\`|\`|\'\'|\'|\.|\,|@@|@|\[|\]|\(|\)|\{|\})z[A-Z][\w!:?]*z[a-z_][\w!:?]*)rt   rX   rw   rs   ru   rv   rx   r'   N)!r(   r)   r*   r+   r,   r.   r-   r/   r   Escaper   r   DocZRegexr   r   rf   Otherr   ZEntityVariabler   Reservedr<   Builtinr7   r   rA   r@   rD   r   rE   rF   rG   rG   rG   rH   r     s   








	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)
rk   defZdofnifZletnewquotevarloop)zdef-Zdefnzdefn-ZdefmacroZdefmultiZ	defmethodZ	defstructZdefoncerN   Z	definlineZdefinterfaceZdefprotocolZ	defrecordZdeftypeZ
defprojectns(-  *+-z->/<z<==z==>z>=z..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dorunZ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flushforZfnseqZfrestZgensymzget-proxy-classrI   zhash-mapzhash-setz
identical?Zidentityzif-letr%   zin-nsZincrY   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-keyr,   	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repeatreplaceZ	replicateZresolverestzresultset-seqreverseZrfirstrightZrightsr'   ZrrestZrseqsecondZselectzselect-keyssendzsend-offseqzseq-zipzseq?rJ   ZshortZslurpZsomesortzsort-byz
sorted-mapzsorted-map-byz
sorted-setzspecial-symbol?zsplit-atz
split-withstrzstring?Zstructz
struct-mapZsubsZsubvecZsymbolzsymbol?syncZtakeztake-nthz
take-whileZtestZ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+z-?\d+z0x-?[abcdef\d]+z"(\\\\|\\"|[^"])*"'z\\(.|[a-z]+)z::?#?z~@|[`\'#^~&@] )suffixz(?<=\()z(\[|\])z(\{|\})z(\(|\))N) r(   r)   r*   r+   r,   r-   r.   r/   Zspecial_formsZdeclarationsbuiltinsZ
valid_namer   r5   r   r   r@   rD   rA   r   rf   r=   r   r
   r   r9   r   r~   r7   r|   r   rF   rG   rG   rG   rH   r     s8   8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)   r*   r+   r,   r-   r.   r/   rG   rG   rG   rH   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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fde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*)(\()z[^\S\n]+z//.*?\nz	/\*.*?\*/z@[a-zA-Z_][\w\.]*z/(and|break|else|foreach|if|in|not|or|reverse)\bz(as|call|define)\bz(true|false|null)\bz(template)(\s+)templatez(import)(\s+)r%   z"(\\\\|\\"|[^"])*"z\'(\\\\|\\\'|[^\'])*\'z(\.)([a-zA-Z_]\w*)z[a-zA-Z_]\w*:z[a-zA-Z_\$]\w*z3(isa|[.]{3}|[.]{2}|[=#!<>+-/%&;,.\*\\\(\)\[\]\{\}])z%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-fA-F]+z[0-9]+L?z\nz[a-zA-Z_]\w*z#popz	[\w.]+\*?)r'   r   r%   N) r(   r)   r*   r+   r0   r1   r2   r4   r   r   r   r   r7   r   r   r   r5   r6   r8   r   r9   r<   r;   r   r>   r?   r   r@   rA   rD   rE   rF   rG   rG   rG   rH   r   k  s4   r   c               @   s  e Zd ZdZdZdgZdgZdgZej	ej
B ZdZde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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(d0S )1r    zY
    For `Ceylon <http://ceylon-lang.org/>`_ source code.

    .. versionadded:: 1.6
    ZCeylonZceylonz*.ceylonztext/x-ceylonz(?:\s|//.*?\n|/[*].*?[*]/)+z9^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_]\w*)(\s*)(\()z[^\S\n]+z//.*?\nz/\*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+)z(true|false|null)\bz#(class|interface|object|alias)(\s+)r&   z(import)(\s+)r%   z"(\\\\|\\"|[^"])*"z%'\\.'|'[^\\]'|'\\\{#[0-9a-fA-F]{4}\}'z".*``.*``.*"z(\.)([a-z_]\w*)z[a-zA-Z_]\w*:z[a-zA-Z_]\w*z[~^*!%&\[\](){}<>|+=:;,./?-]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]?z\nz[A-Za-z_]\w*z#popz[a-z][\w.]*z[^*/]z#pushz\*/z[*/])r'   r&   r%   r\   N))r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r4   _wsr   r   r   r   r7   r   r   r   r5   r6   r8   r   r9   r:   r;   r<   r   r=   rg   r>   r?   r   r@   rA   rB   rD   rE   rF   rG   rG   rG   rH   r      sj   



c               @   sj  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ddd	d
d d d eddd	d
dddddd
 d Zde d e d Zdejfdefdefdejfdejfdefdefdefdefd efd!efd"ejfd#efd$eeeefd%eeed&fd'eeed(fd)eeed*fd+eeed,fd-efeefgd.ejd/fgeejd/fgeej d/fgeej!d/fgd0Z"d1S )2r   z\
    For `Kotlin <http://kotlinlang.org/>`_
    source code.

    .. versionadded:: 1.5
    ZKotlinZkotlinz*.ktztext/x-kotlinz@?[_ZLuZLlZLtZLmZNl][ZNdZPcZCfZMnZMcz]*(z|`z`)z^\s*\[.*?\]z[^\S\n]+z\\\nz//.*?\nz/[*].*?[*]/z\nz::|!!|\?[:.]z[~!%^&*()+=|\[\]:;,.<>/?-]z[{}]z@"(""|[^"])*"z"(\\\\|\\"|[^"\n])*["\n]z'\\.'|'[^\\]'z?[0-9](\.[0-9]*)?([eE][+-][0-9]+)?[flFL]?|0[xX][0-9a-fA-F]+[Ll]?z(class)(\s+)(object)z(class|interface|object)(\s+)r&   z(package|import)(\s+)packagez(val|var)(\s+)propertyz
(fun)(\s+)functiona  (abstract|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|external|false|final|finally|for|fun|get|if|import|in|infix|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|tailrec|this|throw|true|try|val|var|vararg|when|where|while)\bz\S+z#pop)r'   r   r&   r   r   N)#r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   uniZcombineZkt_nameZkt_idr   r>   r   r   r5   r6   r   r   r   r=   r   r   r   r;   rE   ZPropertyr7   rF   rG   rG   rG   rH   r     sD   >c               @   s8  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fde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-xtendz=^(\s*(?:[a-zA-Z_][\w.\[\]]*\s+)+?)([a-zA-Z_$][\w$]*)(\s*)(\()z[^\S\n]+z//.*?\nz	/\*.*?\*/z@[a-zA-Z_][\w.]*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)\bz6(boolean|byte|char|double|float|int|long|short|void)\bz(package)(\s+)z(true|false|null)\bz(class|interface)(\s+)r&   z(import)(\s+)r%   z(''')r   u   (»)z"(\\\\|\\"|[^"])*"z'(\\\\|\\'|[^'])*'z[a-zA-Z_]\w*:z[a-zA-Z_$]\w*z[~^*!%&\[\](){}<>\|+=:;,./?-]z%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-fA-F]+z[0-9]+L?z\nz[a-zA-Z_]\w*z#popz	[\w.]+\*?z'''   «rk   )r'   r&   r%   r   N)$r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r4   r   r   r   r   r7   r   r   r   r5   r6   r8   r   r9   r:   r;   r<   r   r?   r   r@   rA   rD   rE   rF   rG   rG   rG   rH   r   +  sN   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-pigz\s+z--.*z/\*[\w\W]*?\*/z\\\nz\\z1\'(?:\\[ntbrf\\\']|\\u[0-9a-f]{4}|[^\'\\\n\r])*\'keywordstypesr   punct	operatorsz[0-9]*\.[0-9]+(e[0-9]+)?[fd]?z0x[0-9a-f]+z[0-9]+L?z\nz([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[;(){}\[\]]z[#=,./%+\-?]z (eq|gt|lt|gte|lte|neq|matches)\bz(==|<=|<|>=|>|!=))r'   r   r   r   r   r   N)r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   
IGNORECASEr4   r   r   r6   r   r   r   r@   rA   rD   r   r   r7   r   r   r~   r:   r   rF   rG   rG   rG   rH   r!   l  sH   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goloz[^\S\n]+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$.]*z"""stringescapetriplestringrb   doublestringr   singlestringz----((.|\n)*?)----z#popz[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})rh   z\nz[#=,./%+\-?]z (eq|gt|lt|gte|lte|neq|matches)\bz(==|<=|<|>=|>|!=))r'   r   r   r   r   rh   r   r   r   r   r   N)$r(   r)   r*   r+   r,   r.   r-   r   r   r   ZWordr   r   r   r;   r   r9   r<   r~   r7   r   r@   rC   rA   rD   ZLongr8   r   r   rz   rE   r|   ry   r   rr   rF   rG   rG   rG   rH   r"     s~   






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.;\[/]+)z\nz#popr   )z#popr   rb   rh   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%srM   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%szcaught-exceptionzb(\.class|\.implements|\.inner|\.super|inner|invisible|invisibleparam|outer|visible|visibleparam)%szclass/convert-dotsz	\.field%s)zdescriptor/convert-dotsfieldz(\.end|\.limit|use)%szno-verificationz
\.method%smethodz\.set%sr   z
\.throws%s	exceptionz(from|offset|to|using)%szis%s)zdescriptor/convert-dotsr   z(locals|stack)%sverificationzmethod%sz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pop2ZretZret_wreturnZsaloadZsastoreZsipushZswap)r   z0(anewarray|checkcast|instanceof|ldc|ldc_w|new)%szclass/no-dotsz=invoke(dynamic|interface|nonvirtual|special|static|virtual)%s
invocationz(getfield|putfield)%s)zdescriptor/no-dotsr   z(getstatic|putstatic)%s)zdescriptor/no-dots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)%szdescriptor/convert-dotsz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]*)(:))z#popzannotation-bodyz	default%s)z#popzannotation-defaultz\.end%s)zannotation-itemszdescriptor/no-dotszall%sz(L)((?:%s[/.])*)(%s)(;)z((?:%s[/.])*)(%s)z\[+)z#popzdescriptor/no-dotsz(L)((?:%s/)*)(%s)(;)z((?:%s/)*)(%s)z(L)((?:%s[/.])*)(%s?)(;)z
[^%s\[)L]+z\)z(?=[^%s]*\())z#popr   )z#popzclass/convert-dotszstatic%s)z#popr   z(((?:%s[/.](?=[^%s]*[/.]))*)(%s[/.])?(%s)z-((?:%s[/.](?=[^%s(]*[/.]))*)(%s[/.])?(%s)(\())z#popzdescriptor/convert-dotszdescriptors/convert-dotszdescriptor/convert-dotsz(%s)(\()z(locals|method|stack)%sz8(Double|Float|Integer|Long|Null|Top|UninitializedThis)%szObject%s)z#popzclass/no-dotszUninitialized%s)z#popr   )r	   r   rh   r'   rM   zannotation-bodyzannotation-defaultzannotation-itemszcaught-exceptionzclass/convert-dotszclass/no-dotszdescriptor/convert-dotszdescriptor/no-dotszdescriptors/convert-dotszenclosing-methodr   r   r   r   r   zno-verificationr   r   r   r   c             C   sP   d}t d| t jr4|d7 }t d| t jr4|d7 }t d| t jrL|d7 }|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?)r0   searchr1   )rX   ZscorerG   rG   rH   rq     s    zJasminLexer.analyse_textN)*r(   r)   r*   r+   r,   r-   r.   Z_whitespacer   Z
_separatorZ_break_nameZ_unqualified_namer   r   r5   rr   r   r   r   rA   rD   r@   r   r|   r   r}   r
   ry   r   r   r?   r{   r	   r:   r;   rE   	ExceptionZInstancer7   rF   rq   rG   rG   rG   rH   r#      s@  


























)+r+   r0   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   r   r    r   r   r!   r"   r#   rG   rG   rG   rH   <module>
   s8   ,(
D' gOG @ /PAACq