B
    b                 @   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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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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#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
Z0G d.d de	Z1dS )/z
    pygments.lexers.javascript
    ~~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for JavaScript and related languages.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)bygroupscombineddefaultdo_insertionsincludeinheritLexer
RegexLexerthisusingwords)TextCommentOperatorKeywordNameStringNumberPunctuationOtherGeneric
Whitespace)get_bool_optJavascriptLexerKalLexerLiveScriptLexer	DartLexerTypeScriptLexer
LassoLexerObjectiveJLexerCoffeeScriptLexer	MaskLexerEarlGreyLexerJuttleLexerNodeConsoleLexerz(?:[$_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)*z.*?
c               @   s  e Zd ZdZdZdZddgZdddd	gZd
dd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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jdfd%e j!fd&e 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'e edfd-e$j(dfe)e$j(fd.ej*fd/ejfd0ej+d1fgd0ej+dfd2ej+fd3ej,d4fd5ej+fd6ej+fgd7ej,dfed8gd9Z-d:S );r   z%
    For JavaScript source code.
    Z
JavaScriptzQhttps://www.ecma-international.org/publications-and-standards/standards/ecma-262/Z
javascriptZjsz*.jsz*.jsmz*.mjsz*.cjszapplication/javascriptzapplication/x-javascriptztext/x-javascriptztext/javascriptz\s+z<!--z//.*?$z	/\*.*?\*/commentsandwhitespacez7/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuysd]+\b|\B)z#popz(?=/))z#popbadregexz\nz\A#! ?/.*?$z^(?=\s|/|<!--)slashstartsregexz0[bB][01]+n?z0[oO]?[0-7]+n?z0[xX][0-9a-fA-F]+n?z[0-9]+nz2(\.[0-9]+|[0-9]+\.[0-9]*|[0-9]+)([eE][-+]?[0-9]+)?z	\.\.\.|=>zP\+\+|--|~|\?\?=?|\?|:|\\(?=\n)|(<<|>>>?|==?|!=?|(?:\*\*|\|\||&&|[-<>+*%&|^/]))=?z[{(\[;,]z[})\].]z((typeof|instanceof|in|void|delete|new)\bz\b(constructor|from|as)\bz(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|yield|await|async|this|of|static|export|import|debugger|extends|super)\bz%(var|let|const|with|function|class)\bz(abstract|boolean|byte|char|double|enum|final|float|goto|implements|int|interface|long|native|package|private|protected|public|short|synchronized|throws|transient|volatile)\bz*(true|false|null|NaN|Infinity|undefined)\ba  (Array|Boolean|Date|BigInt|Function|Math|ArrayBuffer|Number|Object|RegExp|String|Promise|Proxy|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|DataView|document|window|globalThis|global|Symbol|Intl|WeakSet|WeakMap|Set|Map|Reflect|JSON|Atomics|Int(?:8|16|32)Array|BigInt64Array|Float32Array|Float64Array|Uint8ClampedArray|Uint(?:8|16|32)Array|BigUint64Array)\bz;((?:Eval|Internal|Range|Reference|Syntax|Type|URI)?Error)\bz (super)(\s*)(\([\w,?.$\s]+\s*\))z!([a-zA-Z_?.$][\w?.$]*)(?=\(\) \{)z"(\\\\|\\[^\\]|[^"\\])*"z'(\\\\|\\[^\\]|[^'\\])*'`interpz\\.z\$\{zinterp-insidez\$z[^`\\$]+z\}root)r%   r'   r&   r*   r)   zinterp-insideN).__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesreDOTALL	MULTILINEflagsr   r   Single	Multiliner   r   Regexr   r   ZHashbangr   BinOctHexIntegerFloatr   r   Wordr   ReservedDeclarationConstantr   Builtin	Exceptionr   r   JS_IDENTDoubleBacktickInterpoltokens rK   rK   9lib/python3.7/site-packages/pygments/lexers/javascript.pyr   "   sp   








c               @   s   e Zd ZdZdZdZddgZdgZddgZd	Z	d
de
dfde
jdfde
jfde
jfdee
jeejedfdeejeeee
jfde e
jfegiZdS )r   z@
    For TypeScript source code.

    .. versionadded:: 1.6
    Z
