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
 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 ddlmZ dddd	d
ddddddgZdedddddd d Zdedddddddddd
 d Zed e 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*dS ),z
    pygments.lexers.javascript
    ~~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for JavaScript and related languages.

    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerincludebygroupsdefaultusingthiswordscombined)	TextCommentOperatorKeywordNameStringNumberPunctuationOther)get_bool_opt	iteritemsJavascriptLexerKalLexerLiveScriptLexer	DartLexerTypeScriptLexer
LassoLexerObjectiveJLexerCoffeeScriptLexer	MaskLexerEarlGreyLexerJuttleLexerz(?:[$_ZLuZLlZLtZLmZLoZNlz]|\\u[a-fA-F0-9]{4})z(?:[$ZMnZMcZNdZPcu   ‌‍]|\\u[a-fA-F0-9]{4})z(?:z)*c               @   s  e Zd ZdZdZddgZddgZddd	d
gZej	ej
B ejB Zdefdefdejfdejfgeddejdfdedfedgdedfgdejfdedfed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dfdedfd efd!edfd"ejdfd#ej fd$ej!fd%e"j#fe$e"j%fd&ej&fd'ejfd(ej'd)fgd(ej'dfd*ej'fd+ej'fd,ej(d-fd.ej'fd/ej'fgd0ej(dfed1gd2Z)d3S )4r   z%
    For JavaScript source code.
    Z
