File: //usr/lib/python3/dist-packages/pygments/lexers/__pycache__/javascript.cpython-38.pyc
U
G�
\� �
@ s� d Z ddlZddlmZmZmZmZmZmZm Z m
Z
ddlmZm
Z
mZmZmZmZmZmZmZ ddlmZmZ ddlmZ dddd d
ddd
dddgZde�dddddd� d Zde�dddddddddd�
d Zed e d ZG d!d� de�Z G d"d� de�Z!G d#d� de�Z"G d$d � d e�Z#G d%d
� d
e�Z$G d&d� de�Z%G d'd� de�Z&G d(d
� d
e�Z'G d)d� de�Z(G d*d� de�Z)G d+d� de�Z*dS ),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(?:[$_ZLuZLlZLtZLmZLoZNlz]|\\u[a-fA-F0-9]{4})z(?:[$ZMnZMcZNdZPcu ]|\\u[a-fA-F0-9]{4})z(?:z)*c @ s� e Zd ZdZdZddgZddgZddd d
gZej ej
B ejB Zde
fdefd
ejfdejfged�dejdfde
dfed�gde
dfgdejfde
dfed�dejfdejfdejfdejfdejfdefdedfdedfd efd!edfd"ejdfd#ej fd$ej!fd%e"j#fe$e"j%fd&ej&fd'ejfd(ej'd)fgd(ej'dfd*ej'fd+ej'fd,ej(d-fd.ej'fd/ej'fgd0ej(dfed1�gd2�Z)d3S )4r z%
For JavaScript source code.
Z
JavaScriptZjsZ
javascriptz*.jsz*.jsmzapplication/javascriptzapplication/x-javascriptztext/x-javascriptztext/javascript�\s+�<!--�//.*?\n� /\*.*?\*/�commentsandwhitespacez5/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuy]+\b|\B)�#pop�(?=/)�r% �badregex�\nz\A#! ?/.*?\n�^(?=\s|/|<!--)�slashstartsregexz((\.\d+|[0-9]+\.[0-9]*)([eE][-+]?[0-9]+)?z
0[bB][01]+z0[oO][0-7]+�0[xX][0-9a-fA-F]+�[0-9]+z \.\.\.|=>�@\+\+|--|~|&&|\?|:|\|\||\\(?=\n)|(<<|>>>?|==?|!=?|[-<>+*%&|^/])=?�[{(\[;,]�[})\].]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)\b�(var|let|with|function)\b��(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)\b�*(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)\b�"(\\\\|\\"|[^"])*"�'(\\\\|\\'|[^'])*'�`�interp�\\\\�\\`�\$\{�
interp-inside�\$�[^`\\$]+�\}�root�r$ r+ r( r? r7 r; N)*�__name__�
__module__�__qualname__�__doc__�name�aliases� filenames� mimetypes�re�DOTALL�UNICODE� MULTILINE�flagsr
r �Single� Multiliner r �Regexr ZHashbangr �Float�Bin�Oct�Hex�Integerr r r
�Declaration�Reserved�Constantr �Builtin�JS_IDENTr �Double�Backtick�Interpol�tokens� r_ r_ �</usr/lib/python3/dist-packages/pygments/lexers/javascript.pyr ! s� �� ��� � �
��
�"
�
��c @ s� e Zd ZdZdZdgZdgZddgZej Z
defdej
fd ejfgd
ejdfed�gd
efdejdfd
ejfed�gdedfdefed�gdedfdefed�ged�dejfdefdejfdejfdefdedfdefdejdfdejdfd ed!fd"ejjfd#efd$ejfd%ejfd&ejfd'ejfd(ej fd)ej!fd*ed+fd,ed-fd.ed/fd0ed1fgd2efgd3ej"dfed�gd.edfd4efd5ej"d6fed7�gd0edfd8efed7�gd*edfd9efd5ej"d6fed7�gd,edfd:efed7�gd;�Z#d<S )=r zk
For `Kal`_ source code.
.. _Kal: http://rzimmerman.github.io/kal
.. versionadded:: 2.0
ZKalZkalz*.kalztext/kalzapplication/kalr �
###[^#].*?###�#(?!##[^#]).*?\nz[$a-zA-Z_][\w$]*\s*r% r$ z\binherits\s+from\bz[$a-zA-Z_][\w$]*\s*\n�\]z\b(property|value)\br? r) z\bfrom\b�8/(?! )(\\.|[^[/\\\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[{(]�\[�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*(:|[+\-*/]?\=)?\b�%[0-9][0-9]*\.[0-9]+([eE][0-9]+)?[fd]?�0x[0-9a-fA-F]+r- �"""�tdqs�'''�tsqs�"�dqs�'�sqs�
[^#\\\'"]+r>