TypeScriptzhttps://www.typescriptlang.org/Z
typescripttsz*.tszapplication/x-typescriptztext/x-typescriptg      ?r*   z9(abstract|implements|private|protected|public|readonly)\br'   z(enum|interface|override)\bz\b(declare|type)\bz\b(string|boolean|number)\bz\b(module)(\s*)([\w?.$]+)(\s*)z!([\w?.$]+)(\s*)(:)(\s*)([\w?.$]+)@N)r+   r,   r-   r.   r/   r0   r1   r2   r3   priorityr   rB   rA   Typer   r   r   r   r   rF   r   rJ   rK   rK   rK   rL   r      s&   
c            $   @   s  e Zd 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ejefgdeejedfedgdeee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ejeefdefdedfdefdejdfd ejd!fd"eeeeeed#fd$ejjfd%eeeeeefd&eeeefd'eeeefd(eeeefd)eeeefd&eeeefed*d+d,d-efed.d+d,d-ejfed/d,d0ej fd1eejeefd2e!j"fd3e!j#fd4e!j$fd5ed6fd7ed8fd9ed:fd;ed<fgd=efgd>ej%dfedgd9edfd?efd@ej%dAfedBgd;edfdCefedBgd5edfdDefd@ej%dAfedBgd7edfdEefedBgdFZ&dGS )Hr   z9
    For Kal source code.

    .. versionadded:: 2.0
    ZKalzhttp://rzimmerman.github.io/kalZkalz*.kalztext/kalzapplication/kalz\s+z###[^#].*?###z(#(?!##[^#]).*?)(\n)z([$a-zA-Z_][\w$]*)(\s*)z#popr%   z\b(inherits)(\s+)(from)\bz([$a-zA-Z_][\w$]*)(?=\s*\n)z[$a-zA-Z_][\w$]*\bz\]z\b(property|value)\br*   z\nz\bfrom\bz</(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuysd]+\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))?(\s*)(wait(?=\s))(\s+)(for)\bwaitforz#\b(me|this)(\.[$a-zA-Z_][\w.$]*)?\bz((?<![.$])(run)(\s+)(in)(\s+)(parallel)\bz'(?<![.$])(for)(\s+)(parallel|series)?\bz(?<![.$])(except)(\s+)(when)?\bz(?<![.$])(fail)(\s+)(with)?\bz!(?<![.$])(inherits)(\s+)(from)?\b)inofwhileZuntilbreakreturncontinuewhenifZunlesselseZ	otherwisethrowraisetryZcatchfinallynewdeleteZtypeofZ
