o a @sdZddlZddlmZmZmZmZmZmZm Z m Z m Z m Z m Z ddlmZmZmZmZmZmZmZmZmZmZddlmZddlmZgdZdedd d d d d dZ dedd d d d d dddd dZ!e de!dZ"e#dZ$Gddde Z%Gddde%Z&Gddde Z'Gddde Z(Gd d!d!e Z)Gd"d#d#e Z*Gd$d%d%e Z+Gd&d'd'e Z,Gd(d)d)e Z-Gd*d+d+e Z.Gd,d-d-e Z/Gd.d/d/e Z0dS)0z pygments.lexers.javascript ~~~~~~~~~~~~~~~~~~~~~~~~~~ Lexers for JavaScript and related languages. :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) bygroupscombineddefault do_insertionsincludeinheritLexer RegexLexerthisusingwords) TextCommentOperatorKeywordNameStringNumber PunctuationOtherGeneric) get_bool_opt) JavascriptLexerKalLexerLiveScriptLexer DartLexerTypeScriptLexer LassoLexerObjectiveJLexerCoffeeScriptLexer MaskLexer EarlGreyLexer JuttleLexerNodeConsoleLexerz(?:[$_LuLlLtLmLoNlz]|\\u[a-fA-F0-9]{4})z(?:[$MnMcNdPcu‌‍]|\\u[a-fA-F0-9]{4})z(?:z)*z.*? c@seZdZdZdZddgZgdZgdZej ej Bej BZ de fdefd ejfd ejfged d ejd fde dfed gde d fgdejfde dfed dejfdejfdejfdejfdejfdefdedfdedfdefdejdfdej fdedfd ej!dfd!ej fd"ej"fd#e#j$fd$e#j%fd%e&ee dfd&e#j'dfe(e#j'fd'ej)fd(ejfd)ej*d*fgd)ej*d fd+ej*fd,ej+d-fd.ej*fd/ej*fgd0ej+d fed1gd2Z,d3S)4rz% For JavaScript source code. JavaScript javascriptjs)z*.jsz*.jsmz*.mjsz*.cjs)zapplication/javascriptzapplication/x-javascriptztext/x-javascriptztext/javascript\s+)?z[^[<]+z\[/noprocess\]r7z[^[]rvz\?>rz\]|\?>whitespacecommentsr3z /\*\*!.*?\*/r4z\d*\.\d+(e[+-]?\d+)?z 0x[\da-f]+\d+z(infinity|NaN)\br singlestringr 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\brequiresectionz(/?)(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[^'\\]+escape\\z[^"\\]+zS\\(U[\da-f]{8}|u[\da-f]{4}|x[\da-f]{1,2}|[0-7]{1,3}|:[^:\n\r]+:|[abefnrtv?"\'\\]|$)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*,))#pop:2zR(([a-z_][\w.]*=?|[-+*/%])(?=\s*(\(([^()]*\([^()]*\))*[^)]*\)\s*)?(::[\w.\s]+)?=>))cKst|dd|_t|dd|_t|_t|_|jr?ddlm}m}| D] \}}|j |q%| D] \}}|j |q4t j |fi|dS)NbuiltinshighlightingTrequiredelimitersFr)BUILTINSMEMBERS) rrrset _builtins_memberspygments.lexers._lasso_builtinsrritemsupdater __init__)selfoptionsrrkeyvaluerjrjrkrszLassoLexer.__init__ccsdg}|jr |dt|||D]/\}}}|tjur$||jvs4|tjjur<| d|j vr<|tj |fVq|||fVqdS)NrHr=) rappendr get_tokens_unprocessedrrlowerrMemberrstriprrc)rtextstackindextokenrrjrjrkrs    z!LassoLexer.get_tokens_unprocessedcCsHd}d|vr |d7}td|tjr|d7}td|tjr"|d7}|S)Ngz bin/lasso9g?z<\?lassog?zlocal\()rQsearchI)rrvrjrjrk analyse_textszLassoLexer.analyse_textN)7rIrJrKrLrMrNrOalias_filenamesrPrQ IGNORECASErRrTrUrrrrrr rVrDocrWrr^r\r]rfrgrrrrrcPseudorrr Attributerrdrrarrbrqr Namespacer_rrirrrrjrjrjrkrs          # '-     '),. 1 567:;<=>STU WX Z[  !  '/ 8A rc@sVeZdZdZdZgdZdgZdgZdZe j e j BZ e dded ed ed eeeeed d eefdeeedfdeeedfdeeeefe ddefdefgdeejeejfdeejeejfdeejeejfdeejeejfdejdfdejdfdefdefd efd!ejfd"ejfd#efg e dd$ejd%fd&ed'fed%gded%fgd(ed)fd*ejfd+ejfd,ejfd-ejfd.ejfd/ejfd0ej fd1ej!fd2ed3fd4e"d3fd5ed3fd6efd7ed3fd8ej#d3fd9efd:ej$fd;e%j&fdej'fd?e%j&fd@edAee%j(eefdBe%fgdCedDedEee%j)eee%j)d%fdCedFee%j)eee%j*ed%fdGe%j)d%fgdHee%j)edIfdJee%j)ed%fge ddKedLedMedNedOeeeej$eee%j(dPfdKedLedMedQeeeej$eee%j(d%fdRedOee%j(dPfdSee%j(d%fed%ge ddKedTedMedQeeeej$eeefdRedOe%j(fdUe%j(fdVedWeefdSefgdXee%j(efdYed%fgdZed%fd[ej+fd\efd efd]efgd^ejfd_ejfd`ejd%fdaejfdbejfdejd%fgdcejdIfddejd%fdeefgdf Z,dgdhZ-diS)jrz^ For Objective-J source code with preprocessor directives. .. versionadded:: 1.3 z Objective-J)z objective-j objectivejzobj-jobjjz*.jztext/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+0if0rmacror;r1\\\nz//(\n|(.|\n)*?[^\\]\n)z/(\\\n)?[*](.|\n)*?[*](\\\n)?/r2z3/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)r7r8r9z(L|@)?"stringz8(L|@)?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'rArBz%(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?z(\d+\.\d*|\.\d+|\d+[fF])[fF]?z0x[0-9a-fA-F]+[Ll]?z 0[0-7]+[Ll]?z\d+[Ll]?r<r=z@\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?r>r?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)\br@z(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+)(rz)([$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(\))rz/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})z [^\\"\n]+rz[^/\n]+z/[*](.|\n)*?[*]/r3rz (?<=\\)\nz^\s*#if.*?(?>>?|==?(?!>)|!=?|=(?!>)|-(?!>)|[<>+*`%&|\^/])=?r1rtrurz///([gimuysd]+\b|\B)r7rrz[/#]r5z///rrwrrr=z(?:\([^()]*\))?\s*[=-]>r>r?z(?`__ markup. .. versionadded:: 2.0 Maskmaskz*.maskz text/x-maskrHr1r3r4z[{};>]rzstring-trpl-singlerzstring-trpl-doublerz string-singlerz string-doublez([\w-]+)nodez ([^.#;{>\s]+)z (#[\w-]+)z (\.[\w-]+)z string-baserEz~\[ interpolation.r7rvz\s*:rz\s*\w+:z[^\]]+z\.z node-classz\#znode-idz style[ \t]*=znode-attr-style-valuez[\w:-]+[ \t]*=znode-attr-valuez[\w:-]+z[>{;]z[\w-]+z\w+zstring-single-pop2zstring-double-pop2zcss-single-endzcss-double-endzcss-baserz [\w\-]+\s*:rz[^;']+z[^;"]+N)#rIrJrKrLrMrNrOrPrQrTrrRrUr rrVrWrrrTagrrrrrhrrr rrrrcEntityrirjrjrjrkr Hs         $  * -    6  ; @ G  MR W \ `  r c @seZdZdZdZgdZdgZdgZiddefe dd efd e fd e fd efd efe de dddde jfdejfde jfde jfde fdejfe de de ddee eje ejjdfdejdfdejd fd!ejfe d"d#eed$d%fd&eed$d'fd(eed$d)fe d*e d+e d,e d-gdd.ee ejjfd/ee ejje fd0efd1e jd2fgd+d3eejefgdd4ee ejfgde d5d6d7dejfd8ejfgdd9ej fd:ej fd;eeej e fdee ej!fd?ee ejfgde d@d6d7dej"fe dAd6dBdej#fe dCd6dBdej$fgde dDdEdFdej%fe dGd6d7dej#fgd,dHejj&fdIeeje jfgd*dJej'fgdKdLej(d2fe dgd$dMej)fgdNdOefdPefdefgd%dQed2fdRej)fe dNgd'dSed2fdTej)fdUej(dKfe dNgd)d(ed2fe dNgdVejd2fdWejfdXej)fdYejfgdZejd2fdejfdXej)fd[ejfgd\e*j+fd]e*j+fd^e*j,fd_e*j-fd`e*j.fdae*j/fdbe*j0fgdcZ1ddS)er!z{ For `Earl-Grey`_ source code. .. _Earl-Grey: https://breuleux.github.io/earl-grey/ .. versionadded: 2.1 z Earl Grey)z earl-greyearlgreyegz*.egztext/x-earl-greyrHr;controlrz;;.*\nz [\[\]{}:(),;]rrerrors) withwherewhenandnotorinasofisz (?<=\s|\[)z (?![\w$\-]))prefixsuffixz[*@]?->z[+\-*/~^<>%&|?!@#.]*=z\.{2,3}z+([+*/~^<>&|?!]+)|([#\-](?=\s))|@@+(?=\s)|=+z(?(?<=[\s:;,])(\.{1,3}(?:[\w\-]*/)*)(\w(?:[\w\-]*\w)*)(?=[\s;,])zB(\.)?([a-zA-Z$_](?:[\w$\-]*[\w$])?)(?=\s+[+\-*/~^<>%&|?!@#.]*\=\s))Error TypeErrorReferenceErrorz (?%&|?!@#.])?[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) (?+*%&|^/])=?r>r?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)\br}rrArB)r5r=r:rHN)%rIrJrKrLrMrNrOrPrQrRrSrTrUr rrVrWrrrXrMomentrrrrar`rbrrcrerrr^r]rfrirjrjrjrkr"sn r"c@s(eZdZdZdZdgZdgZddZdS)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 zNode.js REPL console session nodejsreplztext/x-nodejsreplc cstdi|j}d}g}t|D]k}|}|dr8|t|dtj |ddfgf||dd7}q|dra| d}t|t|}|t|dtj |d|fgf||7}q|rrt || |EdHd}g}t g| |EdHq|rt || |EdHdSdS)Nz> rz...rrj) rrline_refinditergroup startswithrlenrPromptlstriprr) rrjslexercurcode insertionsr*linecodeleadrjrjrkrs@        z'NodeConsoleLexer.get_tokens_unprocessedN)rIrJrKrLrMrNrPrrjrjrjrkr#s  r#)1rLrQpygments.lexerrrrrrrrr r r r pygments.tokenr rrrrrrrrr pygments.utilrpygments.unistring unistringuni__all__combineJS_IDENT_START JS_IDENT_PARTrecompilerbrrrrrrrrr r!r"r#rjrjrjrksB 40   g%sog`qsYE