@lcap/nasl 2.18.0-beta.5 → 2.18.0-beta.7
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/out/common/BaseNode.js +1 -0
- package/out/common/BaseNode.js.map +1 -1
- package/out/concepts/BatchAssignment__.js +63 -46
- package/out/concepts/BatchAssignment__.js.map +1 -1
- package/out/concepts/CallLogic__.d.ts +2 -1
- package/out/concepts/CallLogic__.js +26 -11
- package/out/concepts/CallLogic__.js.map +1 -1
- package/out/concepts/Destination__.d.ts +2 -1
- package/out/concepts/Destination__.js +90 -22
- package/out/concepts/Destination__.js.map +1 -1
- package/out/concepts/Logic__.js +6 -7
- package/out/concepts/Logic__.js.map +1 -1
- package/out/concepts/MatchExpression__.d.ts +97 -0
- package/out/concepts/MatchExpression__.js +281 -0
- package/out/concepts/MatchExpression__.js.map +1 -0
- package/out/concepts/ViewElement__.js +1 -1
- package/out/concepts/ViewElement__.js.map +1 -1
- package/out/concepts/View__.js +4 -0
- package/out/concepts/View__.js.map +1 -1
- package/out/generator/genBundleFiles.js +32 -182
- package/out/generator/genBundleFiles.js.map +1 -1
- package/out/generator/genMetaData.d.ts +1 -10
- package/out/generator/genMetaData.js +189 -50
- package/out/generator/genMetaData.js.map +1 -1
- package/out/generator/genReleaseBody.js +11 -2
- package/out/generator/genReleaseBody.js.map +1 -1
- package/out/server/extendBaseNode.js +4 -18
- package/out/server/extendBaseNode.js.map +1 -1
- package/out/server/formatTsUtils.d.ts +1 -2
- package/out/server/formatTsUtils.js +30 -47
- package/out/server/formatTsUtils.js.map +1 -1
- package/out/server/getProcesses.js +1 -1
- package/out/server/getProcesses.js.map +1 -1
- package/out/server/naslServer.js +8 -7
- package/out/server/naslServer.js.map +1 -1
- package/out/server/translator.js +19 -4
- package/out/server/translator.js.map +1 -1
- package/out/templator/sql-parser/index.d.ts +1 -0
- package/out/templator/sql-parser/index.js +228 -0
- package/out/templator/sql-parser/index.js.map +1 -0
- package/out/templator/sql-parser/parser.js +26664 -0
- package/out/templator/sql-parser/parser.js.map +1 -0
- package/package.json +2 -2
- package/sandbox/stdlib/dist/nasl.logging.js +0 -0
- package/sandbox/stdlib/nasl.util.ts +1 -1
- package/src/automate/engine/dist/index.dev.js +517 -0
- package/src/common/BaseNode.ts +1 -0
- package/src/common/dist/BaseNode.js +1101 -0
- package/src/concepts/BatchAssignment__.ts +66 -50
- package/src/concepts/CallLogic__.ts +26 -11
- package/src/concepts/Destination__.ts +92 -22
- package/src/concepts/Logic__.ts +6 -7
- package/src/concepts/ViewElement__.ts +8 -29
- package/src/concepts/View__.ts +4 -0
- package/src/concepts/basics/stdlib/dist/nasl.util.js +1503 -0
- package/src/concepts/basics/stdlib/dist/reference2TypeAnnotationList.js +24 -0
- package/src/concepts/dist/Anchor__.js +179 -0
- package/src/concepts/dist/Assignment__.js +301 -0
- package/src/concepts/dist/CallFunction__.js +513 -0
- package/src/concepts/dist/CallInterface__.js +533 -0
- package/src/concepts/dist/CallLogic__.js +892 -0
- package/src/concepts/dist/ForEachStatement__.js +426 -0
- package/src/concepts/dist/MatchCase__.js +587 -0
- package/src/concepts/dist/Match__.js +631 -0
- package/src/concepts/dist/MemberExpression__.js +348 -0
- package/src/concepts/dist/Param__.js +538 -0
- package/src/concepts/dist/Return__.js +494 -0
- package/src/concepts/dist/Variable__.js +537 -0
- package/src/concepts/dist/ViewElement__.js +1680 -0
- package/src/generator/dist/genBundleFiles.js +261 -0
- package/src/generator/dist/genMetaData.js +249 -0
- package/src/generator/genBundleFiles.ts +34 -219
- package/src/generator/genMetaData.ts +182 -77
- package/src/generator/genReleaseBody.ts +10 -3
- package/src/server/dist/formatTsUtils.js +683 -0
- package/src/server/dist/naslServer.js +3474 -0
- package/src/server/extendBaseNode.ts +4 -19
- package/src/server/formatTsUtils.ts +30 -46
- package/src/server/getProcesses.ts +1 -1
- package/src/server/naslServer.ts +8 -7
- package/src/server/translator.ts +18 -4
- package/src/service/storage/dist/init.js +572 -0
- package/ts-worker/dist/webpack.config.dev.js +108 -0
- package/dist/bundle.js +0 -3962
- package/dist/bundle.js.LICENSE.txt +0 -16
- package/out/generator/release.d.ts +0 -1
- package/out/generator/release.js +0 -51
- package/out/generator/release.js.map +0 -1
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
extendStatics(d, b);
|
|
11
|
+
function __() { this.constructor = d; }
|
|
12
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
16
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
17
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
18
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
19
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
20
|
+
};
|
|
21
|
+
exports.__esModule = true;
|
|
22
|
+
exports.MemberExpression = void 0;
|
|
23
|
+
var translator_1 = require("../translator");
|
|
24
|
+
var Identifier_RE = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
|
|
25
|
+
var decorators_1 = require("../decorators");
|
|
26
|
+
var classMap_1 = require("../common/classMap");
|
|
27
|
+
var LogicItem__1 = require("./LogicItem__");
|
|
28
|
+
/**
|
|
29
|
+
* 成员表达式
|
|
30
|
+
*/
|
|
31
|
+
var MemberExpression = /** @class */ (function (_super) {
|
|
32
|
+
__extends(MemberExpression, _super);
|
|
33
|
+
/**
|
|
34
|
+
* @param source 需要合并的部分参数
|
|
35
|
+
*/
|
|
36
|
+
function MemberExpression(source) {
|
|
37
|
+
var _this = this;
|
|
38
|
+
source = Object.assign({}, MemberExpression_1.getDefaultOptions(), source);
|
|
39
|
+
_this = _super.call(this, source) || this;
|
|
40
|
+
/**
|
|
41
|
+
* 产品概念
|
|
42
|
+
*/
|
|
43
|
+
_this.concept = 'MemberExpression';
|
|
44
|
+
/**
|
|
45
|
+
* 逻辑项
|
|
46
|
+
*/
|
|
47
|
+
_this.object = undefined;
|
|
48
|
+
/**
|
|
49
|
+
* 逻辑项
|
|
50
|
+
*/
|
|
51
|
+
_this.property = undefined;
|
|
52
|
+
//================================================================================
|
|
53
|
+
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
|
54
|
+
// 自动生成的代码已结束。下面可以手动编写。
|
|
55
|
+
//================================================================================
|
|
56
|
+
// 选中的数据类型,这个用作暂存
|
|
57
|
+
_this.typeAnnotation = undefined;
|
|
58
|
+
_super.prototype.subConstructor.call(_this, source);
|
|
59
|
+
return _this;
|
|
60
|
+
}
|
|
61
|
+
MemberExpression_1 = MemberExpression;
|
|
62
|
+
MemberExpression.from = function (source, parentNode, parentKey) {
|
|
63
|
+
return _super.from.call(this, source, parentNode, parentKey);
|
|
64
|
+
};
|
|
65
|
+
MemberExpression.prototype.removeObject = function (options) {
|
|
66
|
+
var object;
|
|
67
|
+
if (typeof options === 'string') {
|
|
68
|
+
object = this.object;
|
|
69
|
+
if (!object) {
|
|
70
|
+
throw new Error('找不到逻辑项 ' + options);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
object = options;
|
|
75
|
+
}
|
|
76
|
+
return object["delete"]();
|
|
77
|
+
};
|
|
78
|
+
MemberExpression.prototype.removeProperty = function (options) {
|
|
79
|
+
var property;
|
|
80
|
+
if (typeof options === 'string') {
|
|
81
|
+
property = this.property;
|
|
82
|
+
if (!property) {
|
|
83
|
+
throw new Error('找不到逻辑项 ' + options);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
property = options;
|
|
88
|
+
}
|
|
89
|
+
return property["delete"]();
|
|
90
|
+
};
|
|
91
|
+
MemberExpression.prototype.__removeLogicItem = function (logicItem) {
|
|
92
|
+
var parentKey = logicItem.parentKey;
|
|
93
|
+
var params = {
|
|
94
|
+
parentNode: this,
|
|
95
|
+
parentKey: parentKey,
|
|
96
|
+
index: -1,
|
|
97
|
+
object: null,
|
|
98
|
+
oldObject: logicItem
|
|
99
|
+
};
|
|
100
|
+
if (parentKey) {
|
|
101
|
+
params.parentKey = parentKey;
|
|
102
|
+
if (Array.isArray(this[parentKey])) {
|
|
103
|
+
var index = this[parentKey].indexOf(logicItem);
|
|
104
|
+
~index && this[parentKey].splice(index, 1);
|
|
105
|
+
params.index = index;
|
|
106
|
+
}
|
|
107
|
+
else if (this[parentKey] === logicItem) {
|
|
108
|
+
params.index = 0;
|
|
109
|
+
this[parentKey] = undefined;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return params;
|
|
113
|
+
};
|
|
114
|
+
MemberExpression.prototype.toVue = function (options) {
|
|
115
|
+
var _a, _b, _c, _d, _e, _f;
|
|
116
|
+
// 如果是枚举取值
|
|
117
|
+
if (((_a = this.object) === null || _a === void 0 ? void 0 : _a.concept) === 'Identifier' && ((_b = this.object) === null || _b === void 0 ? void 0 : _b.isEnum()) && ((_c = this.property) === null || _c === void 0 ? void 0 : _c.concept) === 'Identifier') {
|
|
118
|
+
return "\"" + ((_d = this.property) === null || _d === void 0 ? void 0 : _d.name) + "\"";
|
|
119
|
+
}
|
|
120
|
+
var object = String((_e = this.object) === null || _e === void 0 ? void 0 : _e.toVue(options)); // undefined 也让正常展示
|
|
121
|
+
var property = String((_f = this.property) === null || _f === void 0 ? void 0 : _f.toVue(options));
|
|
122
|
+
var bindAttr = this.getAncestor('BindAttribute');
|
|
123
|
+
if (bindAttr && (bindAttr.sync || bindAttr.model))
|
|
124
|
+
return Identifier_RE.test(property) ? object + "." + property : object + "['" + property + "']";
|
|
125
|
+
if (Identifier_RE.test(property))
|
|
126
|
+
return (options === null || options === void 0 ? void 0 : options.finalCode) === false ? object + "." + property : "(" + object + " || {})." + property;
|
|
127
|
+
else
|
|
128
|
+
return (options === null || options === void 0 ? void 0 : options.finalCode) === false ? object + "['" + property + "']" : "(" + object + " || {})['" + property + "']";
|
|
129
|
+
};
|
|
130
|
+
MemberExpression.prototype.toUI = function () {
|
|
131
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
132
|
+
// 如果是枚举取值
|
|
133
|
+
if (((_a = this.object) === null || _a === void 0 ? void 0 : _a.concept) === 'Identifier' && ((_b = this.object) === null || _b === void 0 ? void 0 : _b.isEnum()) && ((_c = this.property) === null || _c === void 0 ? void 0 : _c.concept) === 'Identifier') {
|
|
134
|
+
return ((_d = this.object) === null || _d === void 0 ? void 0 : _d.name) + "." + ((_e = this.property) === null || _e === void 0 ? void 0 : _e.name);
|
|
135
|
+
}
|
|
136
|
+
var object = (_f = this.object) === null || _f === void 0 ? void 0 : _f.toUI();
|
|
137
|
+
var property = (_g = this.property) === null || _g === void 0 ? void 0 : _g.toUI();
|
|
138
|
+
return Identifier_RE.test(property) ? object + "." + property : object + "['" + property + "']";
|
|
139
|
+
};
|
|
140
|
+
MemberExpression.prototype.toJS = function () {
|
|
141
|
+
var _a, _b, _c, _d, _e, _f;
|
|
142
|
+
// 如果是枚举取值
|
|
143
|
+
if (((_a = this.object) === null || _a === void 0 ? void 0 : _a.concept) === 'Identifier' && ((_b = this.object) === null || _b === void 0 ? void 0 : _b.isEnum()) && ((_c = this.property) === null || _c === void 0 ? void 0 : _c.concept) === 'Identifier') {
|
|
144
|
+
return "\"" + ((_d = this.property) === null || _d === void 0 ? void 0 : _d.name) + "\"";
|
|
145
|
+
}
|
|
146
|
+
var object = (_e = this.object) === null || _e === void 0 ? void 0 : _e.toJS();
|
|
147
|
+
var property = (_f = this.property) === null || _f === void 0 ? void 0 : _f.toJS();
|
|
148
|
+
// 在赋值语句的左侧,不能有 &&
|
|
149
|
+
var assignment = this.getAncestor('Assignment');
|
|
150
|
+
var batchAssignment = this.getAncestor('BatchAssignment');
|
|
151
|
+
if (assignment) {
|
|
152
|
+
var left = assignment.left;
|
|
153
|
+
var node = this;
|
|
154
|
+
while (node.parentNode && node.parentNode.concept === 'MemberExpression') {
|
|
155
|
+
node = node.parentNode;
|
|
156
|
+
}
|
|
157
|
+
// 在赋值语句的左侧
|
|
158
|
+
if (left === node) {
|
|
159
|
+
return Identifier_RE.test(property) ? object + "." + property : object + "['" + property + "']";
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else if (batchAssignment) {
|
|
163
|
+
var selectMember = batchAssignment.left;
|
|
164
|
+
var topNode = this;
|
|
165
|
+
while (topNode.parentNode && topNode.parentNode.concept === 'MemberExpression') {
|
|
166
|
+
topNode = topNode.parentNode;
|
|
167
|
+
}
|
|
168
|
+
// 在赋值语句的左侧
|
|
169
|
+
if (selectMember === topNode.parentNode) {
|
|
170
|
+
return Identifier_RE.test(property) ? object + "." + property : object + "['" + property + "']";
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return Identifier_RE.test(property) ? "(" + object + " || {})." + property : "(" + object + " || {})['" + property + "']";
|
|
174
|
+
};
|
|
175
|
+
MemberExpression.prototype.toBrief = function () {
|
|
176
|
+
return this.object.toBrief() + "." + this.property.toBrief();
|
|
177
|
+
};
|
|
178
|
+
MemberExpression.prototype.setValue = function (newValue) {
|
|
179
|
+
var valueList = newValue.split('.');
|
|
180
|
+
var newValueList = valueList.reverse();
|
|
181
|
+
var arrIndex = 0;
|
|
182
|
+
var current = this;
|
|
183
|
+
while (current.object) {
|
|
184
|
+
if (current.property.name !== newValueList[arrIndex]) {
|
|
185
|
+
current.property.setName(newValueList[arrIndex]);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
current = current.object;
|
|
189
|
+
arrIndex++;
|
|
190
|
+
}
|
|
191
|
+
// 前面没有找到,到这里就是最后一项的值要修改
|
|
192
|
+
// 最后一个是Identifier,他的值是自己的name
|
|
193
|
+
current.setName(newValueList[arrIndex]);
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* 设置数据结构属性名称
|
|
197
|
+
*/
|
|
198
|
+
MemberExpression.prototype.setName = function (name) {
|
|
199
|
+
// 需要单独处理下内容向上查找覆盖
|
|
200
|
+
this.setValue(name);
|
|
201
|
+
};
|
|
202
|
+
MemberExpression.prototype.isEnum = function () {
|
|
203
|
+
var _a;
|
|
204
|
+
return (_a = this.object) === null || _a === void 0 ? void 0 : _a.isEnum();
|
|
205
|
+
};
|
|
206
|
+
// 方便快速取值,遍历获取value
|
|
207
|
+
MemberExpression.prototype.getValue = function () {
|
|
208
|
+
var current = this;
|
|
209
|
+
var value = '';
|
|
210
|
+
// MemberExpression 有两个属性object代表父级,property代表自己
|
|
211
|
+
// 先向上找父级的值在获取自己的值进行拼接
|
|
212
|
+
while (current.object) {
|
|
213
|
+
var currentValue_1 = current.property.name;
|
|
214
|
+
value = value ? currentValue_1 + '.' + value : currentValue_1;
|
|
215
|
+
current = current.object;
|
|
216
|
+
}
|
|
217
|
+
// 最后一个是Identifier,他的值是自己的name
|
|
218
|
+
var currentValue = current.name;
|
|
219
|
+
// 实体逻辑 deleteBy/updateBy 的 filter 参数的回调函数的参数:_
|
|
220
|
+
// 处理 _ 的显示问题
|
|
221
|
+
if (currentValue === '_') {
|
|
222
|
+
var parentNode = this.parentNode;
|
|
223
|
+
if (parentNode) {
|
|
224
|
+
var p = parentNode;
|
|
225
|
+
while (p && p.concept !== 'CallLogic') {
|
|
226
|
+
p = p.parentNode;
|
|
227
|
+
}
|
|
228
|
+
if (p && (p.calleeName === 'deleteBy' || p.calleeName === 'updateBy')) {
|
|
229
|
+
var ns = p.calleeNamespace.split('.');
|
|
230
|
+
currentValue = ns[ns.length - 2] || 'item';
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
currentValue = 'item';
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
value = value ? currentValue + '.' + value : currentValue || '';
|
|
238
|
+
// 如果是enum就要查找到enum加后缀的展示
|
|
239
|
+
//if (this.isEnum()) {
|
|
240
|
+
// const findEnum = (this.app.findNodeByCompleteName(this.object.completeName)) as Enum;
|
|
241
|
+
// if (findEnum) {
|
|
242
|
+
// this.property.name;
|
|
243
|
+
// const enumItem = findEnum.enumItems.find((item) => item.value === this.property.name);
|
|
244
|
+
// if (enumItem?.label) {
|
|
245
|
+
// value += `(${enumItem.label})`;
|
|
246
|
+
// }
|
|
247
|
+
// }
|
|
248
|
+
//}
|
|
249
|
+
return value;
|
|
250
|
+
};
|
|
251
|
+
Object.defineProperty(MemberExpression.prototype, "completeName", {
|
|
252
|
+
get: function () {
|
|
253
|
+
var _a, _b;
|
|
254
|
+
var object = (_a = this.object) === null || _a === void 0 ? void 0 : _a.completeName;
|
|
255
|
+
var property = (_b = this.property) === null || _b === void 0 ? void 0 : _b.completeName;
|
|
256
|
+
// 在赋值语句的左侧,不能有 &&
|
|
257
|
+
var assignment = this.getAncestor('Assignment');
|
|
258
|
+
if (assignment) {
|
|
259
|
+
var left = assignment.left;
|
|
260
|
+
var node = this;
|
|
261
|
+
while (node && node.concept === 'MemberExpression' && left !== node) {
|
|
262
|
+
node = node.parentNode;
|
|
263
|
+
}
|
|
264
|
+
// 在赋值语句的左侧
|
|
265
|
+
if (node) {
|
|
266
|
+
return Identifier_RE.test(property) ? object + "." + property : object + "['" + property + "']";
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
return Identifier_RE.test(property) ? object + "." + property : object + "['" + property + "']";
|
|
270
|
+
},
|
|
271
|
+
enumerable: false,
|
|
272
|
+
configurable: true
|
|
273
|
+
});
|
|
274
|
+
Object.defineProperty(MemberExpression.prototype, "rootName", {
|
|
275
|
+
get: function () {
|
|
276
|
+
var completeNameArr = this.completeName.split('.');
|
|
277
|
+
var name = completeNameArr[0];
|
|
278
|
+
// 公共变量, 全局变量情况下
|
|
279
|
+
if (completeNameArr[0] === 'app' || completeNameArr[0] === 'nasl')
|
|
280
|
+
name = completeNameArr[0] + "." + completeNameArr[1] + "." + completeNameArr[2];
|
|
281
|
+
return name;
|
|
282
|
+
},
|
|
283
|
+
enumerable: false,
|
|
284
|
+
configurable: true
|
|
285
|
+
});
|
|
286
|
+
/**
|
|
287
|
+
* getValue的值就是想要的ts内容
|
|
288
|
+
* @param state
|
|
289
|
+
* @returns
|
|
290
|
+
*/
|
|
291
|
+
MemberExpression.prototype.toEmbeddedTS = function (state) {
|
|
292
|
+
var code = '';
|
|
293
|
+
var leftCode = this.object ? this.object.toEmbeddedTS(translator_1.shiftState(state, code, { inline: true })) + '.' : '';
|
|
294
|
+
code += this.object ? this.object.toEmbeddedTS(translator_1.shiftState(state, code, { inline: true })) + '.' : '';
|
|
295
|
+
code += this.property ? this.property.toEmbeddedTS(translator_1.shiftState(state, code, { inline: true })) : '';
|
|
296
|
+
// 就说明这是一个枚举取值操作,直接啊app.enums.color.red 要转成字符串
|
|
297
|
+
// 解决枚举可能全是数字的问题
|
|
298
|
+
// app.enums.color || extensions.tool.enums.color
|
|
299
|
+
if (leftCode.startsWith('app.enums.') || (leftCode.startsWith('extensions') && leftCode.includes('.enums.'))) {
|
|
300
|
+
var lastIndex = leftCode.lastIndexOf('.');
|
|
301
|
+
var newCode = code.substring(0, lastIndex) + "['" + code.substring(lastIndex + 1, code.length) + "']";
|
|
302
|
+
code = newCode;
|
|
303
|
+
}
|
|
304
|
+
return code;
|
|
305
|
+
};
|
|
306
|
+
Object.defineProperty(MemberExpression.prototype, "lastObject", {
|
|
307
|
+
get: function () {
|
|
308
|
+
var tempNode = this;
|
|
309
|
+
while (tempNode.object.concept === 'MemberExpression') {
|
|
310
|
+
tempNode = tempNode.object;
|
|
311
|
+
}
|
|
312
|
+
return tempNode.object;
|
|
313
|
+
},
|
|
314
|
+
enumerable: false,
|
|
315
|
+
configurable: true
|
|
316
|
+
});
|
|
317
|
+
MemberExpression.prototype.firstMemberExpressionNode = function () {
|
|
318
|
+
var tempNode = this;
|
|
319
|
+
while (tempNode.parentNode.concept === 'MemberExpression') {
|
|
320
|
+
tempNode = tempNode.parentNode;
|
|
321
|
+
}
|
|
322
|
+
return tempNode;
|
|
323
|
+
};
|
|
324
|
+
var MemberExpression_1;
|
|
325
|
+
__decorate([
|
|
326
|
+
decorators_1.property()
|
|
327
|
+
], MemberExpression.prototype, "concept");
|
|
328
|
+
__decorate([
|
|
329
|
+
decorators_1.property('LogicItem')
|
|
330
|
+
], MemberExpression.prototype, "object");
|
|
331
|
+
__decorate([
|
|
332
|
+
decorators_1.property('LogicItem')
|
|
333
|
+
], MemberExpression.prototype, "property");
|
|
334
|
+
__decorate([
|
|
335
|
+
translator_1.withSourceMap()
|
|
336
|
+
], MemberExpression.prototype, "toEmbeddedTS");
|
|
337
|
+
MemberExpression = MemberExpression_1 = __decorate([
|
|
338
|
+
decorators_1.concept('成员表达式')
|
|
339
|
+
], MemberExpression);
|
|
340
|
+
return MemberExpression;
|
|
341
|
+
}(LogicItem__1["default"]));
|
|
342
|
+
exports.MemberExpression = MemberExpression;
|
|
343
|
+
classMap_1["default"].MemberExpression = MemberExpression;
|
|
344
|
+
exports["default"] = MemberExpression;
|
|
345
|
+
//================================================================================
|
|
346
|
+
// ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
|
|
347
|
+
// 自动生成的代码已结束。下面可以手动编写。
|
|
348
|
+
//================================================================================
|