instanceofsuperz	(?<![.$])z\b)prefixsuffix)truefalseZyesnoZonZoffnullZnothingZnoneZNaNZInfinity	undefined)ArrayBooleanZDateErrorFunctionZMathr   ObjectZRegExpr   Z	decodeURIZdecodeURIComponentZ	encodeURIZencodeURIComponentevalZisFiniteZisNaNZisSafeIntegerZ
parseFloatZparseIntZdocumentZwindowZ
globalThisSymbolprint)rf   z)([$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%   rR   rS   rQ   rT   r*   r{   rz   rw   ry   rt   ru   N)'r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r7   r   r   r9   r   r8   r   ro   r   r   Classr   r   r:   r   r@   rB   VariableInstancer   rC   rD   r   r?   r=   r>   rI   rJ   rK   rK   rK   rL   r      s   








c               @   s  e Zd 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eje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dedfedgdedf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ejeeedfdeejjeee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d0ej#d1fd2efed3gd(edfd4efed3gd"edfd5efd0ej#d1fd2efed3gd$edfd6efed3gd7
Z$d8S )9r   z@
    For LiveScript source code.

    .. versionadded:: 1.6
    Z
LiveScriptzhttps://livescript.net/Z
livescriptzlive-scriptz*.lsztext/livescriptz\s+z	/\*.*?\*/z
(#.*?)(\n)r%   z//([gimuysd]+\b|\B)z#pop/z[^/#]+z//)z#popmultilineregexz</(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuysd]+\b|\B)z
\A(?=\s|/)r'   z?(?:\([^()]+\))?[ ]*[~-]{1,2}>|(?:\(?[^()\n]+\)?)?[ ]*<[~-]{1,2}z\+\+|&&|(?<![.$])\b(?:and|x?or|is|isnt|not)\b|\?|:|=|\|\||\\(?=\n)|(<<|>>>?|==?|!=?|~(?!\~?>)|-(?!\-?>)|<(?!\[)|(?<!\])>|[+*`%&|^/])=?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|Number|Object|RegExp|String|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|document|window|globalThis|Symbol|Symbol|BigInt)\bz&([$a-zA-Z_][\w.\-:$]*)(\s*)([:=])(\s+)z'(@[$a-zA-Z_][\w.\-:$]*)(\s*)([:=])(\s+)rN   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"""rt   z'''ru   rv   rw   rx   ry   z\\\S+z	<\[.*?\]>z
[^#\\\'"]+z\}r*   z\\.|\'z#\{rz   #r{   z#|\\.|"z\\.|\'|"z
#|\\.|\'|")
r%   r   r'   r*   r{   rz   rw   ry   rt   ru   N)%r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r7   r   r   r9   r   r8   r   r   r:   r   r   r   r   ro   r   r   rC   rD   r}   r~   r   r   r?   r>   rI   rJ   rK   rK   rK   rL   r   6  s   







c               @   s  e Zd 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eje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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d0ee j#efd1ee j#e$e%e j#fgd+e j!dfd2e j!fed3d4e j!fgd'e j!dfd5e j!fed3d6e j!fgd-e jdfd7e jfed3d4e jfgd)e jdfd8e jfed3d9e jfgd:	Z&d;S )<r   z:
    For Dart source code.

    .. versionadded:: 1.5
    ZDartzhttp://dart.dev/Zdartz*.dartztext/x-dartstring_literalz#!(.*?)$z\b(import|export)\bimport_declz!\b(library|source|part of|part)\bz[^\S\n]+z(//.*?)(\n)z	/\*.*?\*/z \b(class|extension|mixin)\b(\s+)classz\b(as|assert|break|case|catch|const|continue|default|do|else|finally|for|if|in|is|new|rethrow|return|super|switch|this|throw|try|while)\bz\b(abstract|async|await|const|covariant|extends|external|factory|final|get|implements|late|native|on|operator|required|set|static|sync|typedef|var|with|yield)\bzH\b(bool|double|dynamic|int|num|Function|Never|Null|Object|String|void)\bz\b(false|null|true)\bz[~!%^&*+=|?:<>/-]|as\bz@[a-zA-Z_$]\w*z[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|deferred|show|hide)\bz\,z\;zr"""([\w\W]*?)"""zr'''([\w\W]*?)'''zr"(.*?)"zr'(.*?)'z"""string_double_multilinez'''string_single_multilinerv   string_doublerx   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   r   r   r   r   r   N)'r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r6   r5   r7   r   r   Preprocr   r   r   r8   r9   rB   rP   rC   r   r   Z	DecoratorLabelr   r   r=   r|   r   rG   EscaperI   r   r
   rJ   rK   rK   rK   rL   r     s   










c            1   @   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eje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ej j$fd0eej"j#ee%eej j$fd1eej"j#eejj&fd2ee%eejj&fd3ej"j#fd4ej'fd5ee(eej)fd6ej*fd7ee+j,eej$ee%ee+fd8ee+j,eej$ee%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e(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e(eej)fdFe(fed#gd]e(dfdTe(d^fdWej'fd5ee(ee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 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+)r   	lassofilez\[no_square_brackets\]nosquarebracketsz\[noprocess\]	noprocessz\[squarebracketsz<\?(lasso(script)?|=)anglebracketsz<(!--.*?-->)?z[^[<]+z\[/noprocess\]z#popz[^[]z\]z\?>z\]|\?>z(//.*?)(\s*)$z/\*\*!.*?\*/z	/\*.*?\*/whitespacecommentsz\d*\.\d+(e[+-]?\d+)?z
0x[\da-f]+z\d+z(infinity|NaN)\brx   singlestringrv   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*)([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)\bzA(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)\bz6([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*   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c             K   s   t |dd| _t |dd| _t | _t | _| jrddlm}m} x |	 D ]\}}| j
| qLW x |	 D ]\}}| j
| qnW tj| f| d S )NbuiltinshighlightingTrequiredelimitersFr   )BUILTINSMEMBERS)r   r   r   set	_builtins_membersZpygments.lexers._lasso_builtinsr   r   itemsupdater	   __init__)selfoptionsr   r   keyvaluerK   rK   rL   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*   r   =)r   appendr	   get_tokens_unprocessedr   r   lowerr   Memberrstripr   rD   )r   textstackindextokenr   rK   rK   rL   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\()r4   searchI)r   rvrK   rK   rL   analyse_text  s    zLassoLexer.analyse_textN)7r+   r,   r-   r.   r/   r1   r2   Zalias_filenamesr3   r4   
IGNORECASEr5   r6   r7   r   r   r   r   r   r   r   r8   r   ZDocr9   r   r?   r=   r>   rG   rH   r   r}   r~   rD   Pseudor|   r   r   	Attributer   r   rE   r   rB   ro   rC   rP   	Namespacer@   r   rJ   r   r   r   rK   rK   rK   rL   r     s  
























c               @   sr  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ej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eedLfdMee'j+e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ejefd`efgdaejfdbejfdceejed'fddejfdeefd*ed'fgdfejdLfdgejd'fdheee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if0r   macroz\s+z(\\)(\n)z//(\n|(.|\n)*?[^\\]\n)z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z<!--z3/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)z#popz(?=/))z#popr&   z\nz(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|Number|Object|RegExp|String|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|window|globalThis|Symbol)\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(\))rv   z/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})z	[^\\"\n]+z\\z[^/\n]+z/[*](.|\n)*?[*]/z(//.*?)(\n)r   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)r4   r   r6   )r   rK   rK   rL   r     s    zObjectiveJLexer.analyse_textN)/r+   r,   r-   r.   r/   r1   r2   r3   Z_wsr4   r5   r6   r7   r   r   r   r
   r   r   r   r   r   r   rG   r   r8   r9   r:   r   r   ZCharr   r?   r=   r<   r>   r   rB   rP   r   rD   rC   ro   r|   r   rJ   r   rK   rK   rK   rL   r     s   








"







c               @   s  e Zd 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eje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d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ejeeedfd!eejj eee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d0ejdfed1gd+edfd2efdejdfd3efed4gd-edfd5efed4gd'edfd6efdejdfd3efed4gd)edfd7efed4gd8
Z&d9S ):r    zB
    For CoffeeScript source code.

    .. versionadded:: 1.3
    ZCoffeeScriptzhttp://coffeescript.orgZcoffeescriptzcoffee-scriptZcoffeez*.coffeeztext/coffeescriptzx\+\+|~|&&|\band\b|\bor\b|\bis\b|\bisnt\b|\bnot\b|\?|:|\|\||\\(?=\n)|(<<|>>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&|\^/])=?z\s+z###[^#].*?###z(#(?!##[^#]).*?)(\n)z[^/#]+z///([gimuysd]+\b|\B)z#popz#\{rz   z[/#]r%   z///)z#popr   z</(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuysd]+\b|\B)r   z
\A(?=\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|Number|Object|RegExp|String|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|document|window|globalThis|Symbol)\bz$([$a-zA-Z_][\w.:$]*)(\s*)([:=])(\s+)z%(@[$a-zA-Z_][\w.:$]*)(\s*)([:=])(\s+)rN   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"""rt   z'''ru   rv   rw   rx   ry   z
[^#\\\'"]+z\}r*   z\\.|\'r   r{   z#|\\.|"z\\.|\'|"z
#|\\.|\'|")
r%   r   r'   r*   r{   rz   rw   ry   rt   ru   N)'r+   r,   r-   r.   r/   r0   r1   r2   r3   Z_operator_rer4   r5   r7   r   r   r9   r   r8   r   r:   rI   r   r   r   r   r   ro   r   r   rC   rD   r}   r~   r   r   r?   r=   r>   rJ   rK   rK   rK   rL   r      s   










c               @   s  e Zd 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eje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eejd fd!eeeje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ej ee!d(fd)eej ee!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d0fe"dgdefdejd1fdejd2fed*gdefd3efd4ej#fged5dejd6fd7ej$fged5dejd6fd8ej$fgdejd6fedgdejd6fedgd9Z%d:S );r!   z5
    For Mask markup.

    .. versionadded:: 2.0
    ZMaskz https://github.com/atmajs/MaskJSmaskz*.maskztext/x-maskz\s+z(//.*?)(\n)z	/\*.*?\*/z[{};>]z'''zstring-trpl-singlez"""zstring-trpl-doublerx   zstring-singlerv   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/   r0   r1   r2   r3   r4   r6   r   r5   r7   r   r   r   r8   r9   r   r   r   Tagr|   ro   r}   r   rI   r   r   r   r   r   r   r   rD   EntityrJ   rK   rK   rK   rL   r!   h  s   

























c               @   s  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eefdefdeej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ej!e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.

    .. versionadded: 2.1
    z	Earl Greyz	earl-greyZearlgreyZegz*.egztext/x-earl-greyz\ncontrolz[^\S\n]+z
(;;.*)(\n)z[\[\]{}:(),;]z(\\)(\n)z\\errors)
withwherer[   andnotorrU   asrV   isz
(?<=\s|\[)z(?![\w$\-]))re   rf   z[*@]?->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})?"stringescaperw   z(?:[rR]|[rR]\.[gmi]{1,3})?\'ry   z"""rt   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))rn   	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$])?)z7([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awaitrX   chainrZ   elifz
expr-valuer\   matchrY   yieldpassr]   ZrequirevarZletasyncmethodgen)r
   r   rN   z(?![\w\-$]))	ro   rp   rl   r   r   rm   ZErrorFactoryZENodeZPromise)sendobjectkeysr   	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\-.]))rg   rh   rj   rk   z@([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[\'"\\]rv   z\\\\|\\"|\\\nr{   rx   z\\\\|\\'|\\\nz\{rz   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   rz   r   r{   rw   ry   rt   r   r   r   N)2r+   r,   r-   r.   r/   r1   r2   r3   r   r   r   r   r   r   r   r   r   r   r@   r   ro   r   rB   r   r|   ZStartrH   rr   r   ZDBSr   r}   rE   ZControlZFieldr   rC   rP   rD   r~   r   rI   r   r?   r<   r;   r=   ZRadixr>   rJ   rK   rK   rK   rL   r"     s   










c               @   s"  e Zd ZdZdZdZdgZdgZdddd	gZe	j
e	jB Zd
efdeeje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#   z<
    For Juttle source code.

    .. versionadded:: 2.2
    ZJuttlezhttp://juttle.github.io/Zjuttlez*.juttlezapplication/juttlezapplication/x-juttleztext/x-juttleztext/juttlez\s+z(//.*?)(\n)z	/\*.*?\*/r%   z7/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuysd]+\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/   r0   r1   r2   r3   r4   r5   r6   r7   r   r   r   r8   r9   r   r   r:   r   r   ZMomentr   r   r   rB   rA   rC   r   rD   rF   r   r   r?   r>   rG   rJ   rK   rK   rK   rL   r#     sV   

c               @   s(   e Zd ZdZdZdgZdgZdd ZdS )r$   a  
    For parsing within an interactive Node.js REPL, such as:

    .. sourcecode:: nodejsrepl

        > let a = 3
        undefined
        > a
        3
        > let b = '4'
        undefined
        > b
        '4'
        > b == a
        false

    .. versionadded: 2.10
    zNode.js REPL console sessionZ
nodejsreplztext/x-nodejsreplc       	   
   c   s*  t f | j}d}g }xt|D ]}| }|dr||t|dtj	|d d fdt
|dd fgf ||dd  7 }q |dr|d}t|t| }|t|dtj	|d | fgf ||7 }q |rt|||E d H  d}g }tg ||E d H  q W |r&t|||E d H  d S )N z> r         z...r   )r   r   line_refinditergroup
startswithr   lenr   ZPromptr   lstripr   r   )	r   r   ZjslexerZcurcodeZ
insertionsr   linecodeZleadrK   rK   rL   r     s4    





z'NodeConsoleLexer.get_tokens_unprocessedN)r+   r,   r-   r.   r/   r1   r3   r   rK   rK   rK   rL   r$     s
   )2r.   r4   Zpygments.lexerr   r   r   r   r   r   r   r	   r
   r   r   Zpygments.tokenr   r   r   r   r   r   r   r   r   r   r   Zpygments.utilr   Zpygments.unistringZ	unistringZuni__all__ZcombineZJS_IDENT_STARTZJS_IDENT_PARTrF   compiler   r   r   r   r   r   r   r   r    r!   r"   r#   r$   rK   rK   rK   rL   <module>	   s@   44
h& qh  
 `rx WD