Linux ns1.utparral.edu.mx 6.8.0-79-generic #79~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 15 16:54:53 UTC 2 x86_64
Apache/2.4.58 (Unix) OpenSSL/1.1.1w PHP/8.2.12 mod_perl/2.0.12 Perl/v5.34.1
: 10.10.1.9 | : 10.10.1.254
Cant Read [ /etc/named.conf ]
daemon
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
README
+ Create Folder
+ Create File
/
usr /
share /
gtksourceview-4 /
language-specs /
[ HOME SHELL ]
Name
Size
Permission
Action
abnf.lang
3.54
KB
-rw-r--r--
actionscript.lang
8.64
KB
-rw-r--r--
ada.lang
7.05
KB
-rw-r--r--
ansforth94.lang
22.6
KB
-rw-r--r--
asciidoc.lang
22.17
KB
-rw-r--r--
asp.lang
40.88
KB
-rw-r--r--
automake.lang
11.15
KB
-rw-r--r--
awk.lang
4.15
KB
-rw-r--r--
bennugd.lang
8.81
KB
-rw-r--r--
bibtex.lang
3.75
KB
-rw-r--r--
bluespec.lang
5.79
KB
-rw-r--r--
boo.lang
8.42
KB
-rw-r--r--
cg.lang
10.05
KB
-rw-r--r--
changelog.lang
3.41
KB
-rw-r--r--
chdr.lang
1.77
KB
-rw-r--r--
c.lang
11.95
KB
-rw-r--r--
cmake.lang
57.69
KB
-rw-r--r--
cobol.lang
20.8
KB
-rw-r--r--
commonlisp.lang
17.14
KB
-rw-r--r--
cpphdr.lang
1.41
KB
-rw-r--r--
cpp.lang
5.15
KB
-rw-r--r--
csharp.lang
9.4
KB
-rw-r--r--
css.lang
89
KB
-rw-r--r--
csv.lang
2.36
KB
-rw-r--r--
cuda.lang
10.25
KB
-rw-r--r--
dart.lang
9.47
KB
-rw-r--r--
def.lang
13.67
KB
-rw-r--r--
desktop.lang
10.7
KB
-rw-r--r--
diff.lang
2.99
KB
-rw-r--r--
d.lang
9.83
KB
-rw-r--r--
docbook.lang
15.98
KB
-rw-r--r--
docker.lang
5.59
KB
-rw-r--r--
dosbatch.lang
5.08
KB
-rw-r--r--
dot.lang
4.42
KB
-rw-r--r--
dpatch.lang
1.49
KB
-rw-r--r--
dtd.lang
4.52
KB
-rw-r--r--
dtl.lang
9.9
KB
-rw-r--r--
eiffel.lang
7.11
KB
-rw-r--r--
erb-html.lang
1.28
KB
-rw-r--r--
erb-js.lang
1.26
KB
-rw-r--r--
erb.lang
2.16
KB
-rw-r--r--
erlang.lang
8.26
KB
-rw-r--r--
fcl.lang
3.75
KB
-rw-r--r--
fish.lang
15.61
KB
-rw-r--r--
forth.lang
9.34
KB
-rw-r--r--
fortran.lang
22.95
KB
-rw-r--r--
fsharp.lang
10.79
KB
-rw-r--r--
ftl.lang
3.06
KB
-rw-r--r--
gap.lang
2.72
KB
-rw-r--r--
gdb-log.lang
6.81
KB
-rw-r--r--
gdscript.lang
9.94
KB
-rw-r--r--
genie.lang
7.62
KB
-rw-r--r--
glsl.lang
17.25
KB
-rw-r--r--
go.lang
10.28
KB
-rw-r--r--
gradle.lang
1.69
KB
-rw-r--r--
groovy.lang
11.92
KB
-rw-r--r--
gtk-doc.lang
3.66
KB
-rw-r--r--
gtkrc.lang
4.12
KB
-rw-r--r--
haddock.lang
5.92
KB
-rw-r--r--
haskell.lang
8.15
KB
-rw-r--r--
haskell-literate.lang
1.73
KB
-rw-r--r--
haxe.lang
7.71
KB
-rw-r--r--
html.lang
15.08
KB
-rw-r--r--
idl-exelis.lang
20.63
KB
-rw-r--r--
idl.lang
5.06
KB
-rw-r--r--
imagej.lang
29.42
KB
-rw-r--r--
ini.lang
3.5
KB
-rw-r--r--
jade.lang
6.53
KB
-rw-r--r--
java.lang
6.57
KB
-rw-r--r--
javascript-expressions.lang
31.3
KB
-rw-r--r--
javascript-functions-classes.lang
17.41
KB
-rw-r--r--
javascript.lang
39.48
KB
-rw-r--r--
javascript-literals.lang
21.86
KB
-rw-r--r--
javascript-modules.lang
13.45
KB
-rw-r--r--
javascript-statements.lang
28.97
KB
-rw-r--r--
javascript-values.lang
30.39
KB
-rw-r--r--
j.lang
7.45
KB
-rw-r--r--
jsdoc.lang
7.62
KB
-rw-r--r--
json.lang
4.23
KB
-rw-r--r--
jsx.lang
13.83
KB
-rw-r--r--
julia.lang
14.03
KB
-rw-r--r--
kotlin.lang
13.19
KB
-rw-r--r--
language2.rng
12.93
KB
-rw-r--r--
language.dtd
2.29
KB
-rw-r--r--
language.rng
10.78
KB
-rw-r--r--
latex.lang
25.25
KB
-rw-r--r--
lean.lang
4.81
KB
-rw-r--r--
less.lang
30.95
KB
-rw-r--r--
lex.lang
6.14
KB
-rw-r--r--
libtool.lang
1.83
KB
-rw-r--r--
llvm.lang
10.05
KB
-rw-r--r--
logcat.lang
3.35
KB
-rw-r--r--
logtalk.lang
14.22
KB
-rw-r--r--
lua.lang
10.2
KB
-rw-r--r--
m4.lang
45.03
KB
-rw-r--r--
makefile.lang
6.03
KB
-rw-r--r--
mallard.lang
3.69
KB
-rw-r--r--
markdown.lang
15.17
KB
-rw-r--r--
matlab.lang
4.87
KB
-rw-r--r--
maxima.lang
65.65
KB
-rw-r--r--
mediawiki.lang
10.68
KB
-rw-r--r--
meson.lang
5.72
KB
-rw-r--r--
modelica.lang
9.26
KB
-rw-r--r--
mxml.lang
2.16
KB
-rw-r--r--
nemerle.lang
8.21
KB
-rw-r--r--
netrexx.lang
10.36
KB
-rw-r--r--
nsis.lang
2.65
KB
-rw-r--r--
objc.lang
4
KB
-rw-r--r--
objj.lang
20.85
KB
-rw-r--r--
ocaml.lang
9.72
KB
-rw-r--r--
ocl.lang
5.24
KB
-rw-r--r--
octave.lang
59.04
KB
-rw-r--r--
ooc.lang
8.51
KB
-rw-r--r--
opal.lang
10.98
KB
-rw-r--r--
opencl.lang
20.36
KB
-rw-r--r--
pascal.lang
8.28
KB
-rw-r--r--
perl.lang
36.58
KB
-rw-r--r--
php.lang
13.05
KB
-rw-r--r--
pig.lang
9.35
KB
-rw-r--r--
pkgconfig.lang
1.93
KB
-rw-r--r--
po.lang
3.33
KB
-rw-r--r--
powershell.lang
22.5
KB
-rw-r--r--
prolog.lang
8.2
KB
-rw-r--r--
protobuf.lang
4.4
KB
-rw-r--r--
puppet.lang
23.67
KB
-rw-r--r--
python3.lang
10.35
KB
-rw-r--r--
python.lang
16.99
KB
-rw-r--r--
R.lang
77.54
KB
-rw-r--r--
rpmspec.lang
7.5
KB
-rw-r--r--
rst.lang
7.5
KB
-rw-r--r--
ruby.lang
26.91
KB
-rw-r--r--
rust.lang
10.39
KB
-rw-r--r--
scala.lang
12.63
KB
-rw-r--r--
scheme.lang
10.17
KB
-rw-r--r--
scilab.lang
6.87
KB
-rw-r--r--
scss.lang
33.21
KB
-rw-r--r--
sh.lang
36.39
KB
-rw-r--r--
sml.lang
6.43
KB
-rw-r--r--
solidity.lang
10.87
KB
-rw-r--r--
sparql.lang
16.34
KB
-rw-r--r--
spice.lang
13.07
KB
-rw-r--r--
sql.lang
24.71
KB
-rw-r--r--
star.lang
3.57
KB
-rw-r--r--
sweave.lang
2.18
KB
-rw-r--r--
swift.lang
16.21
KB
-rw-r--r--
systemverilog.lang
8.6
KB
-rw-r--r--
t2t.lang
5.21
KB
-rw-r--r--
tcl.lang
4.46
KB
-rw-r--r--
tera.lang
5.12
KB
-rw-r--r--
terraform.lang
15.23
KB
-rw-r--r--
texinfo.lang
15.23
KB
-rw-r--r--
thrift.lang
8.45
KB
-rw-r--r--
toml.lang
8.46
KB
-rw-r--r--
typescript-js-expressions.lang
7.5
KB
-rw-r--r--
typescript-js-functions-classes.lang
23.42
KB
-rw-r--r--
typescript-js-literals.lang
5.05
KB
-rw-r--r--
typescript-js-modules.lang
9.94
KB
-rw-r--r--
typescript-js-statements.lang
17.81
KB
-rw-r--r--
typescript-jsx.lang
6.52
KB
-rw-r--r--
typescript.lang
38.59
KB
-rw-r--r--
typescript-type-expressions.lang
19.39
KB
-rw-r--r--
typescript-type-generics.lang
8.56
KB
-rw-r--r--
typescript-type-literals.lang
13.83
KB
-rw-r--r--
vala.lang
13.04
KB
-rw-r--r--
vbnet.lang
7.78
KB
-rw-r--r--
verilog.lang
15.54
KB
-rw-r--r--
vhdl.lang
7.68
KB
-rw-r--r--
xml.lang
9.23
KB
-rw-r--r--
xslt.lang
3.83
KB
-rw-r--r--
yacc.lang
5.65
KB
-rw-r--r--
yaml.lang
8.71
KB
-rw-r--r--
yara.lang
6.31
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : javascript-expressions.lang
<?xml version="1.0" encoding="UTF-8"?> <!-- This file is part of GtkSourceView Author: Scott Martin <scott@coffeeblack.org> Copyright (C) 2004 Scott Martin <scott@coffeeblack.org> Copyright (C) 2005 Stef Walter (formerly Nate Nielsen) <stef@memberwebs.com> Copyright (C) 2005-2007 Marco Barisione <barisione@gmail.com> Copyright (C) 2005-2007 Emanuele Aina Copyright (C) 2019-2020 Jeffery To <jeffery.to@gmail.com> GtkSourceView is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. GtkSourceView is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see <http://www.gnu.org/licenses/>. --> <language id="js-expr" name="JavaScript Expressions" version="2.0" _section="Script" hidden="true"> <!-- from js:identifier-char --> <keyword-char-class>(?!\x{2E2F})[\p{L}\p{Nl}\x{1885}-\x{1886}\x{2118}\x{212E}\x{309B}-\x{309C}\p{Mn}\p{Mc}\p{Nd}\p{Pc}\x{00B7}\x{0387}\x{1369}-\x{1371}\x{19DA}$\x{200C}\x{200D}]</keyword-char-class> <definitions> <!-- See javascript.lang for general notes, naming conventions, etc. --> <!-- Expression / context structure: left-hand side (lhs) expression: Array () ===== == / \ primary post-primary expression expression expression: - obj.count + 1 = ========= === / | \ pre-lhs lhs post-lhs expression expression expression --> <!-- # "import" expression import("module") import.meta --> <!-- a consequence of this is that "import" by itself (when used as a primary expression) will not be highlighted as an error --> <!-- ES2020 --> <!-- <ImportCall> (part of) --> <context id="_choice-import-call-expression" end-parent="true"> <start>\(</start> <end>\)</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_import-call-expression-content"> <include> <context ref="expression-without-comma"/> </include> </context> <!-- /_import-call-expression-content --> </include> </context> <!-- /_choice-import-call-expression --> <!-- ES2020 --> <!-- <ImportMeta> (part of) --> <context id="_choice-import-meta-expression" end-parent="true"> <start>\.</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:keyword"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_import-meta-expression-content"> <include> <context id="_import-meta-expression-keyword" style-ref="js:keyword" once-only="true"> <match>\%{js:meta-keyword}</match> </context> <!-- /_import-meta-expression-keyword --> </include> </context> <!-- /_import-meta-expression-content --> </include> </context> <!-- /_choice-import-meta-expression --> <context id="_choice-import-expression" end-parent="true"> <start>\%{js:import-keyword}</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:keyword"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_import-expression-content"> <include> <context ref="_choice-import-call-expression"/> <context ref="_choice-import-meta-expression"/> </include> </context> <!-- /_import-expression-content --> </include> </context> <!-- /_choice-import-expression --> <!-- # "new" expression new Array() new.target --> <!-- <NewTarget> (part of) --> <context id="_choice-new-target-expression" end-parent="true"> <start>\.</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:keyword"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_new-target-expression-content"> <include> <context id="_new-target-expression-keyword" style-ref="js:keyword" once-only="true"> <match>\%{js:target-keyword}</match> </context> <!-- /_new-target-expression-keyword --> </include> </context> <!-- /_new-target-expression-content --> </include> </context> <!-- /_choice-new-target-expression --> <context id="_choice-new-object-expression" end-parent="true"> <start>\%{js:before-next-token}</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_new-object-expression-content"> <include> <context ref="_primary-expression"/> </include> </context> <!-- /_new-object-expression-content --> </include> </context> <!-- /_choice-new-object-expression --> <context id="_choice-new-expression" end-parent="true"> <start>\%{js:new-keyword}</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:keyword"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_new-expression-content"> <include> <context ref="_choice-new-target-expression"/> <context ref="_choice-new-object-expression"/> </include> </context> <!-- /_new-expression-content --> </include> </context> <!-- /_choice-new-expression --> <!-- # Grouping / arrow function parameters (2 + 3) * 4 (x, y) => x + y (x, ...rest) => { return rest; } --> <!-- doing it this way, instead of using expression-with-comma, will make later augmentation easier --> <context id="_grouping-item-content"> <include> <context ref="js:ordered-rest-syntax"/> <context ref="expression-without-comma"/> </include> </context> <!-- /_grouping-item-content --> <!-- <CoverParenthesizedExpressionAndArrowParameterList> --> <context id="_choice-grouping" style-ref="js:grouping" end-parent="true"> <start>\(</start> <end>\)</end> <include> <context sub-pattern="0" where="start" style-ref="js:grouping-operator"/> <context sub-pattern="0" where="end" style-ref="js:grouping-operator"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_grouping-content"> <include> <context id="_grouping-first-item" once-only="true"> <start>\%{js:before-next-token}</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context ref="_grouping-item-content"/> </include> </context> <!-- /_grouping-first-item --> <context id="_grouping-items"> <start>,</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context ref="_grouping-item-content"/> </include> </context> <!-- /_grouping-items --> </include> </context> <!-- /_grouping-content --> </include> </context> <!-- /_choice-grouping --> <!-- # Primary expression this Array 'string' 100 ( ... ) [ 1, 2, 3 ] function () { ... } /regex/ `template` --> <!-- <PrimaryExpression> --> <context id="_primary-expression" once-only="true"> <start>\%{js:before-next-token}</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_primary-expression-content"> <include> <context ref="js-lit:choice-array-literal"/> <context ref="js-lit:choice-object-literal"/> <context ref="js-lit:choice-regular-expression-literal"/> <context ref="js-lit:choice-template-literal"/> <context ref="js-fn:choice-function-expression"/> <context ref="js-fn:choice-class-expression"/> <context ref="_choice-import-expression"/> <context ref="_choice-new-expression"/> <context ref="_choice-grouping"/> <context ref="js-lit:choice-number"/> <context ref="js-lit:choice-string"/> <context id="_choice-primary-expression-identifier" end-parent="true"> <start>\%{js:identifier-container-start}</start> <end>\%{def:always-match}</end> <include> <!-- no embedded-lang-hooks here --> <!-- no comments here --> <!-- do not extend the context by matching comments or embedded-lang-hooks, which may lead to multiple identifiers --> <context id="_primary-expression-identifier-content"> <include> <!-- technically these would be choices, but it would be very difficult to turn large keyword contexts into container contexts with end-parent="true" --> <context ref="js-lit:null-value"/> <context ref="js-lit:boolean"/> <context ref="js-val:global-values"/> <context ref="js:identifier"/> </include> </context> <!-- /_primary-expression-identifier-content --> </include> </context> <!-- /_choice-primary-expression-identifier --> </include> </context> <!-- /_primary-expression-content --> </include> </context> <!-- /_primary-expression --> <context id="_ordered-primary-expression" once-only="true"> <start>\%{js:before-next-token}</start> <end>\%{js:before-next-token}</end> <include> <context ref="_primary-expression"/> </include> </context> <!-- /_ordered-primary-expression --> <!-- # Function call (in an expression, function arguments list after primary value) fn() fn(a, b, ...list) --> <context id="_function-arguments-content"> <include> <context ref="js:ordered-spread-syntax"/> <context ref="expression-without-comma"/> </include> </context> <!-- /_function-arguments-content --> <!-- <Arguments> --> <context id="_function-arguments-lists"> <start>\(</start> <end>\)</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_function-arguments-list-content"> <include> <context id="_function-first-argument" once-only="true"> <start>\%{js:before-next-token}</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context ref="_function-arguments-content"/> </include> </context> <!-- /_function-first-argument --> <context id="_function-arguments"> <start>,</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context ref="_function-arguments-content"/> </include> </context> <!-- /_function-arguments --> </include> </context> <!-- /_function-arguments-list-content --> </include> </context> <!-- /_function-arguments-lists --> <!-- # Post-primary expression obj.property obj['property'] fn() tag`template` obj?.property obj?.[expr] func?.() --> <context id="_choice-property-identifier" end-parent="true"> <start>\%{js:identifier-container-start}</start> <end>\%{def:always-match}</end> <include> <!-- no embedded-lang-hooks here --> <!-- no comments here --> <!-- do not extend the context by matching comments or embedded-lang-hooks, which may lead to multiple identifiers --> <context id="_property-identifier-content"> <include> <!-- technically these would be choices, but it would be very difficult to turn large keyword contexts into container contexts with end-parent="true" --> <context ref="js-val:properties-methods"/> <context ref="js:identifier-name"/> </include> </context> <!-- /_property-identifier-content --> </include> </context> <!-- /_choice-property-identifier --> <context id="_post-primary-expression"> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <!-- <MemberExpression> (part of) --> <context id="_dot-property-accessors"> <start>\.(?!\.)</start> <!-- avoid matching rest/spread syntax --> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_dot-property-accessor-content"> <include> <context ref="_choice-property-identifier"/> </include> </context> <!-- /_dot-property-accessor-content --> </include> </context> <!-- /_dot-property-accessors --> <!-- <MemberExpression> (part of) --> <context id="_bracket-property-accessors"> <start>\[</start> <end>]</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_bracket-property-accessor-content"> <include> <context ref="expression-with-comma"/> </include> </context> <!-- /_bracket-property-accessor-content --> </include> </context> <!-- /_bracket-property-accessors --> <!-- ES2020 --> <!-- <OptionalChain> (part of) --> <context id="_optional-chains"> <start>\?\.(?![0-9])</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_optional-chain-content"> <include> <!-- only match dot-property accessor content here this context will end early for other cases --> <context ref="_choice-property-identifier"/> </include> </context> <!-- /_optional-chain-content --> </include> </context> <!-- /_optional-chains --> <context ref="_function-arguments-lists"/> <context ref="js-lit:template-literals"/> </include> </context> <!-- /_post-primary-expression --> <context id="_ordered-post-primary-expression" once-only="true"> <start>\%{js:before-next-token}</start> <end>\%{js:before-next-token}</end> <include> <context ref="_post-primary-expression"/> </include> </context> <!-- /_ordered-post-primary-expression --> <!-- # Increment / decrement operators --> <!-- shared between pre- and post-lhs expressions --> <context id="_increment-decrement-operators" style-ref="js:increment-decrement-operator"> <match>\+\+|--</match> </context> <!-- /_increment-decrement-operators --> <!-- # Pre-LHS expression --> <context id="_pre-lhs-expression"> <include> <context ref="js:embedded-lang-hooks"/> <context ref="_increment-decrement-operators"/> <!-- ES2017, cannot be followed by line terminator --> <context id="_async-keywords" style-ref="js:keyword"> <match extended="true"> \%{js:async-keyword} # preceeds arrow function (?= \%{js:optional-whitespace-or-comments} (?: \%{js:identifier} \%{js:optional-whitespace-or-comments} => | \( # can this be better? ) ) # does not preceed "function" (leave to function expression) (?! \%{js:optional-whitespace-or-comments} \%{js:function-keyword} ) </match> </context> <!-- /_async-keywords --> <!-- await: ES2017 --> <context id="_keyword-unary-operators" style-ref="js:keyword"> <match extended="true"> \%{js:await-keyword} | \%{js:delete-keyword} | \%{js:typeof-keyword} | \%{js:void-keyword} | \%{js:yield-keyword} </match> </context> <!-- /_keyword-unary-operators --> <context ref="js:generator-modifier"/> <!-- for yield* --> <context id="_unary-operators" style-ref="js:unary-operator"> <match extended="true"> \+ | # unary plus - | # unary negation ~ | # bitwise not ! # logical not </match> </context> <!-- /_unary-operators --> </include> </context> <!-- /_pre-lhs-expression --> <context id="_ordered-pre-lhs-expression" once-only="true"> <start>\%{js:before-next-token}</start> <end>\%{js:before-next-token}</end> <include> <context ref="_pre-lhs-expression"/> </include> </context> <!-- /_ordered-pre-lhs-expression --> <!-- # Left-hand side expression this new Array 'string'.length fn.apply() list[1] tag`template` --> <define-regex id="_expression-start" extended="true"> (?= \%{js:not-whitespace} ) (?= [^:;\])}] ) (?! /[/*] ) </define-regex> <!-- /_expression-start --> <!-- <LeftHandSideExpression> --> <context id="lhs-expression" style-ref="js:expression" once-only="true"> <start>\%{_expression-start}</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_lhs-expression-content"> <include> <context ref="_ordered-primary-expression"/> <context ref="_ordered-post-primary-expression"/> </include> </context> <!-- /_lhs-expression-content --> </include> </context> <!-- /lhs-expression --> <!-- # Ternary operator --> <context id="_choice-ternary-operator-missing-true-expression" end-parent="true"> <start>(?=:)</start> <end>\%{def:always-match}</end> </context> <!-- /_choice-ternary-operator-missing-true-expression --> <!-- ## Without comma --> <context id="_ternary-operator-without-comma-false-expression" once-only="true"> <start>:</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:ternary-operator"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_ternary-operator-without-comma-false-expression-content"> <include> <context ref="expression-without-comma"/> </include> </context> <!-- /_ternary-operator-without-comma-false-expression-content --> </include> </context> <!-- /_ternary-operator-without-comma-false-expression --> <context id="_choice-ternary-operator-without-comma-true-expression" end-parent="true"> <start>\%{js:before-next-token}</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_ternary-operator-without-comma-true-expression-content"> <include> <context ref="expression-without-comma"/> <context ref="_ternary-operator-without-comma-false-expression"/> </include> </context> <!-- /_ternary-operator-without-comma-true-expression-content --> </include> </context> <!-- /_choice-ternary-operator-without-comma-true-expression --> <context id="_ternary-operators-without-comma"> <start>\?</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:ternary-operator"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_ternary-operator-without-comma-content"> <include> <context ref="_choice-ternary-operator-missing-true-expression"/> <context ref="_choice-ternary-operator-without-comma-true-expression"/> </include> </context> <!-- /_ternary-operator-without-comma-content --> </include> </context> <!-- /_ternary-operators-without-comma --> <!-- ## With comma --> <context id="_ternary-operator-with-comma-false-expression" once-only="true"> <start>:</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:ternary-operator"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_ternary-operator-with-comma-false-expression-content"> <include> <context ref="expression-with-comma"/> </include> </context> <!-- /_ternary-operator-with-comma-false-expression-content --> </include> </context> <!-- /_ternary-operator-with-comma-false-expression --> <context id="_choice-ternary-operator-with-comma-true-expression" end-parent="true"> <start>\%{js:before-next-token}</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_ternary-operator-with-comma-true-expression-content"> <include> <context ref="expression-without-comma"/> <!-- comma not allowed --> <context ref="_ternary-operator-with-comma-false-expression"/> </include> </context> <!-- /_ternary-operator-with-comma-true-expression-content --> </include> </context> <!-- /_choice-ternary-operator-with-comma-true-expression --> <context id="_ternary-operators-with-comma"> <start>\?</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:ternary-operator"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_ternary-operator-with-comma-content"> <include> <context ref="_choice-ternary-operator-missing-true-expression"/> <context ref="_choice-ternary-operator-with-comma-true-expression"/> </include> </context> <!-- /_ternary-operator-with-comma-content --> </include> </context> <!-- /_ternary-operators-with-comma --> <!-- # Binary operators --> <define-regex id="_keyword-binary-operator" extended="true"> \%{js:instanceof-keyword} | \%{js:in-keyword} </define-regex> <!-- /_keyword-binary-operator --> <!-- excluding comma operator --> <define-regex id="_binary-operator" extended="true"> \*\* =? | # exponentiation (assignment) (ES2016) [+/*%-] =? | # arithmetic (assignment) [!=]==? | # equality && | \|\| | # logical \?\? | # nullish coalescing (ES2020) [&|^] =? | # bitwise logical (assignment) (?: << | >>>? ) =? | # bitwise shift (assignment) [<>]=? | # relational = # assignment </define-regex> <!-- /_binary-operator --> <!-- ## Without comma --> <context id="_keyword-binary-operators-without-comma"> <start>\%{_keyword-binary-operator}</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:keyword"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_keyword-binary-operator-without-comma-content"> <include> <context ref="expression-without-comma"/> </include> </context> <!-- /_keyword-binary-operator-without-comma-content --> </include> </context> <!-- /_keyword-binary-operators-without-comma --> <context id="_binary-operators-without-comma"> <start>\%{_binary-operator}</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:binary-operator"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_binary-operator-without-comma-content"> <include> <context ref="expression-without-comma"/> </include> </context> <!-- /_binary-operator-without-comma-content --> </include> </context> <!-- /_binary-operators-without-comma --> <!-- ## With comma --> <context id="_keyword-binary-operators-with-comma"> <start>\%{_keyword-binary-operator}</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:keyword"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_keyword-binary-operator-with-comma-content"> <include> <context ref="expression-with-comma"/> </include> </context> <!-- /_keyword-binary-operator-with-comma-content --> </include> </context> <!-- /_keyword-binary-operators-with-comma --> <context id="_binary-operators-with-comma"> <start>\%{_binary-operator}|,</start> <end>\%{js:before-next-token}</end> <include> <context sub-pattern="0" where="start" style-ref="js:binary-operator"/> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context id="_binary-operator-with-comma-content"> <include> <context ref="expression-with-comma"/> </include> </context> <!-- /_binary-operator-with-comma-content --> </include> </context> <!-- /_binary-operators-with-comma --> <!-- # Post-LHS expression --> <!-- ## Without comma --> <context id="_post-lhs-expression-without-comma"> <include> <context ref="js:embedded-lang-hooks"/> <context ref="_increment-decrement-operators"/> <context ref="js-fn:arrow-functions"/> <context ref="_keyword-binary-operators-without-comma"/> <context ref="_binary-operators-without-comma"/> <context ref="_ternary-operators-without-comma"/> </include> </context> <!-- /_post-lhs-expression-without-comma --> <context id="_ordered-post-lhs-expression-without-comma" once-only="true"> <start>\%{js:before-next-token}</start> <end>\%{js:before-next-token}</end> <include> <context ref="_post-lhs-expression-without-comma"/> </include> </context> <!-- /_ordered-post-lhs-expression-without-comma --> <!-- ## With comma --> <context id="_post-lhs-expression-with-comma"> <include> <context ref="js:embedded-lang-hooks"/> <context ref="_increment-decrement-operators"/> <context ref="js-fn:arrow-functions"/> <context ref="_keyword-binary-operators-with-comma"/> <context ref="_binary-operators-with-comma"/> <context ref="_ternary-operators-with-comma"/> </include> </context> <!-- /_post-lhs-expression-with-comma --> <context id="_ordered-post-lhs-expression-with-comma" once-only="true"> <start>\%{js:before-next-token}</start> <end>\%{js:before-next-token}</end> <include> <context ref="_post-lhs-expression-with-comma"/> </include> </context> <!-- /_ordered-post-lhs-expression-with-comma --> <!-- # Expression 2 + 3 - 1 true ? doThis() : doThat() --> <!-- ## Without comma --> <context id="_expression-without-comma-content"> <include> <context ref="_ordered-pre-lhs-expression"/> <context ref="_lhs-expression-content"/> <context ref="_ordered-post-lhs-expression-without-comma"/> </include> </context> <!-- /_expression-without-comma-content --> <!-- <AssignmentExpression> --> <context id="expression-without-comma" style-ref="js:expression" once-only="true"> <start>\%{_expression-start}(?!,)</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context ref="_expression-without-comma-content"/> </include> </context> <!-- /expression-without-comma --> <!-- <AssignmentExpression> --> <context id="choice-expression-without-comma" style-ref="js:expression" end-parent="true"> <start>\%{_expression-start}(?!,)</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context ref="_expression-without-comma-content"/> </include> </context> <!-- /choice-expression-without-comma --> <!-- ## With comma --> <context id="_expression-with-comma-content"> <include> <context ref="_ordered-pre-lhs-expression"/> <context ref="_lhs-expression-content"/> <context ref="_ordered-post-lhs-expression-with-comma"/> </include> </context> <!-- /_expression-with-comma-content --> <!-- <Expression> --> <context id="expression-with-comma" style-ref="js:expression" once-only="true"> <start>\%{_expression-start}</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context ref="_expression-with-comma-content"/> </include> </context> <!-- /expression-with-comma --> <!-- <Expression> --> <context id="choice-expression-with-comma" style-ref="js:expression" end-parent="true"> <start>\%{_expression-start}</start> <end>\%{js:before-next-token}</end> <include> <context ref="js:embedded-lang-hooks"/> <context ref="js:comments"/> <context ref="_expression-with-comma-content"/> </include> </context> <!-- /choice-expression-with-comma --> </definitions> </language>
Close