JavaScriptZjsZ
javascriptz*.jsz*.jsmzapplication/javascriptzapplication/x-javascriptztext/x-javascriptztext/javascriptz\s+z<!--z//.*?\nz	/\*.*?\*/commentsandwhitespacez5/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuy]+\b|\B)z#popz(?=/))z#popbadregexz\nz\A#! ?/.*?\nz^(?=\s|/|<!--)slashstartsregexz((\.\d+|[0-9]+\.[0-9]*)([eE][-+]?[0-9]+)?z
0[bB][01]+z0[oO][0-7]+z0[xX][0-9a-fA-F]+z[0-9]+z	\.\.\.|=>z@\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?z[{(\[;,]z[})\].]z(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|yield|this|of)\bz(var|let|with|function)\bz(abstract|boolean|byte|char|class|const|debugger|double|enum|export|extends|final|float|goto|implements|import|int|interface|long|native|package|private|protected|public|short|static|super|synchronized|throws|transient|volatile)\bz*(true|false|null|NaN|Infinity|undefined)\bz(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|Promise|Proxy|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|this|window)\bz"(\\\\|\\"|[^"])*"z'(\\\\|\\'|[^'])*'`interpz\\\\z\\`z\$\{zinterp-insidez\$z[^`\\$]+z\}root)r    r"   r!   r%   r$   zinterp-insideN)*__name__
__module____qualname____doc__namealiases	filenames	mimetypesreDOTALLUNICODE	MULTILINEflagsr
   r   Single	Multiliner   r   Regexr   ZHashbangr   FloatBinOctHexIntegerr   r   r   DeclarationReservedConstantr   BuiltinJS_IDENTr   DoubleBacktickInterpoltokens rD   rD   9lib/python3.7/site-packages/pygments/lexers/javascript.pyr   !   sd   






c               @   s  e Zd ZdZdZdgZdgZddgZej	Z
defdejfd	ejfgd
ejdfedgdefdejdfd
ejfedgdedfdefedgdedfdefedgeddejfdefdejfdejfdefdedfdefdejdfdejdfd ed!fd"ej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j!fd*ed+fd,ed-fd.ed/fd0ed1fgd2efgd3ej"dfedgd.edfd4efd5ej"d6fed7gd0edfd8efed7gd*edfd9efd5ej"d6fed7gd,edfd:efed7gd;Z#d<S )=r   zk
    For `Kal`_ source code.

    .. _Kal: http://rzimmerman.github.io/kal


    .. versionadded:: 2.0
    ZKalZkalz*.kalztext/kalzapplication/kalz\s+z###[^#].*?###z#(?!##[^#]).*?\nz[$a-zA-Z_][\w$]*\s*z#popr    z\binherits\s+from\bz[$a-zA-Z_][\w$]*\s*\nz\]z\b(property|value)\br%   z\nz\bfrom\bz8/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)z%\?|:|_(?=\n)|==?|!=|-(?!>)|[<>+*/-]=?zE\b(and|or|isnt|is|not|but|bitwise|mod|\^|xor|exists|doesnt\s+exist)\bz(?:\([^()]+\))?\s*>z[{(]z\[listcomprehensionz[})\].,]z\b(function|method|task)\bfunctiondefz	\bclass\bclassdefz\b(safe\s+)?wait\s+for\bwaitforz#\b(me|this)(\.[$a-zA-Z_][\w.$]*)?\bz(?<![.$])(for(\s+(parallel|series))?|in|of|while|until|break|return|continue|when|if|unless|else|otherwise|except\s+when|throw|raise|fail\s+with|try|catch|finally|new|delete|typeof|instanceof|super|run\s+in\s+parallel|inherits\s+from)\bzN(?<![.$])(true|false|yes|no|on|off|null|nothing|none|NaN|Infinity|undefined)\bz(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|isSafeInteger|parseFloat|parseInt|document|window|print)\bz%[$a-zA-Z_][\w.$]*\s*(:|[+\-*/]?\=)?\bz%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-fA-F]+z[0-9]+z"""tdqsz'''tsqs"dqs'sqsz
[^#\\\'"]+z\}z\\.|\'z#\{interpoling_stringstringsz#|\\.|"z\\.|\'|"z
#|\\.|\'|")r    rG   rH   rF   rI   r%   rQ   rP   rM   rO   rJ   rK   N)$r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r2   r
   r   r4   r3   r   Functionr   r   Classr   r   r5   r   Wordr;   VariableInstancer=   r>   r   r6   r9   r:   rB   rC   rD   rD   rD   rE   r   q   s   









c               @   s  e Zd ZdZdZddgZdgZdgZej	Z
defdejfd	ejfged
dejdfdejfdejfged
dejdfdejdfedged
dejfdedfdedfdefdedfdejfdejfdejdfdejjdfdejdfdejdfdejfdejfd ed!fd"ed#fd$ed%fd&ed'fd(efd)efgd*efgd+ej dfed,gd$edfd-efd.ej d/fd0efed1gd&edfd2efed1gd edfd3efd.ej d/fd0efed1gd"edfd4efed1gd5
Z!d6S )7r   zz
    For `LiveScript`_ source code.

    .. _LiveScript: http://gkz.github.com/LiveScript/

    .. versionadded:: 1.6
    Z
LiveScriptzlive-scriptZ
livescriptz*.lsztext/livescriptz\s+z	/\*.*?\*/z#.*?\nr    z//([gim]+\b|\B)z#pop/z[^/#]+z//)z#popmultilineregexz8/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)z?(?:\([^()]+\))?[ ]*[~-]{1,2}>|(?:\(?[^()\n]+\)?)?[ ]*<[~-]{1,2}z\+\+|&&|(?<![.$])\b(?:and|x?or|is|isnt|not)\b|\?|:|=|\|\||\\(?=\n)|(<<|>>>?|==?|!=?|~(?!\~?>)|-(?!\-?>)|<(?!\[)|(?<!\])>|[+*`%&|^/])=?r"   z[{(\[;,]z[})\].]z(?<![.$])(for|own|in|of|while|until|loop|break|return|continue|switch|when|then|if|unless|else|throw|try|catch|finally|new|delete|typeof|instanceof|super|extends|this|class|by|const|var|to|til)\bzF(?<![.$])(true|false|yes|no|on|off|null|NaN|Infinity|undefined|void)\bz(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|document|window)\bz[$a-zA-Z_][\w.\-:$]*\s*[:=]\sz@[$a-zA-Z_][\w.\-:$]*\s*[:=]\s@z@?[$a-zA-Z_][\w-]*z/[0-9]+\.[0-9]+([eE][0-9]+)?[fd]?(?:[a-zA-Z_]+)?z"[0-9]+(~[0-9a-z]+)?(?:[a-zA-Z_]+)?z"""rJ   z'''rK   rL   rM   rN   rO   z\\\S+z	<\[.*?\]>z
[^#\\\'"]+z\}r%   z\\.|\'z#\{rP   #rQ   z#|\\.|"z\\.|\'|"z
#|\\.|\'|")
r    rX   r"   r%   rQ   rP   rM   rO   rJ   rK   N)"r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r2   r
   r   r4   r3   r   r   r5   r   r   rR   r   r   r   r=   r>   rU   rV   r   r   r6   r:   rB   rC   rD   rD   rD   rE   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eddejfded	fd
efdefdejfdejfdeejed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fdefdejfdefdefdefgdejdfgeddefdefdefdefd edfgd!ejfd"ejfd#ejfd$ejfd%ejd&fd'ejd(fd)ejd*fd+ejd,fgd-ej fd.eej!efd/eej!e"e#ej!fgd)ejdfd0ejfed1d2ejfgd%ejdfd3ejfed1d4ejfgd+ejdfd5ejfed1d2ejfgd'ejdfd6ejfed1d7ejfgd8	Z$d9S ):r   zT
    For `Dart <http://dartlang.org/>`_ source code.

    .. versionadded:: 1.5
    ZDartZdartz*.dartztext/x-dartstring_literalz#!(.*?)$z\b(import|export)\bimport_declz!\b(library|source|part of|part)\bz[^\S\n]+z//.*?\nz	/\*.*?\*/z\b(class)\b(\s+)classzx\b(assert|break|case|catch|continue|default|do|else|finally|for|if|in|is|new|return|super|switch|this|throw|try|while)\bz|\b(abstract|async|await|const|extends|factory|final|get|implements|native|operator|set|static|sync|typedef|var|with|yield)\bz4\b(bool|double|dynamic|int|num|Object|String|void)\bz\b(false|null|true)\bz[~!%^&*+=|?:<>/-]|as\bz[a-zA-Z_$]\w*:z[a-zA-Z_$]\w*z[(){}\[\],.;]z0[xX][0-9a-fA-F]+z\d+(\.\d*)?([eE][+-]?\d+)?z\.\d+([eE][+-]?\d+)?z\nz#popz\s+z\b(as|show|hide)\bz\,z\;zr"""([\w\W]*?)"""zr'''([\w\W]*?)'''zr"(.*?)"zr'(.*?)'z"""string_double_multilinez'''string_single_multilinerL   string_doublerN   string_singlezA\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\{[0-9A-Fa-f]*\}|[a-z'\"$\\])z(\$)([a-zA-Z_]\w*)z(\$\{)(.*?)(\})z
[^"$\\\n]+string_commonz\$+z[^"$\\]+z(\$|\")+z
[^'$\\\n]+z	[^\'$\\]+z(\$|\')+)	r%   r]   r\   r[   rb   r`   r^   ra   r_   N)%r&   r'   r(   r)   r*   r+   r,   r-   r.   r1   r/   r2   r   r   Preprocr   r
   r3   r4   r   r;   Typer=   r   r   Labelr   r   r9   rS   r   r@   EscaperB   r   r   rC   rD   rD   rD   rE   r   U  s   










c               @   s  e Zd ZdZdZddgZddgZdgZej	ej
B Zdefd	efd
ejfdejfgeddejdfdedfedgdedfgdedfeddedfdedfdefdedfdejdfdejfdejfdejfdeejeejedfdejfdejfdeejedfd ejdfd!eeje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$d)fd*ejfgd(ej$dfd+ej$fd,ej$fd-ej%d.fd/ej$fd0ej$fgd1ej%dfed2gd3Z&d4d5 Z'd6S )7r   z`
    For `TypeScript <http://typescriptlang.org/>`_ source code.

    .. versionadded:: 1.6
    Z
TypeScriptZtsZ
typescriptz*.tsz*.tsxztext/x-typescriptz\s+z<!--z//.*?\nz	/\*.*?\*/r    z3/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)z#popz(?=/))z#popr!   z\nz^(?=\s|/|<!--)r"   z@\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?z[{(\[;,]z[})\].]z(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|this)\bz(var|let|with|function)\bz(abstract|boolean|byte|char|class|const|debugger|double|enum|export|extends|final|float|goto|implements|import|int|interface|long|native|package|private|protected|public|short|static|super|synchronized|throws|transient|volatile)\bz*(true|false|null|NaN|Infinity|undefined)\bz(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|window)\bz(\b(module)(\s*)(\s*[\w?.$][\w?.$]*)(\s*)z\b(string|bool|number)\bz)\b(constructor|declare|interface|as|AS)\bz (super)(\s*)(\([\w,?.$\s]+\s*\))z([a-zA-Z_?.$][\w?.$]*)\(\) \{z+([\w?.$][\w?.$]*)(\s*:\s*)([\w?.$][\w?.$]*)z[$a-zA-Z_]\w*z%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-fA-F]+z[0-9]+z"(\\\\|\\"|[^"])*"z'(\\\\|\\'|[^'])*'r#   r$   z@\w+z\\\\z\\`z\$\{zinterp-insidez\$z[^`\\$]+z\}r%   )r    r"   r!   r%   r$   zinterp-insidec             C   s   t d| t jrdS d S )NzD^(import.+(from\s+)?["\']|(export\s*)?(interface|class|function)\s+)g      ?)r.   searchr1   )textrD   rD   rE   analyse_text  s    
zTypeScriptLexer.analyse_textN)(r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r1   r2   r
   r   r3   r4   r   r   r5   r   r   r   r   r;   r<   r=   r   r>   r   r   rd   r   r6   r9   r:   r@   rA   rB   rC   ri   rD   rD   rD   rE   r     sp   









c            /   @   s&  e Zd ZdZdZddgZddgZddd	gZd
gZe	j
e	jB e	jB Zdejdfdedfdefedgdejdfdejdfdejdfdejdfdefdefgdejdfdefdejdfdefdefgdejdfdefdefgdejdfedgdejdfedgdejdfedgdefd ejfd!ejfd"ejfged#d$ejfd%ejfd&ej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j fd/e!ej"j#ejj$fd0e!ej"j#e%ejj$fd1e!ej"j#ejj&fd2e!e%ejj&fd3ej"j#fd4ej'fd5ej(fd6ej)fd7e!e*j+eej$e%e*fd8e!e*j+eej$e%ej,d9fd:e!e*j+eej,d9fd;e!e*eej,d9fd<e!e*eej,fd=e*j-fd>e*j+fd?e*j.fd@e!eee*fdAe!e*eefdBe*dCfdDe!e/e*j0fdEe!e/e*fdFe/dGfdHe%j1fdIe!eej(e%fdJe!e/ejfdKe!e%e%j1fdLe%fdMe/fg&d(ejdfdNejfedOdPejfgd*ejdfdQejfedOdPejfgdRej2fgdSe%dfdTe/dfdUe/dVfedgdTe/dfdWej'dfdXej"j#fedgdYedZfd[efd\edfd5ej(fdFe/fed#gd]e/dfdTe/d^fdWej'fd5ej(fdXej"j#fdUe/fed#gd_ej,d9fed#edgd`Z3dadb Z4dcdd Z5dedf Z6dgS )hr   a  
    For `Lasso <http://www.lassosoft.com/>`_ source code, covering both Lasso 9
    syntax and LassoScript for Lasso 8.6 and earlier. For Lasso embedded in
    HTML, use the `LassoHtmlLexer`.

    Additional options accepted:

    `builtinshighlighting`
        If given and ``True``, highlight builtin types, traits, methods, and
        members (default: ``True``).
    `requiredelimiters`
        If given and ``True``, only highlight code between delimiters as Lasso
        (default: ``False``).

    .. versionadded:: 1.6
    ZLassolassoZlassoscriptz*.lassoz*.lasso[89]z*.inclz*.incz*.lasztext/x-lassoz^#![ \S]+lasso9\bz(?=\[|<)
delimitersz\s+)rk   	lassofilez\[no_square_brackets\]nosquarebracketsz\[noprocess\]	noprocessz\[squarebracketsz<\?(lasso(script)?|=)anglebracketsz<(!--.*?-->)?z[^[<]+z\[/noprocess\]z#popz[^[]z\]z\?>z\]|\?>z//.*?\nz/\*\*!.*?\*/z	/\*.*?\*/whitespacecommentsz\d*\.\d+(e[+-]?\d+)?z
0x[\da-f]+z\d+z(infinity|NaN)\brN   singlestringrL   doublestringz`[^`]*`z\$[a-z_][\w.]*z#([a-z_][\w.]*|\d+\b)z(\.\s*)('[a-z_][\w.]*')z (self)(\s*->\s*)('[a-z_][\w.]*')z!(\.\.?\s*)([a-z_][\w.]*(=(?!=))?)z&(->\\?\s*|&\s*)([a-z_][\w.]*(=(?!=))?)z3(?<!->)(self|inherited|currentcapture|givenblock)\bz-(?!infinity)[a-z_][\w.]*z::\s*[a-z_][\w.]*a  (error_(code|msg)_\w+|Error_AddError|Error_ColumnRestriction|Error_DatabaseConnectionUnavailable|Error_DatabaseTimeout|Error_DeleteError|Error_FieldRestriction|Error_FileNotFound|Error_InvalidDatabase|Error_InvalidPassword|Error_InvalidUsername|Error_ModuleNotFound|Error_NoError|Error_NoPermission|Error_OutOfMemory|Error_ReqColumnMissing|Error_ReqFieldMissing|Error_RequiredColumnMissing|Error_RequiredFieldMissing|Error_UpdateError)\bz:(define)(\s+)([a-z_][\w.]*)(\s*=>\s*)(type|trait|thread)\bz=(define)(\s+)([a-z_][\w.]*)(\s*->\s*)([a-z_][\w.]*=?|[-+*/%])	signaturez(define)(\s+)([a-z_][\w.]*)zJ(public|protected|private|provide)(\s+)(([a-z_][\w.]*=?|[-+*/%])(?=\s*\())z5(public|protected|private|provide)(\s+)([a-z_][\w.]*)z)(true|false|none|minimal|full|all|void)\bz((local|var|variable|global|data(?=\s))\bz(array|date|decimal|duration|integer|map|pair|string|tag|xml|null|boolean|bytes|keyword|list|locale|queue|set|stack|staticarray)\bz([a-z_][\w.]*)(\s+)(in)\bz(let|into)(\s+)([a-z_][\w.]*)z	require\brequiresectionz(/?)(Namespace_Using)\ba  (/?)(Cache|Database_Names|Database_SchemaNames|Database_TableNames|Define_Tag|Define_Type|Email_Batch|Encode_Set|HTML_Comment|Handle|Handle_Error|Header|If|Inline|Iterate|LJAX_Target|Link|Link_CurrentAction|Link_CurrentGroup|Link_CurrentRecord|Link_Detail|Link_FirstGroup|Link_FirstRecord|Link_LastGroup|Link_LastRecord|Link_NextGroup|Link_NextRecord|Link_PrevGroup|Link_PrevRecord|Log|Loop|Output_None|Portal|Private|Protect|Records|Referer|Referrer|Repeating|ResultSet|Rows|Search_Args|Search_Arguments|Select|Sort_Args|Sort_Arguments|Thread_Atomic|Value_List|While|Abort|Case|Else|Fail_If|Fail_IfNot|Fail|If_Empty|If_False|If_Null|If_True|Loop_Abort|Loop_Continue|Loop_Count|Params|Params_Up|Return|Return_Value|Run_Children|SOAP_DefineTag|SOAP_LastRequest|SOAP_LastResponse|Tag_Name|ascending|average|by|define|descending|do|equals|frozen|group|handle_failure|import|in|into|join|let|match|max|min|on|order|parent|protected|provide|public|require|returnhome|skip|split_thread|sum|take|thread|to|trait|type|where|with|yield|yieldhome)\b,commamemberz(and|or|not)\bz0([a-z_][\w.]*)(\s*::\s*[a-z_][\w.]*)?(\s*=(?!=))z(/?)([\w.]+)z,(=)(n?bw|n?ew|n?cn|lte?|gte?|n?eq|n?rx|ft)\bz:=|[-+*/%=<>&|!?\\]+z[{}():;,@^]z[^'\\]+escapez\\z[^"\\]+zS\\(U[\da-f]{8}|u[\da-f]{4}|x[\da-f]{1,2}|[0-7]{1,3}|:[^:\n\r]+:|[abefnrtv?"\'\\]|$)z=>z\)z[(,]	parameterz-?[a-z_][\w.]*z\.\.\.z#(([a-z_][\w.]*=?|[-+*/%])(?=\s*\())requiresignaturez3(([a-z_][\w.]*=?|[-+*/%])(?=(\s*::\s*[\w.]+)?\s*,))z[a-z_][\w.]*=?|[-+*/%]z(\)(?=(\s*::\s*[\w.]+)?\s*,))z#pop:2zR(([a-z_][\w.]*=?|[-+*/%])(?=\s*(\(([^()]*\([^()]*\))*[^)]*\)\s*)?(::[\w.\s]+)?=>)))r%   rk   rm   rn   ro   rp   rl   rq   rj   rr   rs   rx   rt   ry   ru   rz   rw   c             K   s   t |dd| _t |dd| _t | _t | _| jrddlm}m} x t	|D ]\}}| j
| qLW x t	|D ]\}}| j
| qnW tj| f| d S )NbuiltinshighlightingTrequiredelimitersFr   )BUILTINSMEMBERS)r   r{   r|   set	_builtins_membersZpygments.lexers._lasso_builtinsr}   r~   r   updater   __init__)selfZoptionsr}   r~   keyvaluerD   rD   rE   r     s    zLassoLexer.__init__c             c   s   dg}| j r|d xpt| ||D ]^\}}}|tjkrH| | jksh|tjjkrx| 	d| j
krx|tj|fV  q&|||fV  q&W d S )Nr%   rk   =)r|   appendr   get_tokens_unprocessedr   r   lowerr   Memberrstripr   r>   )r   rh   stackindextokenr   rD   rD   rE   r   	  s    
z!LassoLexer.get_tokens_unprocessedc             C   sH   d}d| kr|d7 }t d| t jr,|d7 }t d| t jrD|d7 }|S )Ng        z
bin/lasso9g?z<\?lassog?zlocal\()r.   rg   I)rh   rvrD   rD   rE   ri     s    zLassoLexer.analyse_textN)7r&   r'   r(   r)   r*   r+   r,   Zalias_filenamesr-   r.   
IGNORECASEr/   r1   r2   r   rc   r   r   r   r
   r3   r   ZDocr4   r   r6   r9   r:   r@   rA   r   rU   rV   r   r>   PseudorS   r   r   	Attributere   	Exceptionr   r;   rR   r=   rd   r   	NamespacerT   rf   rC   r   r   ri   rD   rD   rD   rE   r      s   
























c               @   sZ  e Zd ZdZdZddddgZdgZdgZd	Ze	j
e	jB Zed
de d e d e d eeeeeddeefdeeedfdeeedfdeeeefeddefdefgdeejeejfdeejeejfdeejeejfdeejeejfdejdfdejd fd!efd"efd#efd$ejfd%ejfd&efged
d'ejd(fd)ed*fed(gd!ed(fgd+ed,fd-ejfd.ejfd/ejfd0ejfd1ejfd2ejfd3ej fd4ej!fd5ed6fd7e"d6fd8ed6fd9efd:ed6fd;ej#d6fd<efd=ej$fd>e%j&fd?ej'fd@ej'fdAej'fdBe%j&fdCe dD ee%j(eefdEe%fgdFe dG e dH ee%j)eee%j)d(fdFe dI ee%j)eee%j*ed(fdJe%j)d(fgdKee%j)edLfdMee%j)ed(fged
dNe dO e dP e dQ e dR eeeej$eee%j(dSfdNe dO e dP e dT eeeej$eee%j(d(fdUe dR ee%j(dSfdVee%j(d(fed(ged
dNe dW e dP e dT eeeej$eeefdUe dR e%j(fdXe%j(fdYe dZ eefdVefgd[ee%j(efd\ed(fgd]ed(fd^ej+fd_efd#efd`efgdaejfdbejfdcejd(fddejfdeejfd!ejd(fgdfejdLfdgejd(fdhefgdiZ,djdk Z-dlS )mr   z^
    For Objective-J source code with preprocessor directives.

    .. versionadded:: 1.3
    zObjective-Jzobjective-jZ
objectivejzobj-jZobjjz*.jztext/x-objective-jz(?:\s|//.*?\n|/[*].*?[*]/)*
whitespacez^(z[+-]z)([(a-zA-Z_].*?[^(])(z\{)function_signature)statez!(@interface|@implementation)(\s+)	classnamez(@class|@protocol)(\s*)forward_classnamez(\s*)(@end)(\s*)
statementsz[{()}];z$(@import)(\s+)("(?:\\\\|\\"|[^"])*")z$(@import)(\s+)(<(?:\\\\|\\>|[^>])*>)z0(#(?:include|import))(\s+)("(?:\\\\|\\"|[^"])*")z0(#(?:include|import))(\s+)(<(?:\\\\|\\>|[^>])*>)z#if\s+0if0rZ   macroz\nz\s+z\\\nz//(\n|(.|\n)*?[^\\]\n)z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z<!--z3/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)z#popz(?=/))z#popr!   z(L|@)?"stringz8(L|@)?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'z"(\\\\|\\"|[^"])*"z'(\\\\|\\'|[^'])*'z%(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?z(\d+\.\d*|\.\d+|\d+[fF])[fF]?z0x[0-9a-fA-F]+[Ll]?z0[0-7]+[Ll]?z\d+[Ll]?z^(?=\s|/|<!--)r"   z@\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?z[{(\[;,]z[})\].]z(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|prototype|__proto__)\bz(var|with|function)\bz(@selector|@private|@protected|@public|@encode|@synchronized|@try|@throw|@catch|@finally|@end|@property|@synthesize|@dynamic|@for|@accessors|new)\bzt(int|long|float|short|double|char|unsigned|signed|void|id|BOOL|bool|boolean|IBOutlet|IBAction|SEL|@outlet|@action)\bz(self|super)\bz"(TRUE|YES|FALSE|NO|Nil|nil|NULL)\bz*(true|false|null|NaN|Infinity|undefined)\bz(ABS|ASIN|ACOS|ATAN|ATAN2|SIN|COS|TAN|EXP|POW|CEIL|FLOOR|ROUND|MIN|MAX|RAND|SQRT|E|LN2|LN10|LOG2E|LOG10E|PI|PI2|PI_2|SQRT1_2|SQRT2)\bz(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|window)\bz([$a-zA-Z_]\w*)(z)(?=\()z[$a-zA-Z_]\w*z([a-zA-Z_]\w*)(:z)([a-zA-Z_]\w*)?z\()([a-zA-Z_]\w*)(\))z([a-zA-Z_]\w*)z([a-zA-Z_]\w*)(\s*,\s*)z#pushz([a-zA-Z_]\w*)(\s*;?)z(\(z)([a-zA-Z_]\w+)(z\)z)([$a-zA-Z_]\w+z:)function_parametersz)([$a-zA-Z_]\w+)z([$a-zA-Z_]\w+z([$a-zA-Z_]\w+)z	)([^)]+)(z(:)z(,z\.\.\.)z([$a-zA-Z_]\w*)(\()z(\))rL   z/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})z	[^\\"\n]+z\\z[^/\n]+z/[*](.|\n)*?[*]/z//.*?\nrW   z	(?<=\\)\nz^\s*#if.*?(?<!\\)\nz^\s*#endif.*?(?<!\\)\nz.*?\n)r%   r   r"   r!   r   r   r   r   r   
expressionr   r   r   c             C   s   t d| t jrdS dS )Nz^\s*@import\s+[<"]TF)r.   rg   r1   )rh   rD   rD   rE   ri     s    zObjectiveJLexer.analyse_textN).r&   r'   r(   r)   r*   r+   r,   r-   Z_wsr.   r/   r1   r2   r   r   r   r   r   r
   r   r   rc   r   r@   r3   r4   r5   r   ZCharr   r6   r9   r8   r:   r   r;   rd   r   r>   r=   rR   rS   re   rf   rC   ri   rD   rD   rD   rE   r   !  s   








"







c               @   s  e Zd ZdZdZdddgZdgZdgZdZe	j
Zd	efd
ejfdejfgdejfdejdfdejdfdejfgeddejdfdejdfdefedgeddedfeedfdejdfdedfdefdedfdejfdejfdejdfd ejjdfd!ejdfd"ejfd#ej fd$ej!fd%ej"fd&ed'fd(ed)fd*ed+fd,ed-fgd.efgd/ejdfed0gd*edfd1efdejdfd2efed3gd,edfd4efed3gd&edfd5efdejdfd2efed3gd(edfd6efed3gd7
Z#d8S )9r   zt
    For `CoffeeScript`_ source code.

    .. _CoffeeScript: http://coffeescript.org

    .. versionadded:: 1.3
    ZCoffeeScriptzcoffee-scriptZcoffeescriptZcoffeez*.coffeeztext/coffeescriptzy\+\+|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|\|\||\\(?=\n)|(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&\|\^/])=?z\s+z###[^#].*?###z#(?!##[^#]).*?\nz[^/#]+z///([gim]+\b|\B)z#popz#\{rP   z[/#]r    z///)z#poprX   z8/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)rW   z	^(?=\s|/)r"   z(?:\([^()]*\))?\s*[=-]>z[{(\[;,]z[})\].]z(?<![.$])(for|own|in|of|while|until|loop|break|return|continue|switch|when|then|if|unless|else|throw|try|catch|finally|new|delete|typeof|instanceof|super|extends|this|class|by)\bzA(?<![.$])(true|false|yes|no|on|off|null|NaN|Infinity|undefined)\bz(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|document|window)\bz[$a-zA-Z_][\w.:$]*\s*[:=]\sz@[$a-zA-Z_][\w.:$]*\s*[:=]\srY   z@?[$a-zA-Z_][\w$]*z%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z0x[0-9a-fA-F]+z[0-9]+z"""rJ   z'''rK   rL   rM   rN   rO   z
[^#\\\'"]+z\}r%   z\\.|\'rZ   rQ   z#|\\.|"z\\.|\'|"z
#|\\.|\'|")
r    rX   r"   r%   rQ   rP   rM   rO   rJ   rK   N)$r&   r'   r(   r)   r*   r+   r,   r-   Z_operator_rer.   r/   r2   r
   r   r4   r3   r   r5   rB   r   r   r   r   rR   r   r   r=   r>   rU   rV   r   r   r6   r9   r:   rC   rD   rD   rD   rE   r      s   











c               @   sn  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dfdedfdedfdedfdejdfdejdfdejdfdejjdfgdejfdejdfdejfgdejdfedgdejdfedgd
ejdfedgdejdfedgdejdfdejdfd ejfd!ejfgd!eedfgdefd"ejjd#fd$ejd%fd&ejd'fd(ejd)fd*ejfd+edfgd,ejjfdejdfedgd,ejfdejdfedgdefd-ejdfded.fded/fedgdefdejd0fdejd1fed)gdefd2efd3ej fged4dejd5fd6ej!fged4dejd5fd7ej!fgdejd5fedgdejd5fedgd8Z"d9S ):r   z[
    For `Mask <http://github.com/atmajs/MaskJS>`__ markup.

    .. versionadded:: 2.0
    ZMaskmaskz*.maskztext/x-maskz\s+z//.*?\nz	/\*.*?\*/z[{};>]z'''zstring-trpl-singlez"""zstring-trpl-doublerN   zstring-singlerL   zstring-doublez([\w-]+)nodez([^.#;{>\s]+)z	(#[\w-]+)z
(\.[\w-]+)z\\.z~\[interpolation.z#popzstring-basez\]z\s*:r   z\s*\w+:z[^\]]+z\.z
node-classz\#znode-idzstyle[ \t]*=znode-attr-style-valuez[\w:-]+[ \t]*=znode-attr-valuez[\w:-]+z[>{;]z[\w-]+z\w+zstring-single-pop2zstring-double-pop2zcss-single-endzcss-double-endr   z[\w\-]+\s*:zcss-basez#pop:2z[^;']+z[^;"]+)r%   zstring-basezstring-singlezstring-doublezstring-trpl-singlezstring-trpl-doubler   r   r   z
node-classznode-idznode-attr-valueznode-attr-style-valuezcss-basezcss-single-endzcss-double-endzstring-single-pop2zstring-double-pop2N)#r&   r'   r(   r)   r*   r+   r,   r-   r.   r1   r   r/   r2   r
   r   r3   r4   r   r   r   TagrS   rR   rU   rf   rB   r   r   r   r   r   r   r>   EntityrC   rD   rD   rD   rE   r   r  s   




























c               @   sv  e Zd ZdZdZdddgZdgZdgZdefe	d	d
efde
fdefdefdefe	deddddejfdejfdejfdejfdefdejfe	de	de	ddeeejeejjdfdejdfd ejd!fd"ejfe	d#d$eed%d&fd'eed%d(fd)eed%d*fe	d+e	d,e	d-e	d.gd/eeejjfd0eeejjefd1efd2ejd3fgd4eejefgd5eeejfged6d7d8dejfd9ejfgd:ej fd;ej fd<eeej efd=eeej efgd>eeejfd?eeej!fd@eeejfgedAd7d8dej"fedBd7dCdej#fedDd7dCdej$fgedEdFdGdej%fedHd7d8dej#fgdIejj&fdJeejejfgdKej'fgdLej(d3fe	dMgdNej)fgdOefdPefdefgdQed3fdRej)fe	dSgdTed3fdUej)fdVej(dWfe	dSgd)ed3fe	dSgdXejd3fdYejfdZej)fd[ejfgd\ejd3fdejfdZej)fd]ejfgd^e*j+fd_e*j+fd`e*j,fdae*j-fdbe*j.fdce*j/fdde*j0fgdeZ1dfS )gr   z{
    For `Earl-Grey`_ source code.

    .. _Earl-Grey: https://breuleux.github.io/earl-grey/

    .. versionadded: 2.1
    z	Earl Greyz	earl-greyZearlgreyZegz*.egztext/x-earl-greyz\ncontrolz[^\S\n]+z;;.*\nz[\[\]{}:(),;]z\\\nz\\errors)
withwhereZwhenandnotorinasZofisz
(?<=\s|\[)z(?![\w$\-]))prefixsuffixz[*@]?->z[+\-*/~^<>%&|?!@#.]*=z\.{2,3}z+([+*/~^<>&|?!]+)|([#\-](?=\s))|@@+(?=\s)|=+z(?<![\w$\-])(var|let)(?:[^\w$])keywordsbuiltins
assignmentz(?x)
                (?:()([a-zA-Z$_](?:[\w$\-]*[\w$])?)|
                   (?<=[\s{\[(])(\.)([a-zA-Z$_](?:[\w$\-]*[\w$])?))
                (?=.*%)dbsz[rR]?`btz[rR]?```tbtz=(?<=[\s\[{(,;])\.([a-zA-Z$_](?:[\w$\-]*[\w$])?)(?=[\s\]}),;])nestedz(?:[rR]|[rR]\.[gmi]{1,3})?"stringescaperM   z(?:[rR]|[rR]\.[gmi]{1,3})?\'rO   z"""rJ   tupleimport_pathsr*   numbersz-(\.)([a-zA-Z$_](?:[\w$\-]*[\w$])?)(?=[.\[\s])z+(\[)([\^#][a-zA-Z$_](?:[\w$\-]*[\w$])?)(\])z\s+%z#popz>(?<=[\s:;,])(\.{1,3}(?:[\w\-]*/)*)(\w(?:[\w\-]*\w)*)(?=[\s;,])zB(\.)?([a-zA-Z$_](?:[\w$\-]*[\w$])?)(?=\s+[+\-*/~^<>%&|?!@#.]*\=\s))Error	TypeErrorReferenceErrorz(?<![\w\-$.])z(?![\w\-$.])z(?x)
                (?<![\w$])
                E\.[\w$](?:[\w$\-]*[\w$])?
                (?:\.[\w$](?:[\w$\-]*[\w$])?)*
                (?=[({\[?!\s])z(?x)
                ([a-zA-Z$_](?:[\w$-]*[\w$])?)
                (?!\n)\s+
                (?!and|as|each\*|each|in|is|mod|of|or|when|where|with)
                (?=(?:[+\-*/~^<>%&|?!@#.])?[a-zA-Z$_](?:[\w$-]*[\w$])?)z5([a-zA-Z$_](?:[\w$-]*[\w$])?)(?!\n)\s+(?=[\'"\d{\[(])z(?x)
                (?:
                    (?<=[%=])|
                    (?<=[=\-]>)|
                    (?<=with|each|with)|
                    (?<=each\*|where)
                )(\s+)
                ([a-zA-Z$_](?:[\w$-]*[\w$])?)(:)zc(?x)
                (?<![+\-*/~^<>%&|?!@#.])(\s+)
                ([a-zA-Z$_](?:[\w$-]*[\w$])?)(:)zz(?x)
                (?<=[\w$\]})])(\.)
                ([a-zA-Z$_](?:[\w$-]*[\w$])?)
                (?=\s+with(?:\s|\n))zo(?x)
                (?<!\s)(\.)
                ([a-zA-Z$_](?:[\w$-]*[\w$])?)
                (?=[}\]).,;:\s])zq(?x)
                (?<=[\w$\]})])(\.)
                ([a-zA-Z$_](?:[\w$-]*[\w$])?)
                (?=[\[{(:]))Zeachzeach*modawaitbreakchaincontinueelifz
expr-valueifmatchreturnyieldpasselseZrequirevarZletasyncmethodgen)r   r   rY   z(?![\w\-$]))	rR   ZObjectZArrayr   r   ZBooleanZErrorFactoryZENodeZPromise)sendobjectkeysitems	enumeratezipproductZ
neighboursZ	predicateZequalZnequalcontainsreprZclonerangeZ
getCheckerzget-checkerZgetPropertyzget-propertyZgetProjectorzget-projectorZconsumeZtakeZ	promisifyZspawnconstructorz(?<![\w\-#.])z(?![\w\-.]))trueZfalseZnullZ	undefinedz@([a-zA-Z$_](?:[\w$-]*[\w$])?)z)([a-zA-Z$_](?:[\w$-]*[\w$])?)(\+\+|\-\-)?z#[a-zA-Z_][\w\-]*(?=[\s{(,;])z\}r%   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})z[^\\\'"]z[\'"\\]rL   z\\\\|\\"|\\\nrQ   rN   z\\\\|\\'|\\\nz\{rP   r#   z(?<!`)\nz\^=?z.+z```z[^`]+z \d+\.(?!\.)\d*([eE][+-]?[0-9]+)?z\d+[eE][+-]?[0-9]+z8r[0-7]+z2r[01]+z16r[a-fA-F0-9]+z5([3-79]|[12][0-9]|3[0-6])r[a-zA-Z\d]+(\.[a-zA-Z\d]+)?z\d+)r%   r   r   r   r   r   r   r   r   r*   r   rP   r   rQ   rM   rO   rJ   r   r   r   N)2r&   r'   r(   r)   r*   r+   r,   r-   r
   r   r   r   r   r   rT   r   rR   r   r;   r   r   rS   ZStartr   rA   ZSymbolr	   ZDBSr   
WhitespacerU   r   ZControlZFieldr   r=   rd   r>   rV   r   rB   rf   r   r6   r8   r7   r9   ZRadixr:   rC   rD   rD   rD   rE   r     s   










c               @   s   e Zd ZdZdZddgZdgZddddgZej	ej
B ejB Zd	efd
ejfdejfgeddejdfdedfedgdedfgdedfeddejfdejfdejfdejfdedfdedfdefdedfdejdfdejfdejfdejfeejfd e j!fd!e j"fd"ej#fd#ejfgd$Z$d%S )&r   zW
    For `Juttle`_ source code.

    .. _Juttle: https://github.com/juttle/juttle

    ZJuttleZjuttlez*.juttlezapplication/juttlezapplication/x-juttleztext/x-juttleztext/juttlez\s+z//.*?\nz	/\*.*?\*/r    z3/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)z#popz(?=/))z#popr!   z\nz	^(?=\s|/)r"   z:\d{2}:\d{2}:\d{2}(\.\d*)?:zY:(now|beginning|end|forever|yesterday|today|tomorrow|(\d+(\.\d*)?|\.\d+)(ms|[smhdwMy])?):zN:\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d*)?)?(Z|[+-]\d{2}:\d{2}|[+-]\d{4})?:z:((\d+(\.\d*)?|\.\d+)[ ]+)?(millisecond|second|minute|hour|day|week|month|year)[s]?(([ ]+and[ ]+(\d+[ ]+)?(millisecond|second|minute|hour|day|week|month|year)[s]?)|[ ]+(ago|from[ ]+now))*:z8\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|(==?|!=?|[-<>+*%&|^/])=?z[{(\[;,]z[})\].]z"(import|return|continue|if|else)\bz((var|const|function|reducer|sub|input)\bz{(batch|emit|filter|head|join|keep|pace|pass|put|read|reduce|remove|sequence|skip|sort|split|tail|unbatch|uniq|view|write)\bz(true|false|null|Infinity)\bz6(Array|Date|Juttle|Math|Number|Object|RegExp|String)\bz%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?z[0-9]+z"(\\\\|\\"|[^"])*"z'(\\\\|\\'|[^'])*')r    r"   r!   r%   N)%r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r
   r   r3   r4   r   r   r5   r   ZMomentr   r   r   r;   r<   r=   r   r>   r?   r   r   r6   r:   r@   rC   rD   rD   rD   rE   r     sP   


)+r)   r.   Zpygments.lexerr   r   r   r   r   r   r   r	   Zpygments.tokenr
   r   r   r   r   r   r   r   r   Zpygments.utilr   r   Zpygments.unistringZ	unistringZuni__all__ZcombineZJS_IDENT_STARTZJS_IDENT_PARTr?   r   r   r   r   r   r   r   r   r   r   r   rD   rD   rD   rE   <module>
   s8   (,Puoef   `rs W