@agoric/xsnap 0.14.3-u13.0 → 0.14.3-u16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/api.js +4 -2
- package/build.env +1 -1
- package/moddable/modules/data/base64/base64.js +28 -0
- package/moddable/modules/data/base64/manifest.json +11 -0
- package/moddable/modules/data/base64/modBase64.c +188 -0
- package/moddable/modules/data/binaryMessage/BinaryMessage.js +106 -0
- package/moddable/modules/data/crc/crc.c +205 -0
- package/moddable/modules/data/crc/crc.js +36 -0
- package/moddable/modules/data/crc/manifest.json +8 -0
- package/moddable/modules/data/hex/hex.js +28 -0
- package/moddable/modules/data/hex/manifest.json +11 -0
- package/moddable/modules/data/hex/modHex.c +139 -0
- package/moddable/modules/data/logical/logical.js +32 -0
- package/moddable/modules/data/logical/modLogical.c +98 -0
- package/moddable/modules/data/qrcode/manifest.json +9 -0
- package/moddable/modules/data/qrcode/qrcode.c +93 -0
- package/moddable/modules/data/qrcode/qrcode.js +23 -0
- package/moddable/modules/data/qrcode/qrcodegen.c +1025 -0
- package/moddable/modules/data/qrcode/qrcodegen.h +267 -0
- package/moddable/modules/data/text/decoder/manifest.json +8 -0
- package/moddable/modules/data/text/decoder/textdecoder.c +480 -0
- package/moddable/modules/data/text/decoder/textdecoder.js +27 -0
- package/moddable/modules/data/text/encoder/manifest.json +8 -0
- package/moddable/modules/data/text/encoder/textencoder.c +232 -0
- package/moddable/modules/data/text/encoder/textencoder.js +24 -0
- package/moddable/modules/data/tinyint/tinyint.c +150 -0
- package/moddable/modules/data/tinyint/tinyint.js +53 -0
- package/moddable/modules/data/url/manifest.json +17 -0
- package/moddable/modules/data/url/url.c +1959 -0
- package/moddable/modules/data/url/url.js +210 -0
- package/moddable/modules/data/wavreader/manifest.json +8 -0
- package/moddable/modules/data/wavreader/wavreader.js +128 -0
- package/moddable/modules/data/zlib/deflate.c +161 -0
- package/moddable/modules/data/zlib/deflate.js +63 -0
- package/moddable/modules/data/zlib/inflate.c +145 -0
- package/moddable/modules/data/zlib/inflate.js +66 -0
- package/moddable/modules/data/zlib/manifest_deflate.json +9 -0
- package/moddable/modules/data/zlib/manifest_inflate.json +9 -0
- package/moddable/modules/data/zlib/miniz.c +4924 -0
- package/moddable/xs/includes/xs.d.ts +73 -0
- package/moddable/xs/includes/xs.h +1533 -0
- package/moddable/xs/includes/xsmc.h +206 -0
- package/moddable/xs/makefiles/lin/makefile +33 -0
- package/moddable/xs/makefiles/lin/xsc.mk +118 -0
- package/moddable/xs/makefiles/lin/xsid.mk +90 -0
- package/moddable/xs/makefiles/lin/xsl.mk +168 -0
- package/moddable/xs/makefiles/lin/xst.mk +201 -0
- package/moddable/xs/makefiles/mac/makefile +33 -0
- package/moddable/xs/makefiles/mac/xsc.mk +130 -0
- package/moddable/xs/makefiles/mac/xsid.mk +102 -0
- package/moddable/xs/makefiles/mac/xsl.mk +177 -0
- package/moddable/xs/makefiles/mac/xst.mk +203 -0
- package/moddable/xs/makefiles/mac/xst_no_asan.txt +52 -0
- package/moddable/xs/makefiles/win/build.bat +26 -0
- package/moddable/xs/makefiles/win/xsc.mak +142 -0
- package/moddable/xs/makefiles/win/xsid.mak +113 -0
- package/moddable/xs/makefiles/win/xsl.mak +186 -0
- package/moddable/xs/makefiles/win/xst.mak +195 -0
- package/moddable/xs/platforms/lin_xs.h +99 -0
- package/moddable/xs/platforms/mac_xs.h +97 -0
- package/moddable/xs/platforms/wasm_xs.h +79 -0
- package/moddable/xs/platforms/win_xs.h +104 -0
- package/moddable/xs/platforms/xsHost.h +63 -0
- package/moddable/xs/platforms/xsPlatform.h +618 -0
- package/moddable/xs/sources/xsAPI.c +2555 -0
- package/moddable/xs/sources/xsAll.c +294 -0
- package/moddable/xs/sources/xsAll.h +2741 -0
- package/moddable/xs/sources/xsArguments.c +222 -0
- package/moddable/xs/sources/xsArray.c +2657 -0
- package/moddable/xs/sources/xsAtomics.c +844 -0
- package/moddable/xs/sources/xsBigInt.c +1859 -0
- package/moddable/xs/sources/xsBoolean.c +109 -0
- package/moddable/xs/sources/xsCode.c +4493 -0
- package/moddable/xs/sources/xsCommon.c +1710 -0
- package/moddable/xs/sources/xsCommon.h +1142 -0
- package/moddable/xs/sources/xsDataView.c +2890 -0
- package/moddable/xs/sources/xsDate.c +1541 -0
- package/moddable/xs/sources/xsDebug.c +2710 -0
- package/moddable/xs/sources/xsDefaults.c +134 -0
- package/moddable/xs/sources/xsError.c +353 -0
- package/moddable/xs/sources/xsFunction.c +776 -0
- package/moddable/xs/sources/xsGenerator.c +865 -0
- package/moddable/xs/sources/xsGlobal.c +839 -0
- package/moddable/xs/sources/xsJSON.c +1091 -0
- package/moddable/xs/sources/xsLexical.c +1969 -0
- package/moddable/xs/sources/xsLockdown.c +933 -0
- package/moddable/xs/sources/xsMapSet.c +1649 -0
- package/moddable/xs/sources/xsMarshall.c +1020 -0
- package/moddable/xs/sources/xsMath.c +624 -0
- package/moddable/xs/sources/xsMemory.c +1941 -0
- package/moddable/xs/sources/xsModule.c +3101 -0
- package/moddable/xs/sources/xsNumber.c +560 -0
- package/moddable/xs/sources/xsObject.c +1102 -0
- package/moddable/xs/sources/xsPlatforms.c +480 -0
- package/moddable/xs/sources/xsProfile.c +577 -0
- package/moddable/xs/sources/xsPromise.c +1199 -0
- package/moddable/xs/sources/xsProperty.c +636 -0
- package/moddable/xs/sources/xsProxy.c +1014 -0
- package/moddable/xs/sources/xsRegExp.c +1168 -0
- package/moddable/xs/sources/xsRun.c +4889 -0
- package/moddable/xs/sources/xsScope.c +1293 -0
- package/moddable/xs/sources/xsScript.c +288 -0
- package/moddable/xs/sources/xsScript.h +1186 -0
- package/moddable/xs/sources/xsSnapshot.c +2161 -0
- package/moddable/xs/sources/xsSnapshot.h +51 -0
- package/moddable/xs/sources/xsSourceMap.c +218 -0
- package/moddable/xs/sources/xsString.c +3332 -0
- package/moddable/xs/sources/xsSymbol.c +503 -0
- package/moddable/xs/sources/xsSyntaxical.c +4193 -0
- package/moddable/xs/sources/xsTree.c +1893 -0
- package/moddable/xs/sources/xsType.c +1488 -0
- package/moddable/xs/sources/xsdtoa.c +6672 -0
- package/moddable/xs/sources/xsmc.c +340 -0
- package/moddable/xs/sources/xsre.c +7578 -0
- package/package.json +39 -22
- package/scripts/get_xsnap_version.sh +14 -0
- package/scripts/test-package.sh +21 -0
- package/src/avaAssertXS.js +6 -2
- package/src/avaHandler.cjs +2 -5
- package/src/avaXS.js +7 -8
- package/src/build.js +161 -28
- package/src/replay.js +0 -3
- package/src/xsnap.js +105 -91
- package/src/xsrepl.js +2 -3
- package/xsnap-native/xsnap/makefiles/lin/makefile +10 -0
- package/xsnap-native/xsnap/makefiles/lin/xsnap-worker.mk +156 -0
- package/xsnap-native/xsnap/makefiles/lin/xsnap.mk +144 -0
- package/xsnap-native/xsnap/makefiles/mac/makefile +10 -0
- package/xsnap-native/xsnap/makefiles/mac/xsnap-worker.mk +165 -0
- package/xsnap-native/xsnap/makefiles/mac/xsnap.mk +153 -0
- package/xsnap-native/xsnap/sources/xsnap-worker.c +1008 -0
- package/xsnap-native/xsnap/sources/xsnap.c +717 -0
- package/xsnap-native/xsnap/sources/xsnap.h +142 -0
- package/xsnap-native/xsnap/sources/xsnapPlatform.c +1501 -0
- package/xsnap-native/xsnap/sources/xsnapPlatform.h +105 -0
- package/CHANGELOG.md +0 -646
|
@@ -0,0 +1,1893 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2017 Moddable Tech, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of the Moddable SDK Runtime.
|
|
5
|
+
*
|
|
6
|
+
* The Moddable SDK Runtime is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* The Moddable SDK Runtime is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Lesser General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
17
|
+
* along with the Moddable SDK Runtime. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
+
*
|
|
19
|
+
* This file incorporates work covered by the following copyright and
|
|
20
|
+
* permission notice:
|
|
21
|
+
*
|
|
22
|
+
* Copyright (C) 2010-2016 Marvell International Ltd.
|
|
23
|
+
* Copyright (C) 2002-2010 Kinoma, Inc.
|
|
24
|
+
*
|
|
25
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
26
|
+
* you may not use this file except in compliance with the License.
|
|
27
|
+
* You may obtain a copy of the License at
|
|
28
|
+
*
|
|
29
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
30
|
+
*
|
|
31
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
32
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
33
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
34
|
+
* See the License for the specific language governing permissions and
|
|
35
|
+
* limitations under the License.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
#include "xsScript.h"
|
|
39
|
+
|
|
40
|
+
//#define mxTreePrint 1
|
|
41
|
+
|
|
42
|
+
#ifdef mxTreePrint
|
|
43
|
+
typedef struct {
|
|
44
|
+
txInteger tabs;
|
|
45
|
+
} txPrinter;
|
|
46
|
+
#endif
|
|
47
|
+
|
|
48
|
+
static void fxNodeDistribute(void* it, txNodeCall call, void* param);
|
|
49
|
+
|
|
50
|
+
static void fxCheckFunction(txParser* parser);
|
|
51
|
+
static void fxCheckGenerator(txParser* parser);
|
|
52
|
+
|
|
53
|
+
static void fxArrayNodeDistribute(void* it, txNodeCall call, void* param);
|
|
54
|
+
static void fxArrayBindingNodeDistribute(void* it, txNodeCall call, void* param);
|
|
55
|
+
static void fxAssignNodeDistribute(void* it, txNodeCall call, void* param);
|
|
56
|
+
static void fxBinaryExpressionNodeDistribute(void* it, txNodeCall call, void* param);
|
|
57
|
+
static void fxBindingNodeDistribute(void* it, txNodeCall call, void* param);
|
|
58
|
+
static void fxBlockNodeDistribute(void* it, txNodeCall call, void* param);
|
|
59
|
+
static void fxBodyNodeDistribute(void* it, txNodeCall call, void* param);
|
|
60
|
+
static void fxCallNewNodeDistribute(void* it, txNodeCall call, void* param);
|
|
61
|
+
static void fxCaseNodeDistribute(void* it, txNodeCall call, void* param);
|
|
62
|
+
static void fxCatchNodeDistribute(void* it, txNodeCall call, void* param);
|
|
63
|
+
static void fxClassNodeDistribute(void* it, txNodeCall call, void* param);
|
|
64
|
+
static void fxDeleteNodeDistribute(void* it, txNodeCall call, void* param);
|
|
65
|
+
static void fxDoNodeDistribute(void* it, txNodeCall call, void* param);
|
|
66
|
+
static void fxExportNodeDistribute(void* it, txNodeCall call, void* param);
|
|
67
|
+
static void fxExpressionsNodeDistribute(void* it, txNodeCall call, void* param);
|
|
68
|
+
static void fxFieldNodeDistribute(void* it, txNodeCall call, void* param);
|
|
69
|
+
static void fxFunctionNodeDistribute(void* it, txNodeCall call, void* param);
|
|
70
|
+
static void fxForNodeDistribute(void* it, txNodeCall call, void* param);
|
|
71
|
+
static void fxForInForOfNodeDistribute(void* it, txNodeCall call, void* param);
|
|
72
|
+
static void fxIfNodeDistribute(void* it, txNodeCall call, void* param);
|
|
73
|
+
static void fxImportNodeDistribute(void* it, txNodeCall call, void* param);
|
|
74
|
+
static void fxIncludeNodeDistribute(void* it, txNodeCall call, void* param);
|
|
75
|
+
static void fxLabelNodeDistribute(void* it, txNodeCall call, void* param);
|
|
76
|
+
static void fxMemberNodeDistribute(void* it, txNodeCall call, void* param);
|
|
77
|
+
static void fxMemberAtNodeDistribute(void* it, txNodeCall call, void* param);
|
|
78
|
+
static void fxModuleNodeDistribute(void* it, txNodeCall call, void* param);
|
|
79
|
+
static void fxObjectNodeDistribute(void* it, txNodeCall call, void* param);
|
|
80
|
+
static void fxObjectBindingNodeDistribute(void* it, txNodeCall call, void* param);
|
|
81
|
+
static void fxParamsNodeDistribute(void* it, txNodeCall call, void* param);
|
|
82
|
+
static void fxParamsBindingNodeDistribute(void* it, txNodeCall call, void* param);
|
|
83
|
+
static void fxPostfixExpressionNodeDistribute(void* it, txNodeCall call, void* param);
|
|
84
|
+
static void fxProgramNodeDistribute(void* it, txNodeCall call, void* param);
|
|
85
|
+
static void fxPropertyNodeDistribute(void* it, txNodeCall call, void* param);
|
|
86
|
+
static void fxPropertyAtNodeDistribute(void* it, txNodeCall call, void* param);
|
|
87
|
+
static void fxPropertyBindingNodeDistribute(void* it, txNodeCall call, void* param);
|
|
88
|
+
static void fxPropertyBindingAtNodeDistribute(void* it, txNodeCall call, void* param);
|
|
89
|
+
static void fxQuestionMarkNodeDistribute(void* it, txNodeCall call, void* param);
|
|
90
|
+
static void fxRegexpNodeDistribute(void* it, txNodeCall call, void* param);
|
|
91
|
+
static void fxRestBindingNodeDistribute(void* it, txNodeCall call, void* param);
|
|
92
|
+
static void fxReturnNodeDistribute(void* it, txNodeCall call, void* param);
|
|
93
|
+
static void fxSpreadNodeDistribute(void* it, txNodeCall call, void* param);
|
|
94
|
+
static void fxStatementNodeDistribute(void* it, txNodeCall call, void* param);
|
|
95
|
+
static void fxStatementsNodeDistribute(void* it, txNodeCall call, void* param);
|
|
96
|
+
static void fxSuperNodeDistribute(void* it, txNodeCall call, void* param);
|
|
97
|
+
static void fxSwitchNodeDistribute(void* it, txNodeCall call, void* param);
|
|
98
|
+
static void fxTemplateNodeDistribute(void* it, txNodeCall call, void* param);
|
|
99
|
+
static void fxTryNodeDistribute(void* it, txNodeCall call, void* param);
|
|
100
|
+
static void fxUnaryExpressionNodeDistribute(void* it, txNodeCall call, void* param);
|
|
101
|
+
static void fxWhileNodeDistribute(void* it, txNodeCall call, void* param);
|
|
102
|
+
static void fxWithNodeDistribute(void* it, txNodeCall call, void* param);
|
|
103
|
+
|
|
104
|
+
#ifdef mxTreePrint
|
|
105
|
+
static void fxTreePrint(txParser* parser, txNode* node);
|
|
106
|
+
|
|
107
|
+
static void fxNodePrintNode(void* it);
|
|
108
|
+
static void fxNodePrintTree(void* it, void* param);
|
|
109
|
+
|
|
110
|
+
static void fxAccessNodePrintNode(void* it);
|
|
111
|
+
static void fxDeclareDefineNodePrintNode(void* it);
|
|
112
|
+
static void fxExportNodePrintNode(void* it);
|
|
113
|
+
static void fxFunctionNodePrintNode(void* it);
|
|
114
|
+
static void fxImportNodePrintNode(void* it);
|
|
115
|
+
static void fxIntegerNodePrintNode(void* it);
|
|
116
|
+
static void fxLabelNodePrintNode(void* it);
|
|
117
|
+
static void fxMemberNodePrintNode(void* it);
|
|
118
|
+
static void fxNumberNodePrintNode(void* it);
|
|
119
|
+
static void fxPropertyNodePrintNode(void* it);
|
|
120
|
+
static void fxPropertyBindingNodePrintNode(void* it);
|
|
121
|
+
static void fxSpecifierNodePrintNode(void* it);
|
|
122
|
+
static void fxStringNodePrintNode(void* it);
|
|
123
|
+
#endif
|
|
124
|
+
|
|
125
|
+
void fxIncludeTree(txParser* parser, void* stream, txGetter getter, txUnsigned flags, txString path)
|
|
126
|
+
{
|
|
127
|
+
txParserJump jump;
|
|
128
|
+
txSymbol* symbol = parser->path;
|
|
129
|
+
jump.nextJump = parser->firstJump;
|
|
130
|
+
parser->firstJump = &jump;
|
|
131
|
+
if (c_setjmp(jump.jmp_buf) == 0) {
|
|
132
|
+
parser->path = fxNewParserSymbol(parser, path);
|
|
133
|
+
fxParserTree(parser, stream, getter, flags, C_NULL);
|
|
134
|
+
}
|
|
135
|
+
parser->firstJump = jump.nextJump;
|
|
136
|
+
parser->path = symbol;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
void fxCheckFunction(txParser* parser)
|
|
140
|
+
{
|
|
141
|
+
txNode* node = parser->root;
|
|
142
|
+
if (node->description->token == XS_TOKEN_PROGRAM) {
|
|
143
|
+
node = ((txProgramNode*)node)->body;
|
|
144
|
+
if (node->description->token == XS_TOKEN_STATEMENT) {
|
|
145
|
+
node = ((txStatementNode*)node)->expression;
|
|
146
|
+
if (node->description->token == XS_TOKEN_EXPRESSIONS) {
|
|
147
|
+
txNodeList* list = ((txExpressionsNode*)node)->items;
|
|
148
|
+
if (list->length == 1) {
|
|
149
|
+
node = list->first;
|
|
150
|
+
if (node->description->token == XS_TOKEN_FUNCTION)
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
fxReportParserError(parser, parser->line, "no function");
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
void fxCheckGenerator(txParser* parser)
|
|
160
|
+
{
|
|
161
|
+
txNode* node = parser->root;
|
|
162
|
+
if (node->description->token == XS_TOKEN_PROGRAM) {
|
|
163
|
+
node = ((txProgramNode*)node)->body;
|
|
164
|
+
if (node->description->token == XS_TOKEN_STATEMENT) {
|
|
165
|
+
node = ((txStatementNode*)node)->expression;
|
|
166
|
+
if (node->description->token == XS_TOKEN_EXPRESSIONS) {
|
|
167
|
+
txNodeList* list = ((txExpressionsNode*)node)->items;
|
|
168
|
+
if (list->length == 1) {
|
|
169
|
+
node = list->first;
|
|
170
|
+
if (node->description->token == XS_TOKEN_GENERATOR)
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
fxReportParserError(parser, parser->line, "no generator function");
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
void fxParserTree(txParser* parser, void* theStream, txGetter theGetter, txUnsigned flags, txString* name)
|
|
180
|
+
{
|
|
181
|
+
mxTryParser(parser) {
|
|
182
|
+
parser->stream = theStream;
|
|
183
|
+
parser->getter = theGetter;
|
|
184
|
+
parser->line = 1;
|
|
185
|
+
parser->flags = flags;
|
|
186
|
+
parser->modifier = parser->emptyString;
|
|
187
|
+
parser->string = parser->emptyString;
|
|
188
|
+
parser->line2 = 1;
|
|
189
|
+
parser->modifier2 = parser->emptyString;
|
|
190
|
+
parser->string2 = parser->emptyString;
|
|
191
|
+
|
|
192
|
+
parser->root = NULL;
|
|
193
|
+
|
|
194
|
+
parser->flags &= ~(mxEvalFlag | mxFunctionFlag | mxGeneratorFlag);
|
|
195
|
+
if (!(parser->flags & mxProgramFlag))
|
|
196
|
+
parser->flags |= mxStrictFlag | mxAsyncFlag;
|
|
197
|
+
fxGetNextCharacter(parser);
|
|
198
|
+
fxGetNextCharacter(parser);
|
|
199
|
+
if (parser->character == '#') {
|
|
200
|
+
fxGetNextCharacter(parser);
|
|
201
|
+
if (parser->character == '!') {
|
|
202
|
+
fxGetNextCharacter(parser);
|
|
203
|
+
while ((parser->character != (txU4)C_EOF) && (parser->character != 10) && (parser->character != 13) && (parser->character != 0x2028) && (parser->character != 0x2029)) {
|
|
204
|
+
fxGetNextCharacter(parser);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else
|
|
208
|
+
fxReportParserError(parser, parser->line, "invalid character %d", parser->character);
|
|
209
|
+
}
|
|
210
|
+
fxGetNextToken(parser);
|
|
211
|
+
if (parser->flags & mxProgramFlag) {
|
|
212
|
+
fxProgram(parser);
|
|
213
|
+
if (flags & mxFunctionFlag)
|
|
214
|
+
fxCheckFunction(parser);
|
|
215
|
+
else if (flags & mxGeneratorFlag)
|
|
216
|
+
fxCheckGenerator(parser);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
fxModule(parser);
|
|
220
|
+
}
|
|
221
|
+
parser->flags &= ~mxEvalFlag;
|
|
222
|
+
|
|
223
|
+
parser->flags |= flags & mxEvalFlag;
|
|
224
|
+
|
|
225
|
+
#ifdef mxTreePrint
|
|
226
|
+
fxTreePrint(parser, parser->root);
|
|
227
|
+
#endif
|
|
228
|
+
if ((parser->errorCount == 0) && name)
|
|
229
|
+
*name = parser->name;
|
|
230
|
+
}
|
|
231
|
+
mxCatchParser(parser) {
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
void fxNodeListDistribute(txNodeList* list, txNodeCall call, void* param)
|
|
236
|
+
{
|
|
237
|
+
txNode* item = list->first;
|
|
238
|
+
while (item) {
|
|
239
|
+
(*call)(item, param);
|
|
240
|
+
item = item->next;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
txAccessNode* fxAccessNodeNew(txParser* parser, txToken token, txSymbol* symbol)
|
|
245
|
+
{
|
|
246
|
+
txAccessNode* node = fxNewParserChunkClear(parser, sizeof(txAccessNode));
|
|
247
|
+
node->description = &gxTokenDescriptions[token];
|
|
248
|
+
node->symbol = symbol;
|
|
249
|
+
return node;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
txDeclareNode* fxDeclareNodeNew(txParser* parser, txToken token, txSymbol* symbol)
|
|
253
|
+
{
|
|
254
|
+
txDeclareNode* node = fxNewParserChunkClear(parser, sizeof(txDeclareNode));
|
|
255
|
+
node->description = &gxTokenDescriptions[token];
|
|
256
|
+
node->symbol = symbol;
|
|
257
|
+
return node;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
txDefineNode* fxDefineNodeNew(txParser* parser, txToken token, txSymbol* symbol)
|
|
261
|
+
{
|
|
262
|
+
txDefineNode* node = fxNewParserChunkClear(parser, sizeof(txDefineNode));
|
|
263
|
+
node->description = &gxTokenDescriptions[token];
|
|
264
|
+
node->symbol = symbol;
|
|
265
|
+
return node;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
txFieldNode* fxFieldNodeNew(txParser* parser, txToken token)
|
|
269
|
+
{
|
|
270
|
+
txFieldNode* node = fxNewParserChunkClear(parser, sizeof(txFieldNode));
|
|
271
|
+
node->description = &gxTokenDescriptions[token];
|
|
272
|
+
return node;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
txSpecifierNode* fxSpecifierNodeNew(txParser* parser, txToken token)
|
|
276
|
+
{
|
|
277
|
+
txSpecifierNode* node = fxNewParserChunkClear(parser, sizeof(txSpecifierNode));
|
|
278
|
+
node->description = &gxTokenDescriptions[token];
|
|
279
|
+
return node;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
txNode* fxValueNodeNew(txParser* parser, txToken token)
|
|
283
|
+
{
|
|
284
|
+
txNode* node = fxNewParserChunkClear(parser, sizeof(txNode));
|
|
285
|
+
node->description = &gxTokenDescriptions[token];
|
|
286
|
+
return node;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
void fxNodeDistribute(void* it, txNodeCall call, void* param)
|
|
290
|
+
{
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
void fxArrayNodeDistribute(void* it, txNodeCall call, void* param)
|
|
294
|
+
{
|
|
295
|
+
txArrayNode* self = it;
|
|
296
|
+
fxNodeListDistribute(self->items, call, param);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
void fxArrayBindingNodeDistribute(void* it, txNodeCall call, void* param)
|
|
300
|
+
{
|
|
301
|
+
txArrayBindingNode* self = it;
|
|
302
|
+
fxNodeListDistribute(self->items, call, param);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
void fxAssignNodeDistribute(void* it, txNodeCall call, void* param)
|
|
306
|
+
{
|
|
307
|
+
txAssignNode* self = it;
|
|
308
|
+
(*call)(self->reference, param);
|
|
309
|
+
(*call)(self->value, param);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
void fxBinaryExpressionNodeDistribute(void* it, txNodeCall call, void* param)
|
|
313
|
+
{
|
|
314
|
+
txBinaryExpressionNode* self = it;
|
|
315
|
+
(*call)(self->left, param);
|
|
316
|
+
(*call)(self->right, param);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
void fxBindingNodeDistribute(void* it, txNodeCall call, void* param)
|
|
320
|
+
{
|
|
321
|
+
txBindingNode* self = it;
|
|
322
|
+
(*call)(self->target, param);
|
|
323
|
+
(*call)(self->initializer, param);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
void fxBlockNodeDistribute(void* it, txNodeCall call, void* param)
|
|
327
|
+
{
|
|
328
|
+
txBlockNode* self = it;
|
|
329
|
+
(*call)(self->statement, param);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
void fxBodyNodeDistribute(void* it, txNodeCall call, void* param)
|
|
333
|
+
{
|
|
334
|
+
txBlockNode* self = it;
|
|
335
|
+
(*call)(self->statement, param);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
void fxCallNewNodeDistribute(void* it, txNodeCall call, void* param)
|
|
339
|
+
{
|
|
340
|
+
txCallNewNode* self = it;
|
|
341
|
+
(*call)(self->reference, param);
|
|
342
|
+
(*call)(self->params, param);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
void fxCaseNodeDistribute(void* it, txNodeCall call, void* param)
|
|
346
|
+
{
|
|
347
|
+
txCaseNode* self = it;
|
|
348
|
+
if (self->expression)
|
|
349
|
+
(*call)(self->expression, param);
|
|
350
|
+
if (self->statement)
|
|
351
|
+
(*call)(self->statement, param);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
void fxClassNodeDistribute(void* it, txNodeCall call, void* param)
|
|
355
|
+
{
|
|
356
|
+
txClassNode* self = it;
|
|
357
|
+
if (self->heritage)
|
|
358
|
+
(*call)(self->heritage, param);
|
|
359
|
+
(*call)(self->constructor, param);
|
|
360
|
+
fxNodeListDistribute(self->items, call, param);
|
|
361
|
+
if (self->constructorInit)
|
|
362
|
+
(*call)(self->constructorInit, param);
|
|
363
|
+
if (self->instanceInit)
|
|
364
|
+
(*call)(self->instanceInit, param);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
void fxCatchNodeDistribute(void* it, txNodeCall call, void* param)
|
|
368
|
+
{
|
|
369
|
+
txCatchNode* self = it;
|
|
370
|
+
(*call)(self->parameter, param);
|
|
371
|
+
(*call)(self->statement, param);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
void fxDefineNodeDistribute(void* it, txNodeCall call, void* param)
|
|
375
|
+
{
|
|
376
|
+
txDefineNode* self = it;
|
|
377
|
+
(*call)(self->initializer, param);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
void fxDeleteNodeDistribute(void* it, txNodeCall call, void* param)
|
|
381
|
+
{
|
|
382
|
+
txDeleteNode* self = it;
|
|
383
|
+
(*call)(self->reference, param);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
void fxDoNodeDistribute(void* it, txNodeCall call, void* param)
|
|
387
|
+
{
|
|
388
|
+
txDoNode* self = it;
|
|
389
|
+
(*call)(self->statement, param);
|
|
390
|
+
(*call)(self->expression, param);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
void fxExportNodeDistribute(void* it, txNodeCall call, void* param)
|
|
394
|
+
{
|
|
395
|
+
txExportNode* self = it;
|
|
396
|
+
if (self->specifiers)
|
|
397
|
+
fxNodeListDistribute(self->specifiers, call, param);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
void fxExpressionsNodeDistribute(void* it, txNodeCall call, void* param)
|
|
401
|
+
{
|
|
402
|
+
txExpressionsNode* self = it;
|
|
403
|
+
fxNodeListDistribute(self->items, call, param);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
void fxFieldNodeDistribute(void* it, txNodeCall call, void* param)
|
|
407
|
+
{
|
|
408
|
+
txFieldNode* self = it;
|
|
409
|
+
if (self->value)
|
|
410
|
+
(*call)(self->value, param);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
void fxForNodeDistribute(void* it, txNodeCall call, void* param)
|
|
414
|
+
{
|
|
415
|
+
txForNode* self = it;
|
|
416
|
+
if (self->initialization)
|
|
417
|
+
(*call)(self->initialization, param);
|
|
418
|
+
if (self->expression)
|
|
419
|
+
(*call)(self->expression, param);
|
|
420
|
+
if (self->iteration)
|
|
421
|
+
(*call)(self->iteration, param);
|
|
422
|
+
(*call)(self->statement, param);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
void fxForInForOfNodeDistribute(void* it, txNodeCall call, void* param)
|
|
426
|
+
{
|
|
427
|
+
txForInForOfNode* self = it;
|
|
428
|
+
(*call)(self->reference, param);
|
|
429
|
+
(*call)(self->expression, param);
|
|
430
|
+
(*call)(self->statement, param);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
void fxFunctionNodeDistribute(void* it, txNodeCall call, void* param)
|
|
434
|
+
{
|
|
435
|
+
txFunctionNode* self = it;
|
|
436
|
+
(*call)(self->params, param);
|
|
437
|
+
(*call)(self->body, param);
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
void fxIfNodeDistribute(void* it, txNodeCall call, void* param)
|
|
441
|
+
{
|
|
442
|
+
txIfNode* self = it;
|
|
443
|
+
(*call)(self->expression, param);
|
|
444
|
+
(*call)(self->thenStatement, param);
|
|
445
|
+
if (self->elseStatement)
|
|
446
|
+
(*call)(self->elseStatement, param);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
void fxImportNodeDistribute(void* it, txNodeCall call, void* param)
|
|
450
|
+
{
|
|
451
|
+
txImportNode* self = it;
|
|
452
|
+
if (self->specifiers)
|
|
453
|
+
fxNodeListDistribute(self->specifiers, call, param);
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
void fxIncludeNodeDistribute(void* it, txNodeCall call, void* param)
|
|
457
|
+
{
|
|
458
|
+
txIncludeNode* self = it;
|
|
459
|
+
(*call)(self->body, param);
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
txLabelNode* fxLabelNodeNew(txParser* parser)
|
|
463
|
+
{
|
|
464
|
+
txLabelNode* node = fxNewParserChunkClear(parser, sizeof(txLabelNode));
|
|
465
|
+
return node;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
void fxLabelNodeDistribute(void* it, txNodeCall call, void* param)
|
|
469
|
+
{
|
|
470
|
+
txLabelNode* self = it;
|
|
471
|
+
(*call)(self->statement, param);
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
void fxMemberNodeDistribute(void* it, txNodeCall call, void* param)
|
|
475
|
+
{
|
|
476
|
+
txMemberNode* self = it;
|
|
477
|
+
(*call)(self->reference, param);
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
void fxMemberAtNodeDistribute(void* it, txNodeCall call, void* param)
|
|
481
|
+
{
|
|
482
|
+
txMemberAtNode* self = it;
|
|
483
|
+
(*call)(self->reference, param);
|
|
484
|
+
(*call)(self->at, param);
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
void fxModuleNodeDistribute(void* it, txNodeCall call, void* param)
|
|
488
|
+
{
|
|
489
|
+
txProgramNode* self = it;
|
|
490
|
+
(*call)(self->body, param);
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
void fxObjectNodeDistribute(void* it, txNodeCall call, void* param)
|
|
494
|
+
{
|
|
495
|
+
txObjectNode* self = it;
|
|
496
|
+
fxNodeListDistribute(self->items, call, param);
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
void fxObjectBindingNodeDistribute(void* it, txNodeCall call, void* param)
|
|
500
|
+
{
|
|
501
|
+
txObjectBindingNode* self = it;
|
|
502
|
+
fxNodeListDistribute(self->items, call, param);
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
void fxParamsNodeDistribute(void* it, txNodeCall call, void* param)
|
|
506
|
+
{
|
|
507
|
+
txParamsNode* self = it;
|
|
508
|
+
fxNodeListDistribute(self->items, call, param);
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
void fxParamsBindingNodeDistribute(void* it, txNodeCall call, void* param)
|
|
512
|
+
{
|
|
513
|
+
txParamsBindingNode* self = it;
|
|
514
|
+
fxNodeListDistribute(self->items, call, param);
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
void fxPostfixExpressionNodeDistribute(void* it, txNodeCall call, void* param)
|
|
518
|
+
{
|
|
519
|
+
txPostfixExpressionNode* self = it;
|
|
520
|
+
(*call)(self->left, param);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
void fxPrivateMemberNodeDistribute(void* it, txNodeCall call, void* param)
|
|
524
|
+
{
|
|
525
|
+
txPrivateMemberNode* self = it;
|
|
526
|
+
(*call)(self->reference, param);
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
void fxPrivatePropertyNodeDistribute(void* it, txNodeCall call, void* param)
|
|
530
|
+
{
|
|
531
|
+
txPrivatePropertyNode* self = it;
|
|
532
|
+
if (self->value)
|
|
533
|
+
(*call)(self->value, param);
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
void fxProgramNodeDistribute(void* it, txNodeCall call, void* param)
|
|
537
|
+
{
|
|
538
|
+
txProgramNode* self = it;
|
|
539
|
+
(*call)(self->body, param);
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
void fxPropertyNodeDistribute(void* it, txNodeCall call, void* param)
|
|
543
|
+
{
|
|
544
|
+
txPropertyNode* self = it;
|
|
545
|
+
if (self->value)
|
|
546
|
+
(*call)(self->value, param);
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
void fxPropertyAtNodeDistribute(void* it, txNodeCall call, void* param)
|
|
550
|
+
{
|
|
551
|
+
txPropertyAtNode* self = it;
|
|
552
|
+
(*call)(self->at, param);
|
|
553
|
+
if (self->value)
|
|
554
|
+
(*call)(self->value, param);
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
void fxPropertyBindingNodeDistribute(void* it, txNodeCall call, void* param)
|
|
558
|
+
{
|
|
559
|
+
txPropertyBindingNode* self = it;
|
|
560
|
+
(*call)(self->binding, param);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
void fxPropertyBindingAtNodeDistribute(void* it, txNodeCall call, void* param)
|
|
564
|
+
{
|
|
565
|
+
txPropertyBindingAtNode* self = it;
|
|
566
|
+
(*call)(self->at, param);
|
|
567
|
+
(*call)(self->binding, param);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
void fxQuestionMarkNodeDistribute(void* it, txNodeCall call, void* param)
|
|
571
|
+
{
|
|
572
|
+
txQuestionMarkNode* self = it;
|
|
573
|
+
(*call)(self->expression, param);
|
|
574
|
+
(*call)(self->thenExpression, param);
|
|
575
|
+
(*call)(self->elseExpression, param);
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
void fxRegexpNodeDistribute(void* it, txNodeCall call, void* param)
|
|
579
|
+
{
|
|
580
|
+
txRegexpNode* self = it;
|
|
581
|
+
(*call)(self->value, param);
|
|
582
|
+
(*call)(self->modifier, param);
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
void fxRestBindingNodeDistribute(void* it, txNodeCall call, void* param)
|
|
586
|
+
{
|
|
587
|
+
txRestBindingNode* self = it;
|
|
588
|
+
(*call)(self->binding, param);
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
void fxReturnNodeDistribute(void* it, txNodeCall call, void* param)
|
|
592
|
+
{
|
|
593
|
+
txStatementNode* self = it;
|
|
594
|
+
if (self->expression)
|
|
595
|
+
(*call)(self->expression, param);
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
void fxSpreadNodeDistribute(void* it, txNodeCall call, void* param)
|
|
599
|
+
{
|
|
600
|
+
txSpreadNode* self = it;
|
|
601
|
+
(*call)(self->expression, param);
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
void fxStatementNodeDistribute(void* it, txNodeCall call, void* param)
|
|
605
|
+
{
|
|
606
|
+
txStatementNode* self = it;
|
|
607
|
+
(*call)(self->expression, param);
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
void fxStatementsNodeDistribute(void* it, txNodeCall call, void* param)
|
|
611
|
+
{
|
|
612
|
+
txStatementsNode* self = it;
|
|
613
|
+
fxNodeListDistribute(self->items, call, param);
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
void fxSuperNodeDistribute(void* it, txNodeCall call, void* param)
|
|
617
|
+
{
|
|
618
|
+
txSuperNode* self = it;
|
|
619
|
+
(*call)(self->params, param);
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
void fxSwitchNodeDistribute(void* it, txNodeCall call, void* param)
|
|
623
|
+
{
|
|
624
|
+
txSwitchNode* self = it;
|
|
625
|
+
(*call)(self->expression, param);
|
|
626
|
+
fxNodeListDistribute(self->items, call, param);
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
void fxTemplateNodeDistribute(void* it, txNodeCall call, void* param)
|
|
630
|
+
{
|
|
631
|
+
txTemplateNode* self = it;
|
|
632
|
+
if (self->reference)
|
|
633
|
+
(*call)(self->reference, param);
|
|
634
|
+
fxNodeListDistribute(self->items, call, param);
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
void fxTemplateItemNodeDistribute(void* it, txNodeCall call, void* param)
|
|
638
|
+
{
|
|
639
|
+
txTemplateItemNode* self = it;
|
|
640
|
+
(*call)(self->string, param);
|
|
641
|
+
(*call)(self->raw, param);
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
void fxTryNodeDistribute(void* it, txNodeCall call, void* param)
|
|
645
|
+
{
|
|
646
|
+
txTryNode* self = it;
|
|
647
|
+
(*call)(self->tryBlock, param);
|
|
648
|
+
if (self->catchBlock)
|
|
649
|
+
(*call)(self->catchBlock, param);
|
|
650
|
+
if (self->finallyBlock)
|
|
651
|
+
(*call)(self->finallyBlock, param);
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
void fxUnaryExpressionNodeDistribute(void* it, txNodeCall call, void* param)
|
|
655
|
+
{
|
|
656
|
+
txUnaryExpressionNode* self = it;
|
|
657
|
+
(*call)(self->right, param);
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
void fxWhileNodeDistribute(void* it, txNodeCall call, void* param)
|
|
661
|
+
{
|
|
662
|
+
txWhileNode* self = it;
|
|
663
|
+
(*call)(self->expression, param);
|
|
664
|
+
(*call)(self->statement, param);
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
void fxWithNodeDistribute(void* it, txNodeCall call, void* param)
|
|
668
|
+
{
|
|
669
|
+
txWithNode* self = it;
|
|
670
|
+
(*call)(self->expression, param);
|
|
671
|
+
(*call)(self->statement, param);
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
static const txNodeDispatch gxAccessNodeDispatch ICACHE_FLASH_ATTR = {
|
|
675
|
+
fxNodeDistribute,
|
|
676
|
+
fxAccessNodeBind,
|
|
677
|
+
fxNodeHoist,
|
|
678
|
+
fxAccessNodeCode,
|
|
679
|
+
fxAccessNodeCodeAssign,
|
|
680
|
+
fxAccessNodeCodeDelete,
|
|
681
|
+
fxAccessNodeCodeReference,
|
|
682
|
+
fxAccessNodeCodeThis
|
|
683
|
+
};
|
|
684
|
+
static const txNodeDispatch gxAndExpressionNodeDispatch ICACHE_FLASH_ATTR = {
|
|
685
|
+
fxBinaryExpressionNodeDistribute,
|
|
686
|
+
fxNodeBind,
|
|
687
|
+
fxNodeHoist,
|
|
688
|
+
fxAndExpressionNodeCode,
|
|
689
|
+
fxNodeCodeAssign,
|
|
690
|
+
fxNodeCodeDelete,
|
|
691
|
+
fxNodeCodeReference,
|
|
692
|
+
fxNodeCodeThis
|
|
693
|
+
};
|
|
694
|
+
static const txNodeDispatch gxArgumentsNodeDispatch ICACHE_FLASH_ATTR = {
|
|
695
|
+
fxNodeDistribute,
|
|
696
|
+
fxNodeBind,
|
|
697
|
+
fxNodeHoist,
|
|
698
|
+
fxArgumentsNodeCode,
|
|
699
|
+
fxNodeCodeAssign,
|
|
700
|
+
fxNodeCodeDelete,
|
|
701
|
+
fxNodeCodeReference,
|
|
702
|
+
fxNodeCodeThis
|
|
703
|
+
};
|
|
704
|
+
static const txNodeDispatch gxArrayNodeDispatch ICACHE_FLASH_ATTR = {
|
|
705
|
+
fxArrayNodeDistribute,
|
|
706
|
+
fxArrayNodeBind,
|
|
707
|
+
fxNodeHoist,
|
|
708
|
+
fxArrayNodeCode,
|
|
709
|
+
fxNodeCodeAssign,
|
|
710
|
+
fxNodeCodeDelete,
|
|
711
|
+
fxNodeCodeReference,
|
|
712
|
+
fxNodeCodeThis
|
|
713
|
+
};
|
|
714
|
+
static const txNodeDispatch gxArrayBindingNodeDispatch ICACHE_FLASH_ATTR = {
|
|
715
|
+
fxArrayBindingNodeDistribute,
|
|
716
|
+
fxArrayBindingNodeBind,
|
|
717
|
+
fxNodeHoist,
|
|
718
|
+
fxArrayBindingNodeCode,
|
|
719
|
+
fxArrayBindingNodeCodeAssign,
|
|
720
|
+
fxNodeCodeDelete,
|
|
721
|
+
fxNodeCodeReference,
|
|
722
|
+
fxNodeCodeThis
|
|
723
|
+
};
|
|
724
|
+
static const txNodeDispatch gxAssignNodeDispatch ICACHE_FLASH_ATTR = {
|
|
725
|
+
fxAssignNodeDistribute,
|
|
726
|
+
fxAssignNodeBind,
|
|
727
|
+
fxNodeHoist,
|
|
728
|
+
fxAssignNodeCode,
|
|
729
|
+
fxNodeCodeAssign,
|
|
730
|
+
fxNodeCodeDelete,
|
|
731
|
+
fxNodeCodeReference,
|
|
732
|
+
fxNodeCodeThis
|
|
733
|
+
};
|
|
734
|
+
static const txNodeDispatch gxAwaitNodeDispatch ICACHE_FLASH_ATTR = {
|
|
735
|
+
fxStatementNodeDistribute,
|
|
736
|
+
fxNodeBind,
|
|
737
|
+
fxNodeHoist,
|
|
738
|
+
fxAwaitNodeCode,
|
|
739
|
+
fxNodeCodeAssign,
|
|
740
|
+
fxNodeCodeDelete,
|
|
741
|
+
fxNodeCodeReference,
|
|
742
|
+
fxNodeCodeThis
|
|
743
|
+
};
|
|
744
|
+
static const txNodeDispatch gxBigIntNodeDispatch ICACHE_FLASH_ATTR = {
|
|
745
|
+
fxNodeDistribute,
|
|
746
|
+
fxNodeBind,
|
|
747
|
+
fxNodeHoist,
|
|
748
|
+
fxBigIntNodeCode,
|
|
749
|
+
fxNodeCodeAssign,
|
|
750
|
+
fxNodeCodeDelete,
|
|
751
|
+
fxNodeCodeReference,
|
|
752
|
+
fxNodeCodeThis
|
|
753
|
+
};
|
|
754
|
+
static const txNodeDispatch gxBinaryExpressionNodeDispatch ICACHE_FLASH_ATTR = {
|
|
755
|
+
fxBinaryExpressionNodeDistribute,
|
|
756
|
+
fxNodeBind,
|
|
757
|
+
fxNodeHoist,
|
|
758
|
+
fxBinaryExpressionNodeCode,
|
|
759
|
+
fxNodeCodeAssign,
|
|
760
|
+
fxNodeCodeDelete,
|
|
761
|
+
fxNodeCodeReference,
|
|
762
|
+
fxNodeCodeThis
|
|
763
|
+
};
|
|
764
|
+
static const txNodeDispatch gxBindingNodeDispatch ICACHE_FLASH_ATTR = {
|
|
765
|
+
fxBindingNodeDistribute,
|
|
766
|
+
fxBindingNodeBind,
|
|
767
|
+
fxNodeHoist,
|
|
768
|
+
fxBindingNodeCode,
|
|
769
|
+
fxBindingNodeCodeAssign,
|
|
770
|
+
fxNodeCodeDelete,
|
|
771
|
+
fxBindingNodeCodeReference,
|
|
772
|
+
fxNodeCodeThis
|
|
773
|
+
};
|
|
774
|
+
static const txNodeDispatch gxBlockNodeDispatch ICACHE_FLASH_ATTR = {
|
|
775
|
+
fxBlockNodeDistribute,
|
|
776
|
+
fxBlockNodeBind,
|
|
777
|
+
fxBlockNodeHoist,
|
|
778
|
+
fxBlockNodeCode,
|
|
779
|
+
fxNodeCodeAssign,
|
|
780
|
+
fxNodeCodeDelete,
|
|
781
|
+
fxNodeCodeReference,
|
|
782
|
+
fxNodeCodeThis
|
|
783
|
+
};
|
|
784
|
+
static const txNodeDispatch gxBodyNodeDispatch ICACHE_FLASH_ATTR = {
|
|
785
|
+
fxBodyNodeDistribute,
|
|
786
|
+
fxBlockNodeBind,
|
|
787
|
+
fxBodyNodeHoist,
|
|
788
|
+
fxBodyNodeCode,
|
|
789
|
+
fxNodeCodeAssign,
|
|
790
|
+
fxNodeCodeDelete,
|
|
791
|
+
fxNodeCodeReference,
|
|
792
|
+
fxNodeCodeThis
|
|
793
|
+
};
|
|
794
|
+
static const txNodeDispatch gxBreakContinueNodeDispatch ICACHE_FLASH_ATTR = {
|
|
795
|
+
fxNodeDistribute,
|
|
796
|
+
fxNodeBind,
|
|
797
|
+
fxNodeHoist,
|
|
798
|
+
fxBreakContinueNodeCode,
|
|
799
|
+
fxNodeCodeAssign,
|
|
800
|
+
fxNodeCodeDelete,
|
|
801
|
+
fxNodeCodeReference,
|
|
802
|
+
fxNodeCodeThis
|
|
803
|
+
};
|
|
804
|
+
static const txNodeDispatch gxCallNodeDispatch ICACHE_FLASH_ATTR = {
|
|
805
|
+
fxCallNewNodeDistribute,
|
|
806
|
+
fxNodeBind,
|
|
807
|
+
fxCallNodeHoist,
|
|
808
|
+
fxCallNodeCode,
|
|
809
|
+
fxNodeCodeAssign,
|
|
810
|
+
fxNodeCodeDelete,
|
|
811
|
+
fxNodeCodeReference,
|
|
812
|
+
fxNodeCodeThis
|
|
813
|
+
};
|
|
814
|
+
static const txNodeDispatch gxCaseNodeDispatch ICACHE_FLASH_ATTR = {
|
|
815
|
+
fxCaseNodeDistribute,
|
|
816
|
+
fxNodeBind,
|
|
817
|
+
fxNodeHoist,
|
|
818
|
+
fxNodeCode,
|
|
819
|
+
fxNodeCodeAssign,
|
|
820
|
+
fxNodeCodeDelete,
|
|
821
|
+
fxNodeCodeReference,
|
|
822
|
+
fxNodeCodeThis
|
|
823
|
+
};
|
|
824
|
+
static const txNodeDispatch gxCatchNodeDispatch ICACHE_FLASH_ATTR = {
|
|
825
|
+
fxCatchNodeDistribute,
|
|
826
|
+
fxCatchNodeBind,
|
|
827
|
+
fxCatchNodeHoist,
|
|
828
|
+
fxCatchNodeCode,
|
|
829
|
+
fxNodeCodeAssign,
|
|
830
|
+
fxNodeCodeDelete,
|
|
831
|
+
fxNodeCodeReference,
|
|
832
|
+
fxNodeCodeThis
|
|
833
|
+
};
|
|
834
|
+
static const txNodeDispatch gxChainNodeDispatch ICACHE_FLASH_ATTR = {
|
|
835
|
+
fxUnaryExpressionNodeDistribute,
|
|
836
|
+
fxNodeBind,
|
|
837
|
+
fxNodeHoist,
|
|
838
|
+
fxChainNodeCode,
|
|
839
|
+
fxNodeCodeAssign,
|
|
840
|
+
fxNodeCodeDelete,
|
|
841
|
+
fxNodeCodeReference,
|
|
842
|
+
fxChainNodeCodeThis
|
|
843
|
+
};
|
|
844
|
+
static const txNodeDispatch gxClassNodeDispatch ICACHE_FLASH_ATTR = {
|
|
845
|
+
fxClassNodeDistribute,
|
|
846
|
+
fxClassNodeBind,
|
|
847
|
+
fxClassNodeHoist,
|
|
848
|
+
fxClassNodeCode,
|
|
849
|
+
fxNodeCodeAssign,
|
|
850
|
+
fxNodeCodeDelete,
|
|
851
|
+
fxNodeCodeReference,
|
|
852
|
+
fxNodeCodeThis
|
|
853
|
+
};
|
|
854
|
+
static const txNodeDispatch gxCoalesceExpressionNodeDispatch ICACHE_FLASH_ATTR = {
|
|
855
|
+
fxBinaryExpressionNodeDistribute,
|
|
856
|
+
fxNodeBind,
|
|
857
|
+
fxCoalesceExpressionNodeHoist,
|
|
858
|
+
fxCoalesceExpressionNodeCode,
|
|
859
|
+
fxNodeCodeAssign,
|
|
860
|
+
fxNodeCodeDelete,
|
|
861
|
+
fxNodeCodeReference,
|
|
862
|
+
fxNodeCodeThis
|
|
863
|
+
};
|
|
864
|
+
static const txNodeDispatch gxCompoundExpressionNodeDispatch ICACHE_FLASH_ATTR = {
|
|
865
|
+
fxAssignNodeDistribute,
|
|
866
|
+
fxNodeBind,
|
|
867
|
+
fxNodeHoist,
|
|
868
|
+
fxCompoundExpressionNodeCode,
|
|
869
|
+
fxNodeCodeAssign,
|
|
870
|
+
fxNodeCodeDelete,
|
|
871
|
+
fxNodeCodeReference,
|
|
872
|
+
fxNodeCodeThis
|
|
873
|
+
};
|
|
874
|
+
static const txNodeDispatch gxDebuggerNodeDispatch ICACHE_FLASH_ATTR = {
|
|
875
|
+
fxNodeDistribute,
|
|
876
|
+
fxNodeBind,
|
|
877
|
+
fxNodeHoist,
|
|
878
|
+
fxDebuggerNodeCode,
|
|
879
|
+
fxNodeCodeAssign,
|
|
880
|
+
fxNodeCodeDelete,
|
|
881
|
+
fxNodeCodeReference,
|
|
882
|
+
fxNodeCodeThis
|
|
883
|
+
};
|
|
884
|
+
static const txNodeDispatch gxDeclareNodeDispatch ICACHE_FLASH_ATTR = {
|
|
885
|
+
fxNodeDistribute,
|
|
886
|
+
fxDeclareNodeBind,
|
|
887
|
+
fxDeclareNodeHoist,
|
|
888
|
+
fxDeclareNodeCode,
|
|
889
|
+
fxDeclareNodeCodeAssign,
|
|
890
|
+
fxNodeCodeDelete,
|
|
891
|
+
fxDeclareNodeCodeReference,
|
|
892
|
+
fxNodeCodeThis
|
|
893
|
+
};
|
|
894
|
+
static const txNodeDispatch gxDefineNodeDispatch ICACHE_FLASH_ATTR = {
|
|
895
|
+
fxDefineNodeDistribute,
|
|
896
|
+
fxDefineNodeBind,
|
|
897
|
+
fxDefineNodeHoist,
|
|
898
|
+
fxDefineNodeCode,
|
|
899
|
+
fxNodeCodeAssign,
|
|
900
|
+
fxNodeCodeDelete,
|
|
901
|
+
fxNodeCodeReference,
|
|
902
|
+
fxNodeCodeThis
|
|
903
|
+
};
|
|
904
|
+
static const txNodeDispatch gxDelegateNodeDispatch ICACHE_FLASH_ATTR = {
|
|
905
|
+
fxStatementNodeDistribute,
|
|
906
|
+
fxDelegateNodeBind,
|
|
907
|
+
fxNodeHoist,
|
|
908
|
+
fxDelegateNodeCode,
|
|
909
|
+
fxNodeCodeAssign,
|
|
910
|
+
fxNodeCodeDelete,
|
|
911
|
+
fxNodeCodeReference,
|
|
912
|
+
fxNodeCodeThis
|
|
913
|
+
};
|
|
914
|
+
static const txNodeDispatch gxDeleteNodeDispatch ICACHE_FLASH_ATTR = {
|
|
915
|
+
fxDeleteNodeDistribute,
|
|
916
|
+
fxNodeBind,
|
|
917
|
+
fxNodeHoist,
|
|
918
|
+
fxDeleteNodeCode,
|
|
919
|
+
fxNodeCodeAssign,
|
|
920
|
+
fxNodeCodeDelete,
|
|
921
|
+
fxNodeCodeReference,
|
|
922
|
+
fxNodeCodeThis
|
|
923
|
+
};
|
|
924
|
+
static const txNodeDispatch gxDoNodeDispatch ICACHE_FLASH_ATTR = {
|
|
925
|
+
fxDoNodeDistribute,
|
|
926
|
+
fxNodeBind,
|
|
927
|
+
fxNodeHoist,
|
|
928
|
+
fxDoNodeCode,
|
|
929
|
+
fxNodeCodeAssign,
|
|
930
|
+
fxNodeCodeDelete,
|
|
931
|
+
fxNodeCodeReference,
|
|
932
|
+
fxNodeCodeThis
|
|
933
|
+
};
|
|
934
|
+
static const txNodeDispatch gxExportNodeDispatch ICACHE_FLASH_ATTR = {
|
|
935
|
+
fxExportNodeDistribute,
|
|
936
|
+
fxExportNodeBind,
|
|
937
|
+
fxExportNodeHoist,
|
|
938
|
+
fxExportNodeCode,
|
|
939
|
+
fxNodeCodeAssign,
|
|
940
|
+
fxNodeCodeDelete,
|
|
941
|
+
fxNodeCodeReference,
|
|
942
|
+
fxNodeCodeThis
|
|
943
|
+
};
|
|
944
|
+
static const txNodeDispatch gxExpressionsNodeDispatch ICACHE_FLASH_ATTR = {
|
|
945
|
+
fxExpressionsNodeDistribute,
|
|
946
|
+
fxNodeBind,
|
|
947
|
+
fxNodeHoist,
|
|
948
|
+
fxExpressionsNodeCode,
|
|
949
|
+
fxNodeCodeAssign,
|
|
950
|
+
fxExpressionsNodeCodeDelete,
|
|
951
|
+
fxNodeCodeReference,
|
|
952
|
+
fxExpressionsNodeCodeThis
|
|
953
|
+
};
|
|
954
|
+
static const txNodeDispatch gxFieldNodeDispatch ICACHE_FLASH_ATTR = {
|
|
955
|
+
fxFieldNodeDistribute,
|
|
956
|
+
fxFieldNodeBind,
|
|
957
|
+
fxNodeHoist,
|
|
958
|
+
fxFieldNodeCode,
|
|
959
|
+
fxNodeCodeAssign,
|
|
960
|
+
fxNodeCodeDelete,
|
|
961
|
+
fxNodeCodeReference,
|
|
962
|
+
fxNodeCodeThis
|
|
963
|
+
};
|
|
964
|
+
static const txNodeDispatch gxForNodeDispatch ICACHE_FLASH_ATTR = {
|
|
965
|
+
fxForNodeDistribute,
|
|
966
|
+
fxForNodeBind,
|
|
967
|
+
fxForNodeHoist,
|
|
968
|
+
fxForNodeCode,
|
|
969
|
+
fxNodeCodeAssign,
|
|
970
|
+
fxNodeCodeDelete,
|
|
971
|
+
fxNodeCodeReference,
|
|
972
|
+
fxNodeCodeThis
|
|
973
|
+
};
|
|
974
|
+
static const txNodeDispatch gxForInForOfNodeDispatch ICACHE_FLASH_ATTR = {
|
|
975
|
+
fxForInForOfNodeDistribute,
|
|
976
|
+
fxForInForOfNodeBind,
|
|
977
|
+
fxForInForOfNodeHoist,
|
|
978
|
+
fxForInForOfNodeCode,
|
|
979
|
+
fxNodeCodeAssign,
|
|
980
|
+
fxNodeCodeDelete,
|
|
981
|
+
fxNodeCodeReference,
|
|
982
|
+
fxNodeCodeThis
|
|
983
|
+
};
|
|
984
|
+
static const txNodeDispatch gxFunctionNodeDispatch ICACHE_FLASH_ATTR = {
|
|
985
|
+
fxFunctionNodeDistribute,
|
|
986
|
+
fxFunctionNodeBind,
|
|
987
|
+
fxFunctionNodeHoist,
|
|
988
|
+
fxFunctionNodeCode,
|
|
989
|
+
fxNodeCodeAssign,
|
|
990
|
+
fxNodeCodeDelete,
|
|
991
|
+
fxNodeCodeReference,
|
|
992
|
+
fxNodeCodeThis
|
|
993
|
+
};
|
|
994
|
+
static const txNodeDispatch gxHostNodeDispatch ICACHE_FLASH_ATTR = {
|
|
995
|
+
fxNodeDistribute,
|
|
996
|
+
fxHostNodeBind,
|
|
997
|
+
fxHostNodeHoist,
|
|
998
|
+
fxHostNodeCode,
|
|
999
|
+
fxNodeCodeAssign,
|
|
1000
|
+
fxNodeCodeDelete,
|
|
1001
|
+
fxNodeCodeReference,
|
|
1002
|
+
fxNodeCodeThis
|
|
1003
|
+
};
|
|
1004
|
+
static const txNodeDispatch gxIfNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1005
|
+
fxIfNodeDistribute,
|
|
1006
|
+
fxNodeBind,
|
|
1007
|
+
fxNodeHoist,
|
|
1008
|
+
fxIfNodeCode,
|
|
1009
|
+
fxNodeCodeAssign,
|
|
1010
|
+
fxNodeCodeDelete,
|
|
1011
|
+
fxNodeCodeReference,
|
|
1012
|
+
fxNodeCodeThis
|
|
1013
|
+
};
|
|
1014
|
+
static const txNodeDispatch gxImportNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1015
|
+
fxImportNodeDistribute,
|
|
1016
|
+
fxNodeBind,
|
|
1017
|
+
fxImportNodeHoist,
|
|
1018
|
+
fxImportNodeCode,
|
|
1019
|
+
fxNodeCodeAssign,
|
|
1020
|
+
fxNodeCodeDelete,
|
|
1021
|
+
fxNodeCodeReference,
|
|
1022
|
+
fxNodeCodeThis
|
|
1023
|
+
};
|
|
1024
|
+
static const txNodeDispatch gxImportCallNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1025
|
+
fxStatementNodeDistribute,
|
|
1026
|
+
fxNodeBind,
|
|
1027
|
+
fxNodeHoist,
|
|
1028
|
+
fxImportCallNodeCode,
|
|
1029
|
+
fxNodeCodeAssign,
|
|
1030
|
+
fxNodeCodeDelete,
|
|
1031
|
+
fxNodeCodeReference,
|
|
1032
|
+
fxNodeCodeThis
|
|
1033
|
+
};
|
|
1034
|
+
static const txNodeDispatch gxImportMetaNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1035
|
+
fxNodeDistribute,
|
|
1036
|
+
fxNodeBind,
|
|
1037
|
+
fxNodeHoist,
|
|
1038
|
+
fxImportMetaNodeCode,
|
|
1039
|
+
fxNodeCodeAssign,
|
|
1040
|
+
fxNodeCodeDelete,
|
|
1041
|
+
fxNodeCodeReference,
|
|
1042
|
+
fxNodeCodeThis
|
|
1043
|
+
};
|
|
1044
|
+
static const txNodeDispatch gxIncludeNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1045
|
+
fxIncludeNodeDistribute,
|
|
1046
|
+
fxNodeBind,
|
|
1047
|
+
fxNodeHoist,
|
|
1048
|
+
fxIncludeNodeCode,
|
|
1049
|
+
fxNodeCodeAssign,
|
|
1050
|
+
fxNodeCodeDelete,
|
|
1051
|
+
fxNodeCodeReference,
|
|
1052
|
+
fxNodeCodeThis
|
|
1053
|
+
};
|
|
1054
|
+
static const txNodeDispatch gxIntegerNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1055
|
+
fxNodeDistribute,
|
|
1056
|
+
fxNodeBind,
|
|
1057
|
+
fxNodeHoist,
|
|
1058
|
+
fxIntegerNodeCode,
|
|
1059
|
+
fxNodeCodeAssign,
|
|
1060
|
+
fxNodeCodeDelete,
|
|
1061
|
+
fxNodeCodeReference,
|
|
1062
|
+
fxNodeCodeThis
|
|
1063
|
+
};
|
|
1064
|
+
static const txNodeDispatch gxLabelNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1065
|
+
fxLabelNodeDistribute,
|
|
1066
|
+
fxNodeBind,
|
|
1067
|
+
fxNodeHoist,
|
|
1068
|
+
fxLabelNodeCode,
|
|
1069
|
+
fxNodeCodeAssign,
|
|
1070
|
+
fxNodeCodeDelete,
|
|
1071
|
+
fxNodeCodeReference,
|
|
1072
|
+
fxNodeCodeThis
|
|
1073
|
+
};
|
|
1074
|
+
static const txNodeDispatch gxMemberNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1075
|
+
fxMemberNodeDistribute,
|
|
1076
|
+
fxNodeBind,
|
|
1077
|
+
fxNodeHoist,
|
|
1078
|
+
fxMemberNodeCode,
|
|
1079
|
+
fxMemberNodeCodeAssign,
|
|
1080
|
+
fxMemberNodeCodeDelete,
|
|
1081
|
+
fxMemberNodeCodeReference,
|
|
1082
|
+
fxMemberNodeCodeThis
|
|
1083
|
+
};
|
|
1084
|
+
static const txNodeDispatch gxMemberAtNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1085
|
+
fxMemberAtNodeDistribute,
|
|
1086
|
+
fxNodeBind,
|
|
1087
|
+
fxNodeHoist,
|
|
1088
|
+
fxMemberAtNodeCode,
|
|
1089
|
+
fxMemberAtNodeCodeAssign,
|
|
1090
|
+
fxMemberAtNodeCodeDelete,
|
|
1091
|
+
fxMemberAtNodeCodeReference,
|
|
1092
|
+
fxMemberAtNodeCodeThis
|
|
1093
|
+
};
|
|
1094
|
+
static const txNodeDispatch gxModuleNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1095
|
+
fxModuleNodeDistribute,
|
|
1096
|
+
fxModuleNodeBind,
|
|
1097
|
+
fxModuleNodeHoist,
|
|
1098
|
+
fxModuleNodeCode,
|
|
1099
|
+
fxNodeCodeAssign,
|
|
1100
|
+
fxNodeCodeDelete,
|
|
1101
|
+
fxNodeCodeReference,
|
|
1102
|
+
fxNodeCodeThis
|
|
1103
|
+
};
|
|
1104
|
+
static const txNodeDispatch gxNewNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1105
|
+
fxCallNewNodeDistribute,
|
|
1106
|
+
fxNodeBind,
|
|
1107
|
+
fxNodeHoist,
|
|
1108
|
+
fxNewNodeCode,
|
|
1109
|
+
fxNodeCodeAssign,
|
|
1110
|
+
fxNodeCodeDelete,
|
|
1111
|
+
fxNodeCodeReference,
|
|
1112
|
+
fxNodeCodeThis
|
|
1113
|
+
};
|
|
1114
|
+
static const txNodeDispatch gxNumberNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1115
|
+
fxNodeDistribute,
|
|
1116
|
+
fxNodeBind,
|
|
1117
|
+
fxNodeHoist,
|
|
1118
|
+
fxNumberNodeCode,
|
|
1119
|
+
fxNodeCodeAssign,
|
|
1120
|
+
fxNodeCodeDelete,
|
|
1121
|
+
fxNodeCodeReference,
|
|
1122
|
+
fxNodeCodeThis
|
|
1123
|
+
};
|
|
1124
|
+
static const txNodeDispatch gxObjectNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1125
|
+
fxObjectNodeDistribute,
|
|
1126
|
+
fxObjectNodeBind,
|
|
1127
|
+
fxNodeHoist,
|
|
1128
|
+
fxObjectNodeCode,
|
|
1129
|
+
fxNodeCodeAssign,
|
|
1130
|
+
fxNodeCodeDelete,
|
|
1131
|
+
fxNodeCodeReference,
|
|
1132
|
+
fxNodeCodeThis
|
|
1133
|
+
};
|
|
1134
|
+
static const txNodeDispatch gxObjectBindingNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1135
|
+
fxObjectBindingNodeDistribute,
|
|
1136
|
+
fxObjectBindingNodeBind,
|
|
1137
|
+
fxNodeHoist,
|
|
1138
|
+
fxObjectBindingNodeCode,
|
|
1139
|
+
fxObjectBindingNodeCodeAssign,
|
|
1140
|
+
fxNodeCodeDelete,
|
|
1141
|
+
fxNodeCodeReference,
|
|
1142
|
+
fxNodeCodeThis
|
|
1143
|
+
};
|
|
1144
|
+
static const txNodeDispatch gxOptionNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1145
|
+
fxUnaryExpressionNodeDistribute,
|
|
1146
|
+
fxNodeBind,
|
|
1147
|
+
fxNodeHoist,
|
|
1148
|
+
fxOptionNodeCode,
|
|
1149
|
+
fxNodeCodeAssign,
|
|
1150
|
+
fxNodeCodeDelete,
|
|
1151
|
+
fxNodeCodeReference,
|
|
1152
|
+
fxOptionNodeCodeThis
|
|
1153
|
+
};
|
|
1154
|
+
static const txNodeDispatch gxOrExpressionNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1155
|
+
fxBinaryExpressionNodeDistribute,
|
|
1156
|
+
fxNodeBind,
|
|
1157
|
+
fxNodeHoist,
|
|
1158
|
+
fxOrExpressionNodeCode,
|
|
1159
|
+
fxNodeCodeAssign,
|
|
1160
|
+
fxNodeCodeDelete,
|
|
1161
|
+
fxNodeCodeReference,
|
|
1162
|
+
fxNodeCodeThis
|
|
1163
|
+
};
|
|
1164
|
+
static const txNodeDispatch gxParamsNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1165
|
+
fxParamsNodeDistribute,
|
|
1166
|
+
fxParamsNodeBind,
|
|
1167
|
+
fxNodeHoist,
|
|
1168
|
+
fxParamsNodeCode,
|
|
1169
|
+
fxNodeCodeAssign,
|
|
1170
|
+
fxNodeCodeDelete,
|
|
1171
|
+
fxNodeCodeReference,
|
|
1172
|
+
fxNodeCodeThis
|
|
1173
|
+
};
|
|
1174
|
+
static const txNodeDispatch gxParamsBindingNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1175
|
+
fxParamsBindingNodeDistribute,
|
|
1176
|
+
fxParamsBindingNodeBind,
|
|
1177
|
+
fxParamsBindingNodeHoist,
|
|
1178
|
+
fxParamsBindingNodeCode,
|
|
1179
|
+
fxNodeCodeAssign,
|
|
1180
|
+
fxNodeCodeDelete,
|
|
1181
|
+
fxNodeCodeReference,
|
|
1182
|
+
fxNodeCodeThis
|
|
1183
|
+
};
|
|
1184
|
+
static const txNodeDispatch gxPostfixExpressionNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1185
|
+
fxPostfixExpressionNodeDistribute,
|
|
1186
|
+
fxPostfixExpressionNodeBind,
|
|
1187
|
+
fxNodeHoist,
|
|
1188
|
+
fxPostfixExpressionNodeCode,
|
|
1189
|
+
fxNodeCodeAssign,
|
|
1190
|
+
fxNodeCodeDelete,
|
|
1191
|
+
fxNodeCodeReference,
|
|
1192
|
+
fxNodeCodeThis
|
|
1193
|
+
};
|
|
1194
|
+
static const txNodeDispatch gxPrivateIdentifierNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1195
|
+
fxPrivateMemberNodeDistribute,
|
|
1196
|
+
fxPrivateMemberNodeBind,
|
|
1197
|
+
fxNodeHoist,
|
|
1198
|
+
fxPrivateIdentifierNodeCode,
|
|
1199
|
+
fxNodeCodeAssign,
|
|
1200
|
+
fxNodeCodeDelete,
|
|
1201
|
+
fxNodeCodeReference,
|
|
1202
|
+
fxNodeCodeThis
|
|
1203
|
+
};
|
|
1204
|
+
static const txNodeDispatch gxPrivateMemberNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1205
|
+
fxPrivateMemberNodeDistribute,
|
|
1206
|
+
fxPrivateMemberNodeBind,
|
|
1207
|
+
fxNodeHoist,
|
|
1208
|
+
fxPrivateMemberNodeCode,
|
|
1209
|
+
fxPrivateMemberNodeCodeAssign,
|
|
1210
|
+
fxPrivateMemberNodeCodeDelete,
|
|
1211
|
+
fxPrivateMemberNodeCodeReference,
|
|
1212
|
+
fxPrivateMemberNodeCodeThis
|
|
1213
|
+
};
|
|
1214
|
+
static const txNodeDispatch gxPrivatePropertyNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1215
|
+
fxPrivatePropertyNodeDistribute,
|
|
1216
|
+
fxNodeBind,
|
|
1217
|
+
fxNodeHoist,
|
|
1218
|
+
fxNodeCode,
|
|
1219
|
+
fxNodeCodeAssign,
|
|
1220
|
+
fxNodeCodeDelete,
|
|
1221
|
+
fxNodeCodeReference,
|
|
1222
|
+
fxNodeCodeThis
|
|
1223
|
+
};
|
|
1224
|
+
static const txNodeDispatch gxProgramNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1225
|
+
fxProgramNodeDistribute,
|
|
1226
|
+
fxProgramNodeBind,
|
|
1227
|
+
fxProgramNodeHoist,
|
|
1228
|
+
fxProgramNodeCode,
|
|
1229
|
+
fxNodeCodeAssign,
|
|
1230
|
+
fxNodeCodeDelete,
|
|
1231
|
+
fxNodeCodeReference,
|
|
1232
|
+
fxNodeCodeThis
|
|
1233
|
+
};
|
|
1234
|
+
static const txNodeDispatch gxPropertyNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1235
|
+
fxPropertyNodeDistribute,
|
|
1236
|
+
fxNodeBind,
|
|
1237
|
+
fxPropertyNodeHoist,
|
|
1238
|
+
fxNodeCode,
|
|
1239
|
+
fxNodeCodeAssign,
|
|
1240
|
+
fxNodeCodeDelete,
|
|
1241
|
+
fxNodeCodeReference,
|
|
1242
|
+
fxNodeCodeThis
|
|
1243
|
+
};
|
|
1244
|
+
static const txNodeDispatch gxPropertyAtNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1245
|
+
fxPropertyAtNodeDistribute,
|
|
1246
|
+
fxNodeBind,
|
|
1247
|
+
fxNodeHoist,
|
|
1248
|
+
fxNodeCode,
|
|
1249
|
+
fxNodeCodeAssign,
|
|
1250
|
+
fxNodeCodeDelete,
|
|
1251
|
+
fxNodeCodeReference,
|
|
1252
|
+
fxNodeCodeThis
|
|
1253
|
+
};
|
|
1254
|
+
static const txNodeDispatch gxPropertyBindingNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1255
|
+
fxPropertyBindingNodeDistribute,
|
|
1256
|
+
fxNodeBind,
|
|
1257
|
+
fxNodeHoist,
|
|
1258
|
+
fxNodeCode,
|
|
1259
|
+
fxNodeCodeAssign,
|
|
1260
|
+
fxNodeCodeDelete,
|
|
1261
|
+
fxNodeCodeReference,
|
|
1262
|
+
fxNodeCodeThis
|
|
1263
|
+
};
|
|
1264
|
+
static const txNodeDispatch gxPropertyBindingAtNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1265
|
+
fxPropertyBindingAtNodeDistribute,
|
|
1266
|
+
fxNodeBind,
|
|
1267
|
+
fxNodeHoist,
|
|
1268
|
+
fxNodeCode,
|
|
1269
|
+
fxNodeCodeAssign,
|
|
1270
|
+
fxNodeCodeDelete,
|
|
1271
|
+
fxNodeCodeReference,
|
|
1272
|
+
fxNodeCodeThis
|
|
1273
|
+
};
|
|
1274
|
+
static const txNodeDispatch gxQuestionMarkNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1275
|
+
fxQuestionMarkNodeDistribute,
|
|
1276
|
+
fxNodeBind,
|
|
1277
|
+
fxNodeHoist,
|
|
1278
|
+
fxQuestionMarkNodeCode,
|
|
1279
|
+
fxNodeCodeAssign,
|
|
1280
|
+
fxNodeCodeDelete,
|
|
1281
|
+
fxNodeCodeReference,
|
|
1282
|
+
fxNodeCodeThis
|
|
1283
|
+
};
|
|
1284
|
+
static const txNodeDispatch gxRegexpNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1285
|
+
fxRegexpNodeDistribute,
|
|
1286
|
+
fxNodeBind,
|
|
1287
|
+
fxNodeHoist,
|
|
1288
|
+
fxRegexpNodeCode,
|
|
1289
|
+
fxNodeCodeAssign,
|
|
1290
|
+
fxNodeCodeDelete,
|
|
1291
|
+
fxNodeCodeReference,
|
|
1292
|
+
fxNodeCodeThis
|
|
1293
|
+
};
|
|
1294
|
+
static const txNodeDispatch gxRestBindingNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1295
|
+
fxRestBindingNodeDistribute,
|
|
1296
|
+
fxNodeBind,
|
|
1297
|
+
fxNodeHoist,
|
|
1298
|
+
fxNodeCode,
|
|
1299
|
+
fxNodeCodeAssign,
|
|
1300
|
+
fxNodeCodeDelete,
|
|
1301
|
+
fxNodeCodeReference,
|
|
1302
|
+
fxNodeCodeThis
|
|
1303
|
+
};
|
|
1304
|
+
static const txNodeDispatch gxReturnNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1305
|
+
fxReturnNodeDistribute,
|
|
1306
|
+
fxNodeBind,
|
|
1307
|
+
fxNodeHoist,
|
|
1308
|
+
fxReturnNodeCode,
|
|
1309
|
+
fxNodeCodeAssign,
|
|
1310
|
+
fxNodeCodeDelete,
|
|
1311
|
+
fxNodeCodeReference,
|
|
1312
|
+
fxNodeCodeThis
|
|
1313
|
+
};
|
|
1314
|
+
static const txNodeDispatch gxSkipBindingNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1315
|
+
fxNodeDistribute,
|
|
1316
|
+
fxNodeBind,
|
|
1317
|
+
fxNodeHoist,
|
|
1318
|
+
fxNodeCode,
|
|
1319
|
+
fxNodeCodeAssign,
|
|
1320
|
+
fxNodeCodeDelete,
|
|
1321
|
+
fxNodeCodeReference,
|
|
1322
|
+
fxNodeCodeThis
|
|
1323
|
+
};
|
|
1324
|
+
static const txNodeDispatch gxSpecifierNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1325
|
+
fxNodeDistribute,
|
|
1326
|
+
fxNodeBind,
|
|
1327
|
+
fxNodeHoist,
|
|
1328
|
+
fxNodeCode,
|
|
1329
|
+
fxNodeCodeAssign,
|
|
1330
|
+
fxNodeCodeDelete,
|
|
1331
|
+
fxNodeCodeReference,
|
|
1332
|
+
fxNodeCodeThis
|
|
1333
|
+
};
|
|
1334
|
+
static const txNodeDispatch gxSpreadNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1335
|
+
fxSpreadNodeDistribute,
|
|
1336
|
+
fxSpreadNodeBind,
|
|
1337
|
+
fxNodeHoist,
|
|
1338
|
+
fxNodeCode,
|
|
1339
|
+
fxNodeCodeAssign,
|
|
1340
|
+
fxNodeCodeDelete,
|
|
1341
|
+
fxNodeCodeReference,
|
|
1342
|
+
fxNodeCodeThis
|
|
1343
|
+
};
|
|
1344
|
+
static const txNodeDispatch gxStatementNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1345
|
+
fxStatementNodeDistribute,
|
|
1346
|
+
fxNodeBind,
|
|
1347
|
+
fxStatementNodeHoist,
|
|
1348
|
+
fxStatementNodeCode,
|
|
1349
|
+
fxNodeCodeAssign,
|
|
1350
|
+
fxNodeCodeDelete,
|
|
1351
|
+
fxNodeCodeReference,
|
|
1352
|
+
fxNodeCodeThis
|
|
1353
|
+
};
|
|
1354
|
+
static const txNodeDispatch gxStatementsNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1355
|
+
fxStatementsNodeDistribute,
|
|
1356
|
+
fxNodeBind,
|
|
1357
|
+
fxNodeHoist,
|
|
1358
|
+
fxStatementsNodeCode,
|
|
1359
|
+
fxNodeCodeAssign,
|
|
1360
|
+
fxNodeCodeDelete,
|
|
1361
|
+
fxNodeCodeReference,
|
|
1362
|
+
fxNodeCodeThis
|
|
1363
|
+
};
|
|
1364
|
+
static const txNodeDispatch gxStringNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1365
|
+
fxNodeDistribute,
|
|
1366
|
+
fxNodeBind,
|
|
1367
|
+
fxStringNodeHoist,
|
|
1368
|
+
fxStringNodeCode,
|
|
1369
|
+
fxNodeCodeAssign,
|
|
1370
|
+
fxNodeCodeDelete,
|
|
1371
|
+
fxNodeCodeReference,
|
|
1372
|
+
fxNodeCodeThis
|
|
1373
|
+
};
|
|
1374
|
+
static const txNodeDispatch gxSuperNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1375
|
+
fxSuperNodeDistribute,
|
|
1376
|
+
fxSuperNodeBind,
|
|
1377
|
+
fxNodeHoist,
|
|
1378
|
+
fxSuperNodeCode,
|
|
1379
|
+
fxNodeCodeAssign,
|
|
1380
|
+
fxNodeCodeDelete,
|
|
1381
|
+
fxNodeCodeReference,
|
|
1382
|
+
fxNodeCodeThis
|
|
1383
|
+
};
|
|
1384
|
+
static const txNodeDispatch gxSwitchNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1385
|
+
fxSwitchNodeDistribute,
|
|
1386
|
+
fxSwitchNodeBind,
|
|
1387
|
+
fxSwitchNodeHoist,
|
|
1388
|
+
fxSwitchNodeCode,
|
|
1389
|
+
fxNodeCodeAssign,
|
|
1390
|
+
fxNodeCodeDelete,
|
|
1391
|
+
fxNodeCodeReference,
|
|
1392
|
+
fxNodeCodeThis
|
|
1393
|
+
};
|
|
1394
|
+
static const txNodeDispatch gxTemplateNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1395
|
+
fxTemplateNodeDistribute,
|
|
1396
|
+
fxTemplateNodeBind,
|
|
1397
|
+
fxNodeHoist,
|
|
1398
|
+
fxTemplateNodeCode,
|
|
1399
|
+
fxNodeCodeAssign,
|
|
1400
|
+
fxNodeCodeDelete,
|
|
1401
|
+
fxNodeCodeReference,
|
|
1402
|
+
fxNodeCodeThis
|
|
1403
|
+
};
|
|
1404
|
+
static const txNodeDispatch gxTemplateItemNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1405
|
+
fxTemplateItemNodeDistribute,
|
|
1406
|
+
fxNodeBind,
|
|
1407
|
+
fxNodeHoist,
|
|
1408
|
+
fxNodeCode,
|
|
1409
|
+
fxNodeCodeAssign,
|
|
1410
|
+
fxNodeCodeDelete,
|
|
1411
|
+
fxNodeCodeReference,
|
|
1412
|
+
fxNodeCodeThis
|
|
1413
|
+
};
|
|
1414
|
+
static const txNodeDispatch gxThisNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1415
|
+
fxNodeDistribute,
|
|
1416
|
+
fxNodeBind,
|
|
1417
|
+
fxNodeHoist,
|
|
1418
|
+
fxThisNodeCode,
|
|
1419
|
+
fxNodeCodeAssign,
|
|
1420
|
+
fxNodeCodeDelete,
|
|
1421
|
+
fxNodeCodeReference,
|
|
1422
|
+
fxNodeCodeThis
|
|
1423
|
+
};
|
|
1424
|
+
static const txNodeDispatch gxThrowNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1425
|
+
fxStatementNodeDistribute,
|
|
1426
|
+
fxNodeBind,
|
|
1427
|
+
fxNodeHoist,
|
|
1428
|
+
fxThrowNodeCode,
|
|
1429
|
+
fxNodeCodeAssign,
|
|
1430
|
+
fxNodeCodeDelete,
|
|
1431
|
+
fxNodeCodeReference,
|
|
1432
|
+
fxNodeCodeThis
|
|
1433
|
+
};
|
|
1434
|
+
static const txNodeDispatch gxTryNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1435
|
+
fxTryNodeDistribute,
|
|
1436
|
+
fxTryNodeBind,
|
|
1437
|
+
fxNodeHoist,
|
|
1438
|
+
fxTryNodeCode,
|
|
1439
|
+
fxNodeCodeAssign,
|
|
1440
|
+
fxNodeCodeDelete,
|
|
1441
|
+
fxNodeCodeReference,
|
|
1442
|
+
fxNodeCodeThis
|
|
1443
|
+
};
|
|
1444
|
+
static const txNodeDispatch gxUnaryExpressionNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1445
|
+
fxUnaryExpressionNodeDistribute,
|
|
1446
|
+
fxNodeBind,
|
|
1447
|
+
fxNodeHoist,
|
|
1448
|
+
fxUnaryExpressionNodeCode,
|
|
1449
|
+
fxNodeCodeAssign,
|
|
1450
|
+
fxNodeCodeDelete,
|
|
1451
|
+
fxNodeCodeReference,
|
|
1452
|
+
fxNodeCodeThis
|
|
1453
|
+
};
|
|
1454
|
+
static const txNodeDispatch gxUndefinedNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1455
|
+
fxNodeDistribute,
|
|
1456
|
+
fxNodeBind,
|
|
1457
|
+
fxNodeHoist,
|
|
1458
|
+
fxValueNodeCode,
|
|
1459
|
+
fxUndefinedNodeCodeAssign,
|
|
1460
|
+
fxUndefinedNodeCodeDelete,
|
|
1461
|
+
fxUndefinedNodeCodeReference,
|
|
1462
|
+
fxNodeCodeThis
|
|
1463
|
+
};
|
|
1464
|
+
static const txNodeDispatch gxValueNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1465
|
+
fxNodeDistribute,
|
|
1466
|
+
fxNodeBind,
|
|
1467
|
+
fxNodeHoist,
|
|
1468
|
+
fxValueNodeCode,
|
|
1469
|
+
fxNodeCodeAssign,
|
|
1470
|
+
fxNodeCodeDelete,
|
|
1471
|
+
fxNodeCodeReference,
|
|
1472
|
+
fxNodeCodeThis
|
|
1473
|
+
};
|
|
1474
|
+
static const txNodeDispatch gxWhileNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1475
|
+
fxWhileNodeDistribute,
|
|
1476
|
+
fxNodeBind,
|
|
1477
|
+
fxNodeHoist,
|
|
1478
|
+
fxWhileNodeCode,
|
|
1479
|
+
fxNodeCodeAssign,
|
|
1480
|
+
fxNodeCodeDelete,
|
|
1481
|
+
fxNodeCodeReference,
|
|
1482
|
+
fxNodeCodeThis
|
|
1483
|
+
};
|
|
1484
|
+
static const txNodeDispatch gxWithNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1485
|
+
fxWithNodeDistribute,
|
|
1486
|
+
fxWithNodeBind,
|
|
1487
|
+
fxWithNodeHoist,
|
|
1488
|
+
fxWithNodeCode,
|
|
1489
|
+
fxNodeCodeAssign,
|
|
1490
|
+
fxNodeCodeDelete,
|
|
1491
|
+
fxNodeCodeReference,
|
|
1492
|
+
fxNodeCodeThis
|
|
1493
|
+
};
|
|
1494
|
+
static const txNodeDispatch gxYieldNodeDispatch ICACHE_FLASH_ATTR = {
|
|
1495
|
+
fxStatementNodeDistribute,
|
|
1496
|
+
fxNodeBind,
|
|
1497
|
+
fxNodeHoist,
|
|
1498
|
+
fxYieldNodeCode,
|
|
1499
|
+
fxNodeCodeAssign,
|
|
1500
|
+
fxNodeCodeDelete,
|
|
1501
|
+
fxNodeCodeReference,
|
|
1502
|
+
fxNodeCodeThis
|
|
1503
|
+
};
|
|
1504
|
+
|
|
1505
|
+
const txNodeDescription gxTokenDescriptions[XS_TOKEN_COUNT] ICACHE_FLASH_ATTR = {
|
|
1506
|
+
{ XS_NO_CODE, XS_NO_TOKEN, "", 0, NULL },
|
|
1507
|
+
{ XS_NO_CODE, XS_TOKEN_ACCESS, "Access", sizeof(txAccessNode), &gxAccessNodeDispatch },
|
|
1508
|
+
{ XS_CODE_ADD, XS_TOKEN_ADD, "Add", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1509
|
+
{ XS_CODE_ADD, XS_TOKEN_ADD_ASSIGN, "AddAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1510
|
+
{ XS_NO_CODE, XS_TOKEN_AND, "And", sizeof(txBinaryExpressionNode), &gxAndExpressionNodeDispatch },
|
|
1511
|
+
{ XS_NO_CODE, XS_TOKEN_AND_ASSIGN, "AndAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1512
|
+
{ XS_NO_CODE, XS_TOKEN_ARG, "Arg", sizeof(txDeclareNode), &gxDeclareNodeDispatch },
|
|
1513
|
+
{ XS_NO_CODE, XS_TOKEN_ARGUMENTS, "Arguments", sizeof(txNode), &gxArgumentsNodeDispatch },
|
|
1514
|
+
{ XS_CODE_ARGUMENTS_SLOPPY, XS_TOKEN_ARGUMENTS_SLOPPY, "Arguments", sizeof(txNode), &gxValueNodeDispatch },
|
|
1515
|
+
{ XS_CODE_ARGUMENTS_STRICT, XS_TOKEN_ARGUMENTS_STRICT, "Arguments", sizeof(txNode), &gxValueNodeDispatch },
|
|
1516
|
+
{ XS_NO_CODE, XS_TOKEN_ARRAY, "Array", sizeof(txArrayNode), &gxArrayNodeDispatch },
|
|
1517
|
+
{ XS_NO_CODE, XS_TOKEN_ARRAY_BINDING, "ArrayBinding", sizeof(txArrayBindingNode), &gxArrayBindingNodeDispatch },
|
|
1518
|
+
{ XS_NO_CODE, XS_TOKEN_ARROW, "", 0, NULL },
|
|
1519
|
+
{ XS_NO_CODE, XS_TOKEN_ASSIGN, "Assign", sizeof(txAssignNode), &gxAssignNodeDispatch },
|
|
1520
|
+
{ XS_NO_CODE, XS_TOKEN_AWAIT, "Await", sizeof(txStatementNode), &gxAwaitNodeDispatch },
|
|
1521
|
+
{ XS_NO_CODE, XS_TOKEN_BIGINT, "BigInt", sizeof(txBigIntNode), &gxBigIntNodeDispatch },
|
|
1522
|
+
{ XS_NO_CODE, XS_TOKEN_BINDING, "Binding", sizeof(txBindingNode), &gxBindingNodeDispatch },
|
|
1523
|
+
{ XS_CODE_BIT_AND, XS_TOKEN_BIT_AND, "BitAnd", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1524
|
+
{ XS_CODE_BIT_AND, XS_TOKEN_BIT_AND_ASSIGN, "BitAndAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1525
|
+
{ XS_CODE_BIT_NOT, XS_TOKEN_BIT_NOT, "BitNot", sizeof(txUnaryExpressionNode), &gxUnaryExpressionNodeDispatch },
|
|
1526
|
+
{ XS_CODE_BIT_OR, XS_TOKEN_BIT_OR, "BitOr", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1527
|
+
{ XS_CODE_BIT_OR, XS_TOKEN_BIT_OR_ASSIGN, "BitOrAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1528
|
+
{ XS_CODE_BIT_XOR, XS_TOKEN_BIT_XOR, "BitXor", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1529
|
+
{ XS_CODE_BIT_XOR, XS_TOKEN_BIT_XOR_ASSIGN, "BitXorAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1530
|
+
{ XS_NO_CODE, XS_TOKEN_BLOCK, "Block", sizeof(txBlockNode), &gxBlockNodeDispatch },
|
|
1531
|
+
{ XS_NO_CODE, XS_TOKEN_BODY, "Body", sizeof(txBodyNode), &gxBodyNodeDispatch },
|
|
1532
|
+
{ XS_NO_CODE, XS_TOKEN_BREAK, "Break", sizeof(txBreakContinueNode), &gxBreakContinueNodeDispatch },
|
|
1533
|
+
{ XS_CODE_CALL, XS_TOKEN_CALL, "Call", sizeof(txCallNewNode), &gxCallNodeDispatch },
|
|
1534
|
+
{ XS_NO_CODE, XS_TOKEN_CASE, "Case", sizeof(txCaseNode), &gxCaseNodeDispatch },
|
|
1535
|
+
{ XS_NO_CODE, XS_TOKEN_CATCH, "Catch", sizeof(txCatchNode), &gxCatchNodeDispatch },
|
|
1536
|
+
{ XS_NO_CODE, XS_TOKEN_CHAIN, "Chain", sizeof(txUnaryExpressionNode), &gxChainNodeDispatch },
|
|
1537
|
+
{ XS_NO_CODE, XS_TOKEN_CLASS, "Class", sizeof(txClassNode), &gxClassNodeDispatch },
|
|
1538
|
+
{ XS_NO_CODE, XS_TOKEN_COALESCE, "Coalesce", sizeof(txBinaryExpressionNode), &gxCoalesceExpressionNodeDispatch },
|
|
1539
|
+
{ XS_NO_CODE, XS_TOKEN_COALESCE_ASSIGN, "CoalesceAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1540
|
+
{ XS_NO_CODE, XS_TOKEN_COLON, "", 0, NULL },
|
|
1541
|
+
{ XS_NO_CODE, XS_TOKEN_COMMA, "", 0, NULL },
|
|
1542
|
+
{ XS_NO_CODE, XS_TOKEN_CONST, "Const", sizeof(txDeclareNode), &gxDeclareNodeDispatch },
|
|
1543
|
+
{ XS_NO_CODE, XS_TOKEN_CONTINUE, "Continue", sizeof(txBreakContinueNode), &gxBreakContinueNodeDispatch },
|
|
1544
|
+
{ XS_CODE_CURRENT, XS_TOKEN_CURRENT, "Current", sizeof(txNode), &gxValueNodeDispatch },
|
|
1545
|
+
{ XS_CODE_DEBUGGER, XS_TOKEN_DEBUGGER, "Debugger", sizeof(txNode), &gxDebuggerNodeDispatch },
|
|
1546
|
+
{ XS_CODE_DECREMENT, XS_TOKEN_DECREMENT, "Decrement", sizeof(txPostfixExpressionNode), &gxPostfixExpressionNodeDispatch },
|
|
1547
|
+
{ XS_NO_CODE, XS_TOKEN_DEFAULT, "", 0, NULL },
|
|
1548
|
+
{ XS_NO_CODE, XS_TOKEN_DEFINE, "Define", sizeof(txDefineNode), &gxDefineNodeDispatch },
|
|
1549
|
+
{ XS_NO_CODE, XS_TOKEN_DELEGATE, "Delegate", sizeof(txStatementNode), &gxDelegateNodeDispatch },
|
|
1550
|
+
{ XS_NO_CODE, XS_TOKEN_DELETE, "Delete", sizeof(txDeleteNode), &gxDeleteNodeDispatch },
|
|
1551
|
+
{ XS_CODE_DIVIDE, XS_TOKEN_DIVIDE, "Divide", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1552
|
+
{ XS_CODE_DIVIDE, XS_TOKEN_DIVIDE_ASSIGN, "DivideAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1553
|
+
{ XS_NO_CODE, XS_TOKEN_DO, "Do", sizeof(txDoNode), &gxDoNodeDispatch },
|
|
1554
|
+
{ XS_NO_CODE, XS_TOKEN_DOT, "", 0, NULL },
|
|
1555
|
+
{ XS_CODE_UNDEFINED, XS_TOKEN_ELISION, "Elision", sizeof(txNode), &gxValueNodeDispatch },
|
|
1556
|
+
{ XS_NO_CODE, XS_TOKEN_ELSE, "", 0, NULL },
|
|
1557
|
+
{ XS_NO_CODE, XS_TOKEN_ENUM, "", 0, NULL },
|
|
1558
|
+
{ XS_NO_CODE, XS_TOKEN_EOF, "", 0, NULL },
|
|
1559
|
+
{ XS_CODE_EQUAL, XS_TOKEN_EQUAL, "Equal", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1560
|
+
{ XS_CODE_EVAL, XS_TOKEN_EVAL, "", 0, NULL },
|
|
1561
|
+
{ XS_CODE_EXPONENTIATION, XS_TOKEN_EXPONENTIATION, "Exponent", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1562
|
+
{ XS_CODE_EXPONENTIATION, XS_TOKEN_EXPONENTIATION_ASSIGN, "ExponentAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1563
|
+
{ XS_NO_CODE, XS_TOKEN_EXPORT, "Export", sizeof(txExportNode), &gxExportNodeDispatch },
|
|
1564
|
+
{ XS_NO_CODE, XS_TOKEN_EXPRESSIONS, "Expressions", sizeof(txExpressionsNode), &gxExpressionsNodeDispatch },
|
|
1565
|
+
{ XS_NO_CODE, XS_TOKEN_EXTENDS, "", 0, NULL },
|
|
1566
|
+
{ XS_CODE_FALSE, XS_TOKEN_FALSE, "False", sizeof(txNode), &gxValueNodeDispatch },
|
|
1567
|
+
{ XS_NO_CODE, XS_TOKEN_FIELD, "Field", sizeof(txFieldNode), &gxFieldNodeDispatch },
|
|
1568
|
+
{ XS_NO_CODE, XS_TOKEN_FINALLY, "", 0, NULL },
|
|
1569
|
+
{ XS_NO_CODE, XS_TOKEN_FOR, "For", sizeof(txForNode), &gxForNodeDispatch },
|
|
1570
|
+
{ XS_CODE_FOR_AWAIT_OF, XS_TOKEN_FOR_AWAIT_OF, "ForAwaitOf", sizeof(txForInForOfNode), &gxForInForOfNodeDispatch },
|
|
1571
|
+
{ XS_CODE_FOR_IN, XS_TOKEN_FOR_IN, "ForIn", sizeof(txForInForOfNode), &gxForInForOfNodeDispatch },
|
|
1572
|
+
{ XS_CODE_FOR_OF, XS_TOKEN_FOR_OF, "ForOf", sizeof(txForInForOfNode), &gxForInForOfNodeDispatch },
|
|
1573
|
+
{ XS_NO_CODE, XS_TOKEN_FUNCTION, "Function", sizeof(txFunctionNode), &gxFunctionNodeDispatch },
|
|
1574
|
+
{ XS_NO_CODE, XS_TOKEN_GENERATOR, "Generator", sizeof(txFunctionNode), &gxFunctionNodeDispatch },
|
|
1575
|
+
{ XS_NO_CODE, XS_TOKEN_GETTER, "Getter", sizeof(txFunctionNode), &gxFunctionNodeDispatch },
|
|
1576
|
+
{ XS_NO_CODE, XS_TOKEN_HOST, "Host", sizeof(txHostNode), &gxHostNodeDispatch },
|
|
1577
|
+
{ XS_NO_CODE, XS_TOKEN_IDENTIFIER, "", 0, NULL },
|
|
1578
|
+
{ XS_NO_CODE, XS_TOKEN_IF, "If", sizeof(txIfNode), &gxIfNodeDispatch },
|
|
1579
|
+
{ XS_NO_CODE, XS_TOKEN_IMPLEMENTS, "", 0, NULL },
|
|
1580
|
+
{ XS_NO_CODE, XS_TOKEN_IMPORT, "Import", sizeof(txImportNode), &gxImportNodeDispatch },
|
|
1581
|
+
{ XS_NO_CODE, XS_TOKEN_IMPORT_CALL, "ImportCall", sizeof(txStatementNode), &gxImportCallNodeDispatch },
|
|
1582
|
+
{ XS_NO_CODE, XS_TOKEN_IMPORT_META, "ImportMeta", sizeof(txNode), &gxImportMetaNodeDispatch },
|
|
1583
|
+
{ XS_CODE_IN, XS_TOKEN_IN, "In", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1584
|
+
{ XS_NO_CODE, XS_TOKEN_INCLUDE, "include", sizeof(txIncludeNode), &gxIncludeNodeDispatch },
|
|
1585
|
+
{ XS_CODE_INCREMENT, XS_TOKEN_INCREMENT, "Increment", sizeof(txPostfixExpressionNode), &gxPostfixExpressionNodeDispatch },
|
|
1586
|
+
{ XS_CODE_INSTANCEOF, XS_TOKEN_INSTANCEOF, "Instanceof", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1587
|
+
{ XS_NO_CODE, XS_TOKEN_INTEGER, "Integer", sizeof(txIntegerNode), &gxIntegerNodeDispatch },
|
|
1588
|
+
{ XS_NO_CODE, XS_TOKEN_INTERFACE, "", 0, NULL },
|
|
1589
|
+
{ XS_NO_CODE, XS_TOKEN_ITEMS, "Items", 0, NULL },
|
|
1590
|
+
{ XS_NO_CODE, XS_TOKEN_LABEL, "Label", sizeof(txLabelNode), &gxLabelNodeDispatch },
|
|
1591
|
+
{ XS_NO_CODE, XS_TOKEN_LEFT_BRACE, "", 0, NULL },
|
|
1592
|
+
{ XS_NO_CODE, XS_TOKEN_LEFT_BRACKET, "", 0, NULL },
|
|
1593
|
+
{ XS_NO_CODE, XS_TOKEN_LEFT_PARENTHESIS, "", 0, NULL },
|
|
1594
|
+
{ XS_CODE_LEFT_SHIFT, XS_TOKEN_LEFT_SHIFT, "LeftShift", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1595
|
+
{ XS_CODE_LEFT_SHIFT, XS_TOKEN_LEFT_SHIFT_ASSIGN, "LeftShiftAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1596
|
+
{ XS_CODE_LESS, XS_TOKEN_LESS, "Less", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1597
|
+
{ XS_CODE_LESS_EQUAL, XS_TOKEN_LESS_EQUAL, "LessEqual", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1598
|
+
{ XS_NO_CODE, XS_TOKEN_LET, "Let", sizeof(txDeclareNode), &gxDeclareNodeDispatch },
|
|
1599
|
+
{ XS_NO_CODE, XS_TOKEN_MEMBER, "Member", sizeof(txMemberNode), &gxMemberNodeDispatch },
|
|
1600
|
+
{ XS_NO_CODE, XS_TOKEN_MEMBER_AT, "MemberAt", sizeof(txMemberAtNode), &gxMemberAtNodeDispatch },
|
|
1601
|
+
{ XS_CODE_MINUS, XS_TOKEN_MINUS, "Minus", sizeof(txUnaryExpressionNode), &gxUnaryExpressionNodeDispatch },
|
|
1602
|
+
{ XS_NO_CODE, XS_TOKEN_MODULE, "Module", sizeof(txModuleNode), &gxModuleNodeDispatch },
|
|
1603
|
+
{ XS_CODE_MODULO, XS_TOKEN_MODULO, "Modulo", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1604
|
+
{ XS_CODE_MODULO, XS_TOKEN_MODULO_ASSIGN, "ModuloAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1605
|
+
{ XS_CODE_MORE, XS_TOKEN_MORE, "More", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1606
|
+
{ XS_CODE_MORE_EQUAL, XS_TOKEN_MORE_EQUAL, "MoreEqual", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1607
|
+
{ XS_CODE_MULTIPLY, XS_TOKEN_MULTIPLY, "Multiply", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1608
|
+
{ XS_CODE_MULTIPLY, XS_TOKEN_MULTIPLY_ASSIGN, "MultiplyAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1609
|
+
{ XS_CODE_NEW, XS_TOKEN_NEW, "New", sizeof(txCallNewNode), &gxNewNodeDispatch },
|
|
1610
|
+
{ XS_CODE_NOT, XS_TOKEN_NOT, "Not", sizeof(txUnaryExpressionNode), &gxUnaryExpressionNodeDispatch },
|
|
1611
|
+
{ XS_CODE_NOT_EQUAL, XS_TOKEN_NOT_EQUAL, "NotEqual", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1612
|
+
{ XS_CODE_NULL, XS_TOKEN_NULL, "Null", sizeof(txNode), &gxValueNodeDispatch },
|
|
1613
|
+
{ XS_NO_CODE, XS_TOKEN_NUMBER, "Number", sizeof(txNumberNode), &gxNumberNodeDispatch },
|
|
1614
|
+
{ XS_NO_CODE, XS_TOKEN_OBJECT, "Object", sizeof(txObjectNode), &gxObjectNodeDispatch },
|
|
1615
|
+
{ XS_NO_CODE, XS_TOKEN_OBJECT_BINDING, "ObjectBinding", sizeof(txObjectBindingNode), &gxObjectBindingNodeDispatch },
|
|
1616
|
+
{ XS_NO_CODE, XS_TOKEN_OPTION, "Option", sizeof(txUnaryExpressionNode), &gxOptionNodeDispatch },
|
|
1617
|
+
{ XS_NO_CODE, XS_TOKEN_OR, "Or", sizeof(txBinaryExpressionNode), &gxOrExpressionNodeDispatch },
|
|
1618
|
+
{ XS_NO_CODE, XS_TOKEN_OR_ASSIGN, "OrAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1619
|
+
{ XS_NO_CODE, XS_TOKEN_PACKAGE, "", 0, NULL },
|
|
1620
|
+
{ XS_NO_CODE, XS_TOKEN_PARAMS, "Params", sizeof(txParamsNode), &gxParamsNodeDispatch },
|
|
1621
|
+
{ XS_NO_CODE, XS_TOKEN_PARAMS_BINDING, "ParamsBinding", sizeof(txParamsBindingNode), &gxParamsBindingNodeDispatch },
|
|
1622
|
+
{ XS_CODE_PLUS, XS_TOKEN_PLUS, "Plus", sizeof(txUnaryExpressionNode), &gxUnaryExpressionNodeDispatch },
|
|
1623
|
+
{ XS_NO_CODE, XS_TOKEN_PRIVATE, "", 0, NULL },
|
|
1624
|
+
{ XS_NO_CODE, XS_TOKEN_PRIVATE_IDENTIFIER, "PrivateIdenfifier", sizeof(txPrivateMemberNode), &gxPrivateIdentifierNodeDispatch },
|
|
1625
|
+
{ XS_NO_CODE, XS_TOKEN_PRIVATE_MEMBER, "PrivateMember", sizeof(txPrivateMemberNode), &gxPrivateMemberNodeDispatch },
|
|
1626
|
+
{ XS_NO_CODE, XS_TOKEN_PRIVATE_PROPERTY, "PrivateProperty", sizeof(txPrivatePropertyNode), &gxPrivatePropertyNodeDispatch },
|
|
1627
|
+
{ XS_NO_CODE, XS_TOKEN_PROGRAM, "Program", sizeof(txProgramNode), &gxProgramNodeDispatch },
|
|
1628
|
+
{ XS_NO_CODE, XS_TOKEN_PROPERTY, "Property", sizeof(txPropertyNode), &gxPropertyNodeDispatch },
|
|
1629
|
+
{ XS_NO_CODE, XS_TOKEN_PROPERTY_AT, "PropertyAt", sizeof(txPropertyAtNode), &gxPropertyAtNodeDispatch },
|
|
1630
|
+
{ XS_NO_CODE, XS_TOKEN_PROPERTY_BINDING, "PropertyBinding", sizeof(txPropertyBindingNode), &gxPropertyBindingNodeDispatch },
|
|
1631
|
+
{ XS_NO_CODE, XS_TOKEN_PROPERTY_BINDING_AT, "PropertyBindingAt", sizeof(txPropertyBindingAtNode), &gxPropertyBindingAtNodeDispatch },
|
|
1632
|
+
{ XS_NO_CODE, XS_TOKEN_PROTECTED, "", 0, NULL },
|
|
1633
|
+
{ XS_NO_CODE, XS_TOKEN_PUBLIC, "", 0, NULL },
|
|
1634
|
+
{ XS_NO_CODE, XS_TOKEN_QUESTION_MARK, "QuestionMark", sizeof(txQuestionMarkNode), &gxQuestionMarkNodeDispatch },
|
|
1635
|
+
{ XS_NO_CODE, XS_TOKEN_REGEXP, "Regexp", sizeof(txRegexpNode), &gxRegexpNodeDispatch },
|
|
1636
|
+
{ XS_NO_CODE, XS_TOKEN_REST_BINDING, "RestBinding", sizeof(txRestBindingNode), &gxRestBindingNodeDispatch },
|
|
1637
|
+
{ XS_NO_CODE, XS_TOKEN_RETURN, "Return", sizeof(txStatementNode), &gxReturnNodeDispatch },
|
|
1638
|
+
{ XS_NO_CODE, XS_TOKEN_RIGHT_BRACE, "", 0, NULL },
|
|
1639
|
+
{ XS_NO_CODE, XS_TOKEN_RIGHT_BRACKET, "", 0, NULL },
|
|
1640
|
+
{ XS_NO_CODE, XS_TOKEN_RIGHT_PARENTHESIS, "", 0, NULL },
|
|
1641
|
+
{ XS_NO_CODE, XS_TOKEN_SEMICOLON, "", 0, NULL },
|
|
1642
|
+
{ XS_NO_CODE, XS_TOKEN_SETTER, "Setter", sizeof(txFunctionNode), &gxFunctionNodeDispatch },
|
|
1643
|
+
{ XS_NO_CODE, XS_TOKEN_SHORT, "", 0, NULL },
|
|
1644
|
+
{ XS_CODE_SIGNED_RIGHT_SHIFT, XS_TOKEN_SIGNED_RIGHT_SHIFT, "SignedRightShift", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1645
|
+
{ XS_CODE_SIGNED_RIGHT_SHIFT, XS_TOKEN_SIGNED_RIGHT_SHIFT_ASSIGN, "SignedRightShiftAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1646
|
+
{ XS_NO_CODE, XS_TOKEN_SKIP_BINDING, "SkipBinding", sizeof(txSkipBindingNode), &gxSkipBindingNodeDispatch },
|
|
1647
|
+
{ XS_NO_CODE, XS_TOKEN_SPECIFIER, "Specifier", sizeof(txSpecifierNode), &gxSpecifierNodeDispatch },
|
|
1648
|
+
{ XS_NO_CODE, XS_TOKEN_SPREAD, "Spread", sizeof(txSpreadNode), &gxSpreadNodeDispatch },
|
|
1649
|
+
{ XS_NO_CODE, XS_TOKEN_STATEMENT, "Statement", sizeof(txStatementNode), &gxStatementNodeDispatch },
|
|
1650
|
+
{ XS_NO_CODE, XS_TOKEN_STATEMENTS, "Statements", sizeof(txStatementsNode), &gxStatementsNodeDispatch },
|
|
1651
|
+
{ XS_NO_CODE, XS_TOKEN_STATIC, "", 0, NULL },
|
|
1652
|
+
{ XS_CODE_STRICT_EQUAL, XS_TOKEN_STRICT_EQUAL, "StrictEqual", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1653
|
+
{ XS_CODE_STRICT_NOT_EQUAL, XS_TOKEN_STRICT_NOT_EQUAL, "StrictNotEqual", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1654
|
+
{ XS_NO_CODE, XS_TOKEN_STRING, "String", sizeof(txStringNode), &gxStringNodeDispatch },
|
|
1655
|
+
{ XS_CODE_SUBTRACT, XS_TOKEN_SUBTRACT, "Subtract", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1656
|
+
{ XS_CODE_SUBTRACT, XS_TOKEN_SUBTRACT_ASSIGN, "SubtractAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1657
|
+
{ XS_CODE_SUPER, XS_TOKEN_SUPER, "Super", sizeof(txSuperNode), &gxSuperNodeDispatch },
|
|
1658
|
+
{ XS_NO_CODE, XS_TOKEN_SWITCH, "Switch", sizeof(txSwitchNode), &gxSwitchNodeDispatch },
|
|
1659
|
+
{ XS_CODE_TARGET, XS_TOKEN_TARGET, "Target", sizeof(txNode), &gxValueNodeDispatch },
|
|
1660
|
+
{ XS_NO_CODE, XS_TOKEN_TEMPLATE, "Template", sizeof(txTemplateNode), &gxTemplateNodeDispatch },
|
|
1661
|
+
{ XS_NO_CODE, XS_TOKEN_TEMPLATE_HEAD, "", 0, NULL },
|
|
1662
|
+
{ XS_NO_CODE, XS_TOKEN_TEMPLATE_MIDDLE, "TemplateItem", sizeof(txTemplateItemNode), &gxTemplateItemNodeDispatch },
|
|
1663
|
+
{ XS_NO_CODE, XS_TOKEN_TEMPLATE_TAIL, "", 0, NULL },
|
|
1664
|
+
{ XS_CODE_THIS, XS_TOKEN_THIS, "This", sizeof(txNode), &gxThisNodeDispatch },
|
|
1665
|
+
{ XS_NO_CODE, XS_TOKEN_THROW, "Throw", sizeof(txStatementNode), &gxThrowNodeDispatch },
|
|
1666
|
+
{ XS_CODE_TRUE, XS_TOKEN_TRUE, "True", sizeof(txNode), &gxValueNodeDispatch },
|
|
1667
|
+
{ XS_NO_CODE, XS_TOKEN_TRY, "Try", sizeof(txTryNode), &gxTryNodeDispatch },
|
|
1668
|
+
{ XS_CODE_TYPEOF, XS_TOKEN_TYPEOF, "Typeof", sizeof(txUnaryExpressionNode), &gxUnaryExpressionNodeDispatch },
|
|
1669
|
+
{ XS_CODE_UNDEFINED, XS_TOKEN_UNDEFINED, "Undefined", sizeof(txNode), &gxUndefinedNodeDispatch },
|
|
1670
|
+
{ XS_CODE_UNSIGNED_RIGHT_SHIFT, XS_TOKEN_UNSIGNED_RIGHT_SHIFT, "UnsignedRightShift", sizeof(txBinaryExpressionNode), &gxBinaryExpressionNodeDispatch },
|
|
1671
|
+
{ XS_CODE_UNSIGNED_RIGHT_SHIFT, XS_TOKEN_UNSIGNED_RIGHT_SHIFT_ASSIGN, "UnsignedRightShiftAssign", sizeof(txAssignNode), &gxCompoundExpressionNodeDispatch },
|
|
1672
|
+
{ XS_NO_CODE, XS_TOKEN_VAR, "Var", sizeof(txDeclareNode), &gxDeclareNodeDispatch },
|
|
1673
|
+
{ XS_CODE_VOID, XS_TOKEN_VOID, "Void", sizeof(txUnaryExpressionNode), &gxUnaryExpressionNodeDispatch },
|
|
1674
|
+
{ XS_NO_CODE, XS_TOKEN_WHILE, "While", sizeof(txWhileNode), &gxWhileNodeDispatch },
|
|
1675
|
+
{ XS_NO_CODE, XS_TOKEN_WITH, "With", sizeof(txWithNode), &gxWithNodeDispatch },
|
|
1676
|
+
{ XS_NO_CODE, XS_TOKEN_YIELD, "Yield", sizeof(txStatementNode), &gxYieldNodeDispatch },
|
|
1677
|
+
};
|
|
1678
|
+
|
|
1679
|
+
#ifdef mxTreePrint
|
|
1680
|
+
|
|
1681
|
+
void fxTreePrint(txParser* parser, txNode* node)
|
|
1682
|
+
{
|
|
1683
|
+
txPrinter printer;
|
|
1684
|
+
printer.tabs = 0;
|
|
1685
|
+
fxNodePrintTree(node, &printer);
|
|
1686
|
+
fprintf(stderr, "\n");
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1689
|
+
void fxNodePrintTree(void* it, void* param)
|
|
1690
|
+
{
|
|
1691
|
+
txNode* node = it;
|
|
1692
|
+
txPrinter* printer = param;
|
|
1693
|
+
txInteger tabs = printer->tabs;
|
|
1694
|
+
fprintf(stderr, "\n");
|
|
1695
|
+
while (tabs) {
|
|
1696
|
+
fprintf(stderr, "\t");
|
|
1697
|
+
tabs--;
|
|
1698
|
+
}
|
|
1699
|
+
if (node) {
|
|
1700
|
+
switch (node->description->token) {
|
|
1701
|
+
case XS_TOKEN_ACCESS:
|
|
1702
|
+
fxAccessNodePrintNode(it);
|
|
1703
|
+
break;
|
|
1704
|
+
case XS_TOKEN_ARG:
|
|
1705
|
+
case XS_TOKEN_CONST:
|
|
1706
|
+
case XS_TOKEN_DEFINE:
|
|
1707
|
+
case XS_TOKEN_LET:
|
|
1708
|
+
case XS_TOKEN_VAR:
|
|
1709
|
+
fxDeclareDefineNodePrintNode(it);
|
|
1710
|
+
break;
|
|
1711
|
+
case XS_TOKEN_EXPORT:
|
|
1712
|
+
fxExportNodePrintNode(it);
|
|
1713
|
+
break;
|
|
1714
|
+
case XS_TOKEN_IMPORT:
|
|
1715
|
+
fxImportNodePrintNode(it);
|
|
1716
|
+
break;
|
|
1717
|
+
case XS_TOKEN_INTEGER:
|
|
1718
|
+
fxIntegerNodePrintNode(it);
|
|
1719
|
+
break;
|
|
1720
|
+
case XS_TOKEN_FUNCTION:
|
|
1721
|
+
fxFunctionNodePrintNode(it);
|
|
1722
|
+
break;
|
|
1723
|
+
case XS_TOKEN_LABEL:
|
|
1724
|
+
fxLabelNodePrintNode(it);
|
|
1725
|
+
break;
|
|
1726
|
+
case XS_TOKEN_MEMBER:
|
|
1727
|
+
fxMemberNodePrintNode(it);
|
|
1728
|
+
break;
|
|
1729
|
+
case XS_TOKEN_NUMBER:
|
|
1730
|
+
fxNumberNodePrintNode(it);
|
|
1731
|
+
break;
|
|
1732
|
+
case XS_TOKEN_PROPERTY:
|
|
1733
|
+
fxPropertyNodePrintNode(it);
|
|
1734
|
+
break;
|
|
1735
|
+
case XS_TOKEN_PROPERTY_BINDING:
|
|
1736
|
+
fxPropertyBindingNodePrintNode(it);
|
|
1737
|
+
break;
|
|
1738
|
+
case XS_TOKEN_SPECIFIER:
|
|
1739
|
+
fxSpecifierNodePrintNode(it);
|
|
1740
|
+
break;
|
|
1741
|
+
case XS_TOKEN_STRING:
|
|
1742
|
+
fxStringNodePrintNode(it);
|
|
1743
|
+
break;
|
|
1744
|
+
default:
|
|
1745
|
+
fxNodePrintNode(it);
|
|
1746
|
+
break;
|
|
1747
|
+
}
|
|
1748
|
+
if (node->flags) {
|
|
1749
|
+
fprintf(stderr, " [");
|
|
1750
|
+
if (node->flags & mxArgumentsFlag)
|
|
1751
|
+
fprintf(stderr, " arguments");
|
|
1752
|
+
if (node->flags & mxArrowFlag)
|
|
1753
|
+
fprintf(stderr, " arrow");
|
|
1754
|
+
if (node->flags & mxAsyncFlag)
|
|
1755
|
+
fprintf(stderr, " async");
|
|
1756
|
+
if (node->flags & mxAwaitingFlag)
|
|
1757
|
+
fprintf(stderr, " await");
|
|
1758
|
+
if (node->flags & mxBaseFlag)
|
|
1759
|
+
fprintf(stderr, " base");
|
|
1760
|
+
if (node->flags & mxDerivedFlag)
|
|
1761
|
+
fprintf(stderr, " derived");
|
|
1762
|
+
if (node->flags & mxEvalFlag)
|
|
1763
|
+
fprintf(stderr, " eval");
|
|
1764
|
+
if (node->flags & mxFieldFlag)
|
|
1765
|
+
fprintf(stderr, " field");
|
|
1766
|
+
if (node->flags & mxTargetFlag)
|
|
1767
|
+
fprintf(stderr, " function");
|
|
1768
|
+
if (node->flags & mxGeneratorFlag)
|
|
1769
|
+
fprintf(stderr, " generator");
|
|
1770
|
+
if (node->flags & mxGetterFlag)
|
|
1771
|
+
fprintf(stderr, " getter");
|
|
1772
|
+
if (node->flags & mxMethodFlag)
|
|
1773
|
+
fprintf(stderr, " method");
|
|
1774
|
+
if (node->flags & mxSetterFlag)
|
|
1775
|
+
fprintf(stderr, " setter");
|
|
1776
|
+
if (node->flags & mxStaticFlag)
|
|
1777
|
+
fprintf(stderr, " static");
|
|
1778
|
+
if (node->flags & mxStrictFlag)
|
|
1779
|
+
fprintf(stderr, " strict");
|
|
1780
|
+
if (node->flags & mxSuperFlag)
|
|
1781
|
+
fprintf(stderr, " super");
|
|
1782
|
+
fprintf(stderr, " ]");
|
|
1783
|
+
}
|
|
1784
|
+
printer->tabs++;
|
|
1785
|
+
(*node->description->dispatch->distribute)(node, fxNodePrintTree, param);
|
|
1786
|
+
printer->tabs--;
|
|
1787
|
+
}
|
|
1788
|
+
else
|
|
1789
|
+
fprintf(stderr, "NULL");
|
|
1790
|
+
}
|
|
1791
|
+
|
|
1792
|
+
|
|
1793
|
+
void fxNodePrintNode(void* it)
|
|
1794
|
+
{
|
|
1795
|
+
txNode* node = it;
|
|
1796
|
+
fprintf(stderr, "%s", node->description->name);
|
|
1797
|
+
}
|
|
1798
|
+
|
|
1799
|
+
void fxAccessNodePrintNode(void* it)
|
|
1800
|
+
{
|
|
1801
|
+
txAccessNode* node = it;
|
|
1802
|
+
fprintf(stderr, "%s %s", node->description->name, node->symbol->string);
|
|
1803
|
+
}
|
|
1804
|
+
|
|
1805
|
+
void fxDeclareDefineNodePrintNode(void* it)
|
|
1806
|
+
{
|
|
1807
|
+
txDeclareNode* node = it;
|
|
1808
|
+
fprintf(stderr, "%s %s", node->description->name, node->symbol->string);
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
void fxExportNodePrintNode(void* it)
|
|
1812
|
+
{
|
|
1813
|
+
txExportNode* node = it;
|
|
1814
|
+
fprintf(stderr, "%s ", node->description->name);
|
|
1815
|
+
if (node->from)
|
|
1816
|
+
fprintf(stderr, "\"%s\" ", ((txStringNode*)node->from)->value);
|
|
1817
|
+
if (!node->specifiers)
|
|
1818
|
+
fprintf(stderr, "* ");
|
|
1819
|
+
}
|
|
1820
|
+
|
|
1821
|
+
void fxFunctionNodePrintNode(void* it)
|
|
1822
|
+
{
|
|
1823
|
+
txFunctionNode* node = it;
|
|
1824
|
+
fprintf(stderr, "%s", node->description->name);
|
|
1825
|
+
if (node->symbol)
|
|
1826
|
+
fprintf(stderr, " %s", node->symbol->string);
|
|
1827
|
+
}
|
|
1828
|
+
|
|
1829
|
+
void fxImportNodePrintNode(void* it)
|
|
1830
|
+
{
|
|
1831
|
+
txImportNode* node = it;
|
|
1832
|
+
fprintf(stderr, "%s ", node->description->name);
|
|
1833
|
+
if (node->from)
|
|
1834
|
+
fprintf(stderr, "\"%s\" ", ((txStringNode*)node->from)->value);
|
|
1835
|
+
else
|
|
1836
|
+
fprintf(stderr, "\"?\" ");
|
|
1837
|
+
}
|
|
1838
|
+
|
|
1839
|
+
void fxIntegerNodePrintNode(void* it)
|
|
1840
|
+
{
|
|
1841
|
+
txIntegerNode* node = it;
|
|
1842
|
+
fprintf(stderr, "%s %d", node->description->name, node->value);
|
|
1843
|
+
}
|
|
1844
|
+
|
|
1845
|
+
void fxLabelNodePrintNode(void* it)
|
|
1846
|
+
{
|
|
1847
|
+
txLabelNode* node = it;
|
|
1848
|
+
fprintf(stderr, "%s", node->description->name);
|
|
1849
|
+
if (node->symbol)
|
|
1850
|
+
fprintf(stderr, " %s", node->symbol->string);
|
|
1851
|
+
}
|
|
1852
|
+
|
|
1853
|
+
void fxMemberNodePrintNode(void* it)
|
|
1854
|
+
{
|
|
1855
|
+
txMemberNode* node = it;
|
|
1856
|
+
fprintf(stderr, "%s %s", node->description->name, node->symbol->string);
|
|
1857
|
+
}
|
|
1858
|
+
|
|
1859
|
+
void fxNumberNodePrintNode(void* it)
|
|
1860
|
+
{
|
|
1861
|
+
txNumberNode* node = it;
|
|
1862
|
+
fprintf(stderr, "%s %lf", node->description->name, node->value);
|
|
1863
|
+
}
|
|
1864
|
+
|
|
1865
|
+
void fxPropertyNodePrintNode(void* it)
|
|
1866
|
+
{
|
|
1867
|
+
txPropertyNode* node = it;
|
|
1868
|
+
fprintf(stderr, "%s %s", node->description->name, node->symbol->string);
|
|
1869
|
+
}
|
|
1870
|
+
|
|
1871
|
+
void fxPropertyBindingNodePrintNode(void* it)
|
|
1872
|
+
{
|
|
1873
|
+
txPropertyBindingNode* node = it;
|
|
1874
|
+
fprintf(stderr, "%s %s", node->description->name, node->symbol->string);
|
|
1875
|
+
}
|
|
1876
|
+
|
|
1877
|
+
void fxSpecifierNodePrintNode(void* it)
|
|
1878
|
+
{
|
|
1879
|
+
txSpecifierNode* node = it;
|
|
1880
|
+
fprintf(stderr, "%s", node->description->name);
|
|
1881
|
+
if (node->symbol)
|
|
1882
|
+
fprintf(stderr, " %s", node->symbol->string);
|
|
1883
|
+
if (node->asSymbol)
|
|
1884
|
+
fprintf(stderr, " as %s", node->asSymbol->string);
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1887
|
+
void fxStringNodePrintNode(void* it)
|
|
1888
|
+
{
|
|
1889
|
+
txStringNode* node = it;
|
|
1890
|
+
fprintf(stderr, "%s \"%s\"", node->description->name, node->value);
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1893
|
+
#endif
|