@zenstackhq/language 2.16.0 → 3.0.0-alpha.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/LICENSE +1 -1
- package/dist/ast.cjs +1472 -0
- package/dist/ast.cjs.map +1 -0
- package/dist/ast.d.cts +566 -0
- package/dist/ast.d.ts +566 -0
- package/dist/ast.js +1331 -0
- package/dist/ast.js.map +1 -0
- package/dist/index.cjs +7790 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +94 -0
- package/dist/index.d.ts +94 -0
- package/dist/index.js +7755 -0
- package/dist/index.js.map +1 -0
- package/package.json +52 -33
- package/res/stdlib.zmodel +721 -0
- package/README.md +0 -5
- package/ast.d.ts +0 -55
- package/ast.js +0 -37
- package/ast.js.map +0 -1
- package/generated/ast.d.ts +0 -485
- package/generated/ast.js +0 -640
- package/generated/ast.js.map +0 -1
- package/generated/grammar.d.ts +0 -6
- package/generated/grammar.js +0 -3941
- package/generated/grammar.js.map +0 -1
- package/generated/module.d.ts +0 -12
- package/generated/module.js +0 -23
- package/generated/module.js.map +0 -1
- package/module.d.ts +0 -1
- package/module.js +0 -18
- package/module.js.map +0 -1
- package/syntaxes/zmodel.tmLanguage +0 -113
- package/syntaxes/zmodel.tmLanguage.json +0 -71
package/dist/ast.js
ADDED
|
@@ -0,0 +1,1331 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
4
|
+
// src/generated/ast.ts
|
|
5
|
+
import { AbstractAstReflection } from "langium";
|
|
6
|
+
var ZModelTerminals = {
|
|
7
|
+
WS: /\s+/,
|
|
8
|
+
INTERNAL_ATTRIBUTE_NAME: /@@@([_a-zA-Z][\w_]*\.)*[_a-zA-Z][\w_]*/,
|
|
9
|
+
MODEL_ATTRIBUTE_NAME: /@@([_a-zA-Z][\w_]*\.)*[_a-zA-Z][\w_]*/,
|
|
10
|
+
FIELD_ATTRIBUTE_NAME: /@([_a-zA-Z][\w_]*\.)*[_a-zA-Z][\w_]*/,
|
|
11
|
+
ID: /[_a-zA-Z][\w_]*/,
|
|
12
|
+
STRING: /"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,
|
|
13
|
+
NUMBER: /[+-]?[0-9]+(\.[0-9]+)?/,
|
|
14
|
+
TRIPLE_SLASH_COMMENT: /\/\/\/[^\n\r]*/,
|
|
15
|
+
ML_COMMENT: /\/\*[\s\S]*?\*\//,
|
|
16
|
+
SL_COMMENT: /\/\/[^\n\r]*/
|
|
17
|
+
};
|
|
18
|
+
var AbstractDeclaration = "AbstractDeclaration";
|
|
19
|
+
function isAbstractDeclaration(item) {
|
|
20
|
+
return reflection.isInstance(item, AbstractDeclaration);
|
|
21
|
+
}
|
|
22
|
+
__name(isAbstractDeclaration, "isAbstractDeclaration");
|
|
23
|
+
function isBoolean(item) {
|
|
24
|
+
return typeof item === "boolean";
|
|
25
|
+
}
|
|
26
|
+
__name(isBoolean, "isBoolean");
|
|
27
|
+
function isBuiltinType(item) {
|
|
28
|
+
return item === "String" || item === "Boolean" || item === "Int" || item === "BigInt" || item === "Float" || item === "Decimal" || item === "DateTime" || item === "Json" || item === "Bytes";
|
|
29
|
+
}
|
|
30
|
+
__name(isBuiltinType, "isBuiltinType");
|
|
31
|
+
var ConfigExpr = "ConfigExpr";
|
|
32
|
+
function isConfigExpr(item) {
|
|
33
|
+
return reflection.isInstance(item, ConfigExpr);
|
|
34
|
+
}
|
|
35
|
+
__name(isConfigExpr, "isConfigExpr");
|
|
36
|
+
var Expression = "Expression";
|
|
37
|
+
function isExpression(item) {
|
|
38
|
+
return reflection.isInstance(item, Expression);
|
|
39
|
+
}
|
|
40
|
+
__name(isExpression, "isExpression");
|
|
41
|
+
function isExpressionType(item) {
|
|
42
|
+
return item === "String" || item === "Int" || item === "Float" || item === "Boolean" || item === "DateTime" || item === "Null" || item === "Object" || item === "Any" || item === "Unsupported";
|
|
43
|
+
}
|
|
44
|
+
__name(isExpressionType, "isExpressionType");
|
|
45
|
+
var LiteralExpr = "LiteralExpr";
|
|
46
|
+
function isLiteralExpr(item) {
|
|
47
|
+
return reflection.isInstance(item, LiteralExpr);
|
|
48
|
+
}
|
|
49
|
+
__name(isLiteralExpr, "isLiteralExpr");
|
|
50
|
+
var MemberAccessTarget = "MemberAccessTarget";
|
|
51
|
+
function isMemberAccessTarget(item) {
|
|
52
|
+
return reflection.isInstance(item, MemberAccessTarget);
|
|
53
|
+
}
|
|
54
|
+
__name(isMemberAccessTarget, "isMemberAccessTarget");
|
|
55
|
+
var ReferenceTarget = "ReferenceTarget";
|
|
56
|
+
function isReferenceTarget(item) {
|
|
57
|
+
return reflection.isInstance(item, ReferenceTarget);
|
|
58
|
+
}
|
|
59
|
+
__name(isReferenceTarget, "isReferenceTarget");
|
|
60
|
+
function isRegularID(item) {
|
|
61
|
+
return item === "model" || item === "enum" || item === "attribute" || item === "datasource" || item === "plugin" || item === "abstract" || item === "in" || item === "view" || item === "import" || item === "type" || typeof item === "string" && /[_a-zA-Z][\w_]*/.test(item);
|
|
62
|
+
}
|
|
63
|
+
__name(isRegularID, "isRegularID");
|
|
64
|
+
function isRegularIDWithTypeNames(item) {
|
|
65
|
+
return isRegularID(item) || item === "String" || item === "Boolean" || item === "Int" || item === "BigInt" || item === "Float" || item === "Decimal" || item === "DateTime" || item === "Json" || item === "Bytes" || item === "Null" || item === "Object" || item === "Any" || item === "Unsupported";
|
|
66
|
+
}
|
|
67
|
+
__name(isRegularIDWithTypeNames, "isRegularIDWithTypeNames");
|
|
68
|
+
var TypeDeclaration = "TypeDeclaration";
|
|
69
|
+
function isTypeDeclaration(item) {
|
|
70
|
+
return reflection.isInstance(item, TypeDeclaration);
|
|
71
|
+
}
|
|
72
|
+
__name(isTypeDeclaration, "isTypeDeclaration");
|
|
73
|
+
var TypeDefFieldTypes = "TypeDefFieldTypes";
|
|
74
|
+
function isTypeDefFieldTypes(item) {
|
|
75
|
+
return reflection.isInstance(item, TypeDefFieldTypes);
|
|
76
|
+
}
|
|
77
|
+
__name(isTypeDefFieldTypes, "isTypeDefFieldTypes");
|
|
78
|
+
var Argument = "Argument";
|
|
79
|
+
function isArgument(item) {
|
|
80
|
+
return reflection.isInstance(item, Argument);
|
|
81
|
+
}
|
|
82
|
+
__name(isArgument, "isArgument");
|
|
83
|
+
var ArrayExpr = "ArrayExpr";
|
|
84
|
+
function isArrayExpr(item) {
|
|
85
|
+
return reflection.isInstance(item, ArrayExpr);
|
|
86
|
+
}
|
|
87
|
+
__name(isArrayExpr, "isArrayExpr");
|
|
88
|
+
var Attribute = "Attribute";
|
|
89
|
+
function isAttribute(item) {
|
|
90
|
+
return reflection.isInstance(item, Attribute);
|
|
91
|
+
}
|
|
92
|
+
__name(isAttribute, "isAttribute");
|
|
93
|
+
var AttributeArg = "AttributeArg";
|
|
94
|
+
function isAttributeArg(item) {
|
|
95
|
+
return reflection.isInstance(item, AttributeArg);
|
|
96
|
+
}
|
|
97
|
+
__name(isAttributeArg, "isAttributeArg");
|
|
98
|
+
var AttributeParam = "AttributeParam";
|
|
99
|
+
function isAttributeParam(item) {
|
|
100
|
+
return reflection.isInstance(item, AttributeParam);
|
|
101
|
+
}
|
|
102
|
+
__name(isAttributeParam, "isAttributeParam");
|
|
103
|
+
var AttributeParamType = "AttributeParamType";
|
|
104
|
+
function isAttributeParamType(item) {
|
|
105
|
+
return reflection.isInstance(item, AttributeParamType);
|
|
106
|
+
}
|
|
107
|
+
__name(isAttributeParamType, "isAttributeParamType");
|
|
108
|
+
var BinaryExpr = "BinaryExpr";
|
|
109
|
+
function isBinaryExpr(item) {
|
|
110
|
+
return reflection.isInstance(item, BinaryExpr);
|
|
111
|
+
}
|
|
112
|
+
__name(isBinaryExpr, "isBinaryExpr");
|
|
113
|
+
var BooleanLiteral = "BooleanLiteral";
|
|
114
|
+
function isBooleanLiteral(item) {
|
|
115
|
+
return reflection.isInstance(item, BooleanLiteral);
|
|
116
|
+
}
|
|
117
|
+
__name(isBooleanLiteral, "isBooleanLiteral");
|
|
118
|
+
var ConfigArrayExpr = "ConfigArrayExpr";
|
|
119
|
+
function isConfigArrayExpr(item) {
|
|
120
|
+
return reflection.isInstance(item, ConfigArrayExpr);
|
|
121
|
+
}
|
|
122
|
+
__name(isConfigArrayExpr, "isConfigArrayExpr");
|
|
123
|
+
var ConfigField = "ConfigField";
|
|
124
|
+
function isConfigField(item) {
|
|
125
|
+
return reflection.isInstance(item, ConfigField);
|
|
126
|
+
}
|
|
127
|
+
__name(isConfigField, "isConfigField");
|
|
128
|
+
var ConfigInvocationArg = "ConfigInvocationArg";
|
|
129
|
+
function isConfigInvocationArg(item) {
|
|
130
|
+
return reflection.isInstance(item, ConfigInvocationArg);
|
|
131
|
+
}
|
|
132
|
+
__name(isConfigInvocationArg, "isConfigInvocationArg");
|
|
133
|
+
var ConfigInvocationExpr = "ConfigInvocationExpr";
|
|
134
|
+
function isConfigInvocationExpr(item) {
|
|
135
|
+
return reflection.isInstance(item, ConfigInvocationExpr);
|
|
136
|
+
}
|
|
137
|
+
__name(isConfigInvocationExpr, "isConfigInvocationExpr");
|
|
138
|
+
var DataModel = "DataModel";
|
|
139
|
+
function isDataModel(item) {
|
|
140
|
+
return reflection.isInstance(item, DataModel);
|
|
141
|
+
}
|
|
142
|
+
__name(isDataModel, "isDataModel");
|
|
143
|
+
var DataModelAttribute = "DataModelAttribute";
|
|
144
|
+
function isDataModelAttribute(item) {
|
|
145
|
+
return reflection.isInstance(item, DataModelAttribute);
|
|
146
|
+
}
|
|
147
|
+
__name(isDataModelAttribute, "isDataModelAttribute");
|
|
148
|
+
var DataModelField = "DataModelField";
|
|
149
|
+
function isDataModelField(item) {
|
|
150
|
+
return reflection.isInstance(item, DataModelField);
|
|
151
|
+
}
|
|
152
|
+
__name(isDataModelField, "isDataModelField");
|
|
153
|
+
var DataModelFieldAttribute = "DataModelFieldAttribute";
|
|
154
|
+
function isDataModelFieldAttribute(item) {
|
|
155
|
+
return reflection.isInstance(item, DataModelFieldAttribute);
|
|
156
|
+
}
|
|
157
|
+
__name(isDataModelFieldAttribute, "isDataModelFieldAttribute");
|
|
158
|
+
var DataModelFieldType = "DataModelFieldType";
|
|
159
|
+
function isDataModelFieldType(item) {
|
|
160
|
+
return reflection.isInstance(item, DataModelFieldType);
|
|
161
|
+
}
|
|
162
|
+
__name(isDataModelFieldType, "isDataModelFieldType");
|
|
163
|
+
var DataSource = "DataSource";
|
|
164
|
+
function isDataSource(item) {
|
|
165
|
+
return reflection.isInstance(item, DataSource);
|
|
166
|
+
}
|
|
167
|
+
__name(isDataSource, "isDataSource");
|
|
168
|
+
var Enum = "Enum";
|
|
169
|
+
function isEnum(item) {
|
|
170
|
+
return reflection.isInstance(item, Enum);
|
|
171
|
+
}
|
|
172
|
+
__name(isEnum, "isEnum");
|
|
173
|
+
var EnumField = "EnumField";
|
|
174
|
+
function isEnumField(item) {
|
|
175
|
+
return reflection.isInstance(item, EnumField);
|
|
176
|
+
}
|
|
177
|
+
__name(isEnumField, "isEnumField");
|
|
178
|
+
var FieldInitializer = "FieldInitializer";
|
|
179
|
+
function isFieldInitializer(item) {
|
|
180
|
+
return reflection.isInstance(item, FieldInitializer);
|
|
181
|
+
}
|
|
182
|
+
__name(isFieldInitializer, "isFieldInitializer");
|
|
183
|
+
var FunctionDecl = "FunctionDecl";
|
|
184
|
+
function isFunctionDecl(item) {
|
|
185
|
+
return reflection.isInstance(item, FunctionDecl);
|
|
186
|
+
}
|
|
187
|
+
__name(isFunctionDecl, "isFunctionDecl");
|
|
188
|
+
var FunctionParam = "FunctionParam";
|
|
189
|
+
function isFunctionParam(item) {
|
|
190
|
+
return reflection.isInstance(item, FunctionParam);
|
|
191
|
+
}
|
|
192
|
+
__name(isFunctionParam, "isFunctionParam");
|
|
193
|
+
var FunctionParamType = "FunctionParamType";
|
|
194
|
+
function isFunctionParamType(item) {
|
|
195
|
+
return reflection.isInstance(item, FunctionParamType);
|
|
196
|
+
}
|
|
197
|
+
__name(isFunctionParamType, "isFunctionParamType");
|
|
198
|
+
var GeneratorDecl = "GeneratorDecl";
|
|
199
|
+
function isGeneratorDecl(item) {
|
|
200
|
+
return reflection.isInstance(item, GeneratorDecl);
|
|
201
|
+
}
|
|
202
|
+
__name(isGeneratorDecl, "isGeneratorDecl");
|
|
203
|
+
var InternalAttribute = "InternalAttribute";
|
|
204
|
+
function isInternalAttribute(item) {
|
|
205
|
+
return reflection.isInstance(item, InternalAttribute);
|
|
206
|
+
}
|
|
207
|
+
__name(isInternalAttribute, "isInternalAttribute");
|
|
208
|
+
var InvocationExpr = "InvocationExpr";
|
|
209
|
+
function isInvocationExpr(item) {
|
|
210
|
+
return reflection.isInstance(item, InvocationExpr);
|
|
211
|
+
}
|
|
212
|
+
__name(isInvocationExpr, "isInvocationExpr");
|
|
213
|
+
var MemberAccessExpr = "MemberAccessExpr";
|
|
214
|
+
function isMemberAccessExpr(item) {
|
|
215
|
+
return reflection.isInstance(item, MemberAccessExpr);
|
|
216
|
+
}
|
|
217
|
+
__name(isMemberAccessExpr, "isMemberAccessExpr");
|
|
218
|
+
var Model = "Model";
|
|
219
|
+
function isModel(item) {
|
|
220
|
+
return reflection.isInstance(item, Model);
|
|
221
|
+
}
|
|
222
|
+
__name(isModel, "isModel");
|
|
223
|
+
var ModelImport = "ModelImport";
|
|
224
|
+
function isModelImport(item) {
|
|
225
|
+
return reflection.isInstance(item, ModelImport);
|
|
226
|
+
}
|
|
227
|
+
__name(isModelImport, "isModelImport");
|
|
228
|
+
var NullExpr = "NullExpr";
|
|
229
|
+
function isNullExpr(item) {
|
|
230
|
+
return reflection.isInstance(item, NullExpr);
|
|
231
|
+
}
|
|
232
|
+
__name(isNullExpr, "isNullExpr");
|
|
233
|
+
var NumberLiteral = "NumberLiteral";
|
|
234
|
+
function isNumberLiteral(item) {
|
|
235
|
+
return reflection.isInstance(item, NumberLiteral);
|
|
236
|
+
}
|
|
237
|
+
__name(isNumberLiteral, "isNumberLiteral");
|
|
238
|
+
var ObjectExpr = "ObjectExpr";
|
|
239
|
+
function isObjectExpr(item) {
|
|
240
|
+
return reflection.isInstance(item, ObjectExpr);
|
|
241
|
+
}
|
|
242
|
+
__name(isObjectExpr, "isObjectExpr");
|
|
243
|
+
var Plugin = "Plugin";
|
|
244
|
+
function isPlugin(item) {
|
|
245
|
+
return reflection.isInstance(item, Plugin);
|
|
246
|
+
}
|
|
247
|
+
__name(isPlugin, "isPlugin");
|
|
248
|
+
var PluginField = "PluginField";
|
|
249
|
+
function isPluginField(item) {
|
|
250
|
+
return reflection.isInstance(item, PluginField);
|
|
251
|
+
}
|
|
252
|
+
__name(isPluginField, "isPluginField");
|
|
253
|
+
var Procedure = "Procedure";
|
|
254
|
+
function isProcedure(item) {
|
|
255
|
+
return reflection.isInstance(item, Procedure);
|
|
256
|
+
}
|
|
257
|
+
__name(isProcedure, "isProcedure");
|
|
258
|
+
var ProcedureParam = "ProcedureParam";
|
|
259
|
+
function isProcedureParam(item) {
|
|
260
|
+
return reflection.isInstance(item, ProcedureParam);
|
|
261
|
+
}
|
|
262
|
+
__name(isProcedureParam, "isProcedureParam");
|
|
263
|
+
var ReferenceArg = "ReferenceArg";
|
|
264
|
+
function isReferenceArg(item) {
|
|
265
|
+
return reflection.isInstance(item, ReferenceArg);
|
|
266
|
+
}
|
|
267
|
+
__name(isReferenceArg, "isReferenceArg");
|
|
268
|
+
var ReferenceExpr = "ReferenceExpr";
|
|
269
|
+
function isReferenceExpr(item) {
|
|
270
|
+
return reflection.isInstance(item, ReferenceExpr);
|
|
271
|
+
}
|
|
272
|
+
__name(isReferenceExpr, "isReferenceExpr");
|
|
273
|
+
var StringLiteral = "StringLiteral";
|
|
274
|
+
function isStringLiteral(item) {
|
|
275
|
+
return reflection.isInstance(item, StringLiteral);
|
|
276
|
+
}
|
|
277
|
+
__name(isStringLiteral, "isStringLiteral");
|
|
278
|
+
var ThisExpr = "ThisExpr";
|
|
279
|
+
function isThisExpr(item) {
|
|
280
|
+
return reflection.isInstance(item, ThisExpr);
|
|
281
|
+
}
|
|
282
|
+
__name(isThisExpr, "isThisExpr");
|
|
283
|
+
var TypeDef = "TypeDef";
|
|
284
|
+
function isTypeDef(item) {
|
|
285
|
+
return reflection.isInstance(item, TypeDef);
|
|
286
|
+
}
|
|
287
|
+
__name(isTypeDef, "isTypeDef");
|
|
288
|
+
var TypeDefField = "TypeDefField";
|
|
289
|
+
function isTypeDefField(item) {
|
|
290
|
+
return reflection.isInstance(item, TypeDefField);
|
|
291
|
+
}
|
|
292
|
+
__name(isTypeDefField, "isTypeDefField");
|
|
293
|
+
var TypeDefFieldType = "TypeDefFieldType";
|
|
294
|
+
function isTypeDefFieldType(item) {
|
|
295
|
+
return reflection.isInstance(item, TypeDefFieldType);
|
|
296
|
+
}
|
|
297
|
+
__name(isTypeDefFieldType, "isTypeDefFieldType");
|
|
298
|
+
var UnaryExpr = "UnaryExpr";
|
|
299
|
+
function isUnaryExpr(item) {
|
|
300
|
+
return reflection.isInstance(item, UnaryExpr);
|
|
301
|
+
}
|
|
302
|
+
__name(isUnaryExpr, "isUnaryExpr");
|
|
303
|
+
var UnsupportedFieldType = "UnsupportedFieldType";
|
|
304
|
+
function isUnsupportedFieldType(item) {
|
|
305
|
+
return reflection.isInstance(item, UnsupportedFieldType);
|
|
306
|
+
}
|
|
307
|
+
__name(isUnsupportedFieldType, "isUnsupportedFieldType");
|
|
308
|
+
var ZModelAstReflection = class extends AbstractAstReflection {
|
|
309
|
+
static {
|
|
310
|
+
__name(this, "ZModelAstReflection");
|
|
311
|
+
}
|
|
312
|
+
getAllTypes() {
|
|
313
|
+
return [
|
|
314
|
+
AbstractDeclaration,
|
|
315
|
+
Argument,
|
|
316
|
+
ArrayExpr,
|
|
317
|
+
Attribute,
|
|
318
|
+
AttributeArg,
|
|
319
|
+
AttributeParam,
|
|
320
|
+
AttributeParamType,
|
|
321
|
+
BinaryExpr,
|
|
322
|
+
BooleanLiteral,
|
|
323
|
+
ConfigArrayExpr,
|
|
324
|
+
ConfigExpr,
|
|
325
|
+
ConfigField,
|
|
326
|
+
ConfigInvocationArg,
|
|
327
|
+
ConfigInvocationExpr,
|
|
328
|
+
DataModel,
|
|
329
|
+
DataModelAttribute,
|
|
330
|
+
DataModelField,
|
|
331
|
+
DataModelFieldAttribute,
|
|
332
|
+
DataModelFieldType,
|
|
333
|
+
DataSource,
|
|
334
|
+
Enum,
|
|
335
|
+
EnumField,
|
|
336
|
+
Expression,
|
|
337
|
+
FieldInitializer,
|
|
338
|
+
FunctionDecl,
|
|
339
|
+
FunctionParam,
|
|
340
|
+
FunctionParamType,
|
|
341
|
+
GeneratorDecl,
|
|
342
|
+
InternalAttribute,
|
|
343
|
+
InvocationExpr,
|
|
344
|
+
LiteralExpr,
|
|
345
|
+
MemberAccessExpr,
|
|
346
|
+
MemberAccessTarget,
|
|
347
|
+
Model,
|
|
348
|
+
ModelImport,
|
|
349
|
+
NullExpr,
|
|
350
|
+
NumberLiteral,
|
|
351
|
+
ObjectExpr,
|
|
352
|
+
Plugin,
|
|
353
|
+
PluginField,
|
|
354
|
+
Procedure,
|
|
355
|
+
ProcedureParam,
|
|
356
|
+
ReferenceArg,
|
|
357
|
+
ReferenceExpr,
|
|
358
|
+
ReferenceTarget,
|
|
359
|
+
StringLiteral,
|
|
360
|
+
ThisExpr,
|
|
361
|
+
TypeDeclaration,
|
|
362
|
+
TypeDef,
|
|
363
|
+
TypeDefField,
|
|
364
|
+
TypeDefFieldType,
|
|
365
|
+
TypeDefFieldTypes,
|
|
366
|
+
UnaryExpr,
|
|
367
|
+
UnsupportedFieldType
|
|
368
|
+
];
|
|
369
|
+
}
|
|
370
|
+
computeIsSubtype(subtype, supertype) {
|
|
371
|
+
switch (subtype) {
|
|
372
|
+
case ArrayExpr:
|
|
373
|
+
case BinaryExpr:
|
|
374
|
+
case MemberAccessExpr:
|
|
375
|
+
case NullExpr:
|
|
376
|
+
case ObjectExpr:
|
|
377
|
+
case ReferenceExpr:
|
|
378
|
+
case ThisExpr:
|
|
379
|
+
case UnaryExpr: {
|
|
380
|
+
return this.isSubtype(Expression, supertype);
|
|
381
|
+
}
|
|
382
|
+
case Attribute:
|
|
383
|
+
case DataSource:
|
|
384
|
+
case FunctionDecl:
|
|
385
|
+
case GeneratorDecl:
|
|
386
|
+
case Plugin:
|
|
387
|
+
case Procedure: {
|
|
388
|
+
return this.isSubtype(AbstractDeclaration, supertype);
|
|
389
|
+
}
|
|
390
|
+
case BooleanLiteral:
|
|
391
|
+
case NumberLiteral:
|
|
392
|
+
case StringLiteral: {
|
|
393
|
+
return this.isSubtype(LiteralExpr, supertype);
|
|
394
|
+
}
|
|
395
|
+
case ConfigArrayExpr: {
|
|
396
|
+
return this.isSubtype(ConfigExpr, supertype);
|
|
397
|
+
}
|
|
398
|
+
case DataModel: {
|
|
399
|
+
return this.isSubtype(AbstractDeclaration, supertype) || this.isSubtype(TypeDeclaration, supertype);
|
|
400
|
+
}
|
|
401
|
+
case DataModelField:
|
|
402
|
+
case TypeDefField: {
|
|
403
|
+
return this.isSubtype(MemberAccessTarget, supertype) || this.isSubtype(ReferenceTarget, supertype);
|
|
404
|
+
}
|
|
405
|
+
case Enum:
|
|
406
|
+
case TypeDef: {
|
|
407
|
+
return this.isSubtype(AbstractDeclaration, supertype) || this.isSubtype(TypeDeclaration, supertype) || this.isSubtype(TypeDefFieldTypes, supertype);
|
|
408
|
+
}
|
|
409
|
+
case EnumField:
|
|
410
|
+
case FunctionParam: {
|
|
411
|
+
return this.isSubtype(ReferenceTarget, supertype);
|
|
412
|
+
}
|
|
413
|
+
case InvocationExpr:
|
|
414
|
+
case LiteralExpr: {
|
|
415
|
+
return this.isSubtype(ConfigExpr, supertype) || this.isSubtype(Expression, supertype);
|
|
416
|
+
}
|
|
417
|
+
default: {
|
|
418
|
+
return false;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
getReferenceType(refInfo) {
|
|
423
|
+
const referenceId = `${refInfo.container.$type}:${refInfo.property}`;
|
|
424
|
+
switch (referenceId) {
|
|
425
|
+
case "AttributeParamType:reference":
|
|
426
|
+
case "DataModelFieldType:reference":
|
|
427
|
+
case "FunctionParamType:reference": {
|
|
428
|
+
return TypeDeclaration;
|
|
429
|
+
}
|
|
430
|
+
case "DataModel:superTypes": {
|
|
431
|
+
return DataModel;
|
|
432
|
+
}
|
|
433
|
+
case "DataModelAttribute:decl":
|
|
434
|
+
case "DataModelFieldAttribute:decl":
|
|
435
|
+
case "InternalAttribute:decl": {
|
|
436
|
+
return Attribute;
|
|
437
|
+
}
|
|
438
|
+
case "InvocationExpr:function": {
|
|
439
|
+
return FunctionDecl;
|
|
440
|
+
}
|
|
441
|
+
case "MemberAccessExpr:member": {
|
|
442
|
+
return MemberAccessTarget;
|
|
443
|
+
}
|
|
444
|
+
case "ReferenceExpr:target": {
|
|
445
|
+
return ReferenceTarget;
|
|
446
|
+
}
|
|
447
|
+
case "TypeDefFieldType:reference": {
|
|
448
|
+
return TypeDefFieldTypes;
|
|
449
|
+
}
|
|
450
|
+
default: {
|
|
451
|
+
throw new Error(`${referenceId} is not a valid reference id.`);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
getTypeMetaData(type) {
|
|
456
|
+
switch (type) {
|
|
457
|
+
case Argument: {
|
|
458
|
+
return {
|
|
459
|
+
name: Argument,
|
|
460
|
+
properties: [
|
|
461
|
+
{
|
|
462
|
+
name: "value"
|
|
463
|
+
}
|
|
464
|
+
]
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
case ArrayExpr: {
|
|
468
|
+
return {
|
|
469
|
+
name: ArrayExpr,
|
|
470
|
+
properties: [
|
|
471
|
+
{
|
|
472
|
+
name: "items",
|
|
473
|
+
defaultValue: []
|
|
474
|
+
}
|
|
475
|
+
]
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
case Attribute: {
|
|
479
|
+
return {
|
|
480
|
+
name: Attribute,
|
|
481
|
+
properties: [
|
|
482
|
+
{
|
|
483
|
+
name: "attributes",
|
|
484
|
+
defaultValue: []
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
name: "comments",
|
|
488
|
+
defaultValue: []
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
name: "name"
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
name: "params",
|
|
495
|
+
defaultValue: []
|
|
496
|
+
}
|
|
497
|
+
]
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
case AttributeArg: {
|
|
501
|
+
return {
|
|
502
|
+
name: AttributeArg,
|
|
503
|
+
properties: [
|
|
504
|
+
{
|
|
505
|
+
name: "name"
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
name: "value"
|
|
509
|
+
}
|
|
510
|
+
]
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
case AttributeParam: {
|
|
514
|
+
return {
|
|
515
|
+
name: AttributeParam,
|
|
516
|
+
properties: [
|
|
517
|
+
{
|
|
518
|
+
name: "attributes",
|
|
519
|
+
defaultValue: []
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
name: "comments",
|
|
523
|
+
defaultValue: []
|
|
524
|
+
},
|
|
525
|
+
{
|
|
526
|
+
name: "default",
|
|
527
|
+
defaultValue: false
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
name: "name"
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
name: "type"
|
|
534
|
+
}
|
|
535
|
+
]
|
|
536
|
+
};
|
|
537
|
+
}
|
|
538
|
+
case AttributeParamType: {
|
|
539
|
+
return {
|
|
540
|
+
name: AttributeParamType,
|
|
541
|
+
properties: [
|
|
542
|
+
{
|
|
543
|
+
name: "array",
|
|
544
|
+
defaultValue: false
|
|
545
|
+
},
|
|
546
|
+
{
|
|
547
|
+
name: "optional",
|
|
548
|
+
defaultValue: false
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
name: "reference"
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
name: "type"
|
|
555
|
+
}
|
|
556
|
+
]
|
|
557
|
+
};
|
|
558
|
+
}
|
|
559
|
+
case BinaryExpr: {
|
|
560
|
+
return {
|
|
561
|
+
name: BinaryExpr,
|
|
562
|
+
properties: [
|
|
563
|
+
{
|
|
564
|
+
name: "left"
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
name: "operator"
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
name: "right"
|
|
571
|
+
}
|
|
572
|
+
]
|
|
573
|
+
};
|
|
574
|
+
}
|
|
575
|
+
case BooleanLiteral: {
|
|
576
|
+
return {
|
|
577
|
+
name: BooleanLiteral,
|
|
578
|
+
properties: [
|
|
579
|
+
{
|
|
580
|
+
name: "value"
|
|
581
|
+
}
|
|
582
|
+
]
|
|
583
|
+
};
|
|
584
|
+
}
|
|
585
|
+
case ConfigArrayExpr: {
|
|
586
|
+
return {
|
|
587
|
+
name: ConfigArrayExpr,
|
|
588
|
+
properties: [
|
|
589
|
+
{
|
|
590
|
+
name: "items",
|
|
591
|
+
defaultValue: []
|
|
592
|
+
}
|
|
593
|
+
]
|
|
594
|
+
};
|
|
595
|
+
}
|
|
596
|
+
case ConfigField: {
|
|
597
|
+
return {
|
|
598
|
+
name: ConfigField,
|
|
599
|
+
properties: [
|
|
600
|
+
{
|
|
601
|
+
name: "name"
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
name: "value"
|
|
605
|
+
}
|
|
606
|
+
]
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
case ConfigInvocationArg: {
|
|
610
|
+
return {
|
|
611
|
+
name: ConfigInvocationArg,
|
|
612
|
+
properties: [
|
|
613
|
+
{
|
|
614
|
+
name: "name"
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
name: "value"
|
|
618
|
+
}
|
|
619
|
+
]
|
|
620
|
+
};
|
|
621
|
+
}
|
|
622
|
+
case ConfigInvocationExpr: {
|
|
623
|
+
return {
|
|
624
|
+
name: ConfigInvocationExpr,
|
|
625
|
+
properties: [
|
|
626
|
+
{
|
|
627
|
+
name: "args",
|
|
628
|
+
defaultValue: []
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
name: "name"
|
|
632
|
+
}
|
|
633
|
+
]
|
|
634
|
+
};
|
|
635
|
+
}
|
|
636
|
+
case DataModel: {
|
|
637
|
+
return {
|
|
638
|
+
name: DataModel,
|
|
639
|
+
properties: [
|
|
640
|
+
{
|
|
641
|
+
name: "attributes",
|
|
642
|
+
defaultValue: []
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
name: "comments",
|
|
646
|
+
defaultValue: []
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
name: "fields",
|
|
650
|
+
defaultValue: []
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
name: "isAbstract",
|
|
654
|
+
defaultValue: false
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
name: "isView",
|
|
658
|
+
defaultValue: false
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
name: "name"
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
name: "superTypes",
|
|
665
|
+
defaultValue: []
|
|
666
|
+
}
|
|
667
|
+
]
|
|
668
|
+
};
|
|
669
|
+
}
|
|
670
|
+
case DataModelAttribute: {
|
|
671
|
+
return {
|
|
672
|
+
name: DataModelAttribute,
|
|
673
|
+
properties: [
|
|
674
|
+
{
|
|
675
|
+
name: "args",
|
|
676
|
+
defaultValue: []
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
name: "decl"
|
|
680
|
+
}
|
|
681
|
+
]
|
|
682
|
+
};
|
|
683
|
+
}
|
|
684
|
+
case DataModelField: {
|
|
685
|
+
return {
|
|
686
|
+
name: DataModelField,
|
|
687
|
+
properties: [
|
|
688
|
+
{
|
|
689
|
+
name: "attributes",
|
|
690
|
+
defaultValue: []
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
name: "comments",
|
|
694
|
+
defaultValue: []
|
|
695
|
+
},
|
|
696
|
+
{
|
|
697
|
+
name: "name"
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
name: "type"
|
|
701
|
+
}
|
|
702
|
+
]
|
|
703
|
+
};
|
|
704
|
+
}
|
|
705
|
+
case DataModelFieldAttribute: {
|
|
706
|
+
return {
|
|
707
|
+
name: DataModelFieldAttribute,
|
|
708
|
+
properties: [
|
|
709
|
+
{
|
|
710
|
+
name: "args",
|
|
711
|
+
defaultValue: []
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
name: "decl"
|
|
715
|
+
}
|
|
716
|
+
]
|
|
717
|
+
};
|
|
718
|
+
}
|
|
719
|
+
case DataModelFieldType: {
|
|
720
|
+
return {
|
|
721
|
+
name: DataModelFieldType,
|
|
722
|
+
properties: [
|
|
723
|
+
{
|
|
724
|
+
name: "array",
|
|
725
|
+
defaultValue: false
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
name: "optional",
|
|
729
|
+
defaultValue: false
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
name: "reference"
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
name: "type"
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
name: "unsupported"
|
|
739
|
+
}
|
|
740
|
+
]
|
|
741
|
+
};
|
|
742
|
+
}
|
|
743
|
+
case DataSource: {
|
|
744
|
+
return {
|
|
745
|
+
name: DataSource,
|
|
746
|
+
properties: [
|
|
747
|
+
{
|
|
748
|
+
name: "fields",
|
|
749
|
+
defaultValue: []
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
name: "name"
|
|
753
|
+
}
|
|
754
|
+
]
|
|
755
|
+
};
|
|
756
|
+
}
|
|
757
|
+
case Enum: {
|
|
758
|
+
return {
|
|
759
|
+
name: Enum,
|
|
760
|
+
properties: [
|
|
761
|
+
{
|
|
762
|
+
name: "attributes",
|
|
763
|
+
defaultValue: []
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
name: "comments",
|
|
767
|
+
defaultValue: []
|
|
768
|
+
},
|
|
769
|
+
{
|
|
770
|
+
name: "fields",
|
|
771
|
+
defaultValue: []
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
name: "name"
|
|
775
|
+
}
|
|
776
|
+
]
|
|
777
|
+
};
|
|
778
|
+
}
|
|
779
|
+
case EnumField: {
|
|
780
|
+
return {
|
|
781
|
+
name: EnumField,
|
|
782
|
+
properties: [
|
|
783
|
+
{
|
|
784
|
+
name: "attributes",
|
|
785
|
+
defaultValue: []
|
|
786
|
+
},
|
|
787
|
+
{
|
|
788
|
+
name: "comments",
|
|
789
|
+
defaultValue: []
|
|
790
|
+
},
|
|
791
|
+
{
|
|
792
|
+
name: "name"
|
|
793
|
+
}
|
|
794
|
+
]
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
case FieldInitializer: {
|
|
798
|
+
return {
|
|
799
|
+
name: FieldInitializer,
|
|
800
|
+
properties: [
|
|
801
|
+
{
|
|
802
|
+
name: "name"
|
|
803
|
+
},
|
|
804
|
+
{
|
|
805
|
+
name: "value"
|
|
806
|
+
}
|
|
807
|
+
]
|
|
808
|
+
};
|
|
809
|
+
}
|
|
810
|
+
case FunctionDecl: {
|
|
811
|
+
return {
|
|
812
|
+
name: FunctionDecl,
|
|
813
|
+
properties: [
|
|
814
|
+
{
|
|
815
|
+
name: "attributes",
|
|
816
|
+
defaultValue: []
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
name: "expression"
|
|
820
|
+
},
|
|
821
|
+
{
|
|
822
|
+
name: "name"
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
name: "params",
|
|
826
|
+
defaultValue: []
|
|
827
|
+
},
|
|
828
|
+
{
|
|
829
|
+
name: "returnType"
|
|
830
|
+
}
|
|
831
|
+
]
|
|
832
|
+
};
|
|
833
|
+
}
|
|
834
|
+
case FunctionParam: {
|
|
835
|
+
return {
|
|
836
|
+
name: FunctionParam,
|
|
837
|
+
properties: [
|
|
838
|
+
{
|
|
839
|
+
name: "name"
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
name: "optional",
|
|
843
|
+
defaultValue: false
|
|
844
|
+
},
|
|
845
|
+
{
|
|
846
|
+
name: "type"
|
|
847
|
+
}
|
|
848
|
+
]
|
|
849
|
+
};
|
|
850
|
+
}
|
|
851
|
+
case FunctionParamType: {
|
|
852
|
+
return {
|
|
853
|
+
name: FunctionParamType,
|
|
854
|
+
properties: [
|
|
855
|
+
{
|
|
856
|
+
name: "array",
|
|
857
|
+
defaultValue: false
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
name: "reference"
|
|
861
|
+
},
|
|
862
|
+
{
|
|
863
|
+
name: "type"
|
|
864
|
+
}
|
|
865
|
+
]
|
|
866
|
+
};
|
|
867
|
+
}
|
|
868
|
+
case GeneratorDecl: {
|
|
869
|
+
return {
|
|
870
|
+
name: GeneratorDecl,
|
|
871
|
+
properties: [
|
|
872
|
+
{
|
|
873
|
+
name: "fields",
|
|
874
|
+
defaultValue: []
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
name: "name"
|
|
878
|
+
}
|
|
879
|
+
]
|
|
880
|
+
};
|
|
881
|
+
}
|
|
882
|
+
case InternalAttribute: {
|
|
883
|
+
return {
|
|
884
|
+
name: InternalAttribute,
|
|
885
|
+
properties: [
|
|
886
|
+
{
|
|
887
|
+
name: "args",
|
|
888
|
+
defaultValue: []
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
name: "decl"
|
|
892
|
+
}
|
|
893
|
+
]
|
|
894
|
+
};
|
|
895
|
+
}
|
|
896
|
+
case InvocationExpr: {
|
|
897
|
+
return {
|
|
898
|
+
name: InvocationExpr,
|
|
899
|
+
properties: [
|
|
900
|
+
{
|
|
901
|
+
name: "args",
|
|
902
|
+
defaultValue: []
|
|
903
|
+
},
|
|
904
|
+
{
|
|
905
|
+
name: "function"
|
|
906
|
+
}
|
|
907
|
+
]
|
|
908
|
+
};
|
|
909
|
+
}
|
|
910
|
+
case MemberAccessExpr: {
|
|
911
|
+
return {
|
|
912
|
+
name: MemberAccessExpr,
|
|
913
|
+
properties: [
|
|
914
|
+
{
|
|
915
|
+
name: "member"
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
name: "operand"
|
|
919
|
+
}
|
|
920
|
+
]
|
|
921
|
+
};
|
|
922
|
+
}
|
|
923
|
+
case Model: {
|
|
924
|
+
return {
|
|
925
|
+
name: Model,
|
|
926
|
+
properties: [
|
|
927
|
+
{
|
|
928
|
+
name: "declarations",
|
|
929
|
+
defaultValue: []
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
name: "imports",
|
|
933
|
+
defaultValue: []
|
|
934
|
+
}
|
|
935
|
+
]
|
|
936
|
+
};
|
|
937
|
+
}
|
|
938
|
+
case ModelImport: {
|
|
939
|
+
return {
|
|
940
|
+
name: ModelImport,
|
|
941
|
+
properties: [
|
|
942
|
+
{
|
|
943
|
+
name: "path"
|
|
944
|
+
}
|
|
945
|
+
]
|
|
946
|
+
};
|
|
947
|
+
}
|
|
948
|
+
case NullExpr: {
|
|
949
|
+
return {
|
|
950
|
+
name: NullExpr,
|
|
951
|
+
properties: [
|
|
952
|
+
{
|
|
953
|
+
name: "value"
|
|
954
|
+
}
|
|
955
|
+
]
|
|
956
|
+
};
|
|
957
|
+
}
|
|
958
|
+
case NumberLiteral: {
|
|
959
|
+
return {
|
|
960
|
+
name: NumberLiteral,
|
|
961
|
+
properties: [
|
|
962
|
+
{
|
|
963
|
+
name: "value"
|
|
964
|
+
}
|
|
965
|
+
]
|
|
966
|
+
};
|
|
967
|
+
}
|
|
968
|
+
case ObjectExpr: {
|
|
969
|
+
return {
|
|
970
|
+
name: ObjectExpr,
|
|
971
|
+
properties: [
|
|
972
|
+
{
|
|
973
|
+
name: "fields",
|
|
974
|
+
defaultValue: []
|
|
975
|
+
}
|
|
976
|
+
]
|
|
977
|
+
};
|
|
978
|
+
}
|
|
979
|
+
case Plugin: {
|
|
980
|
+
return {
|
|
981
|
+
name: Plugin,
|
|
982
|
+
properties: [
|
|
983
|
+
{
|
|
984
|
+
name: "fields",
|
|
985
|
+
defaultValue: []
|
|
986
|
+
},
|
|
987
|
+
{
|
|
988
|
+
name: "name"
|
|
989
|
+
}
|
|
990
|
+
]
|
|
991
|
+
};
|
|
992
|
+
}
|
|
993
|
+
case PluginField: {
|
|
994
|
+
return {
|
|
995
|
+
name: PluginField,
|
|
996
|
+
properties: [
|
|
997
|
+
{
|
|
998
|
+
name: "name"
|
|
999
|
+
},
|
|
1000
|
+
{
|
|
1001
|
+
name: "value"
|
|
1002
|
+
}
|
|
1003
|
+
]
|
|
1004
|
+
};
|
|
1005
|
+
}
|
|
1006
|
+
case Procedure: {
|
|
1007
|
+
return {
|
|
1008
|
+
name: Procedure,
|
|
1009
|
+
properties: [
|
|
1010
|
+
{
|
|
1011
|
+
name: "attributes",
|
|
1012
|
+
defaultValue: []
|
|
1013
|
+
},
|
|
1014
|
+
{
|
|
1015
|
+
name: "mutation",
|
|
1016
|
+
defaultValue: false
|
|
1017
|
+
},
|
|
1018
|
+
{
|
|
1019
|
+
name: "name"
|
|
1020
|
+
},
|
|
1021
|
+
{
|
|
1022
|
+
name: "params",
|
|
1023
|
+
defaultValue: []
|
|
1024
|
+
},
|
|
1025
|
+
{
|
|
1026
|
+
name: "returnType"
|
|
1027
|
+
}
|
|
1028
|
+
]
|
|
1029
|
+
};
|
|
1030
|
+
}
|
|
1031
|
+
case ProcedureParam: {
|
|
1032
|
+
return {
|
|
1033
|
+
name: ProcedureParam,
|
|
1034
|
+
properties: [
|
|
1035
|
+
{
|
|
1036
|
+
name: "name"
|
|
1037
|
+
},
|
|
1038
|
+
{
|
|
1039
|
+
name: "optional",
|
|
1040
|
+
defaultValue: false
|
|
1041
|
+
},
|
|
1042
|
+
{
|
|
1043
|
+
name: "type"
|
|
1044
|
+
}
|
|
1045
|
+
]
|
|
1046
|
+
};
|
|
1047
|
+
}
|
|
1048
|
+
case ReferenceArg: {
|
|
1049
|
+
return {
|
|
1050
|
+
name: ReferenceArg,
|
|
1051
|
+
properties: [
|
|
1052
|
+
{
|
|
1053
|
+
name: "name"
|
|
1054
|
+
},
|
|
1055
|
+
{
|
|
1056
|
+
name: "value"
|
|
1057
|
+
}
|
|
1058
|
+
]
|
|
1059
|
+
};
|
|
1060
|
+
}
|
|
1061
|
+
case ReferenceExpr: {
|
|
1062
|
+
return {
|
|
1063
|
+
name: ReferenceExpr,
|
|
1064
|
+
properties: [
|
|
1065
|
+
{
|
|
1066
|
+
name: "args",
|
|
1067
|
+
defaultValue: []
|
|
1068
|
+
},
|
|
1069
|
+
{
|
|
1070
|
+
name: "target"
|
|
1071
|
+
}
|
|
1072
|
+
]
|
|
1073
|
+
};
|
|
1074
|
+
}
|
|
1075
|
+
case StringLiteral: {
|
|
1076
|
+
return {
|
|
1077
|
+
name: StringLiteral,
|
|
1078
|
+
properties: [
|
|
1079
|
+
{
|
|
1080
|
+
name: "value"
|
|
1081
|
+
}
|
|
1082
|
+
]
|
|
1083
|
+
};
|
|
1084
|
+
}
|
|
1085
|
+
case ThisExpr: {
|
|
1086
|
+
return {
|
|
1087
|
+
name: ThisExpr,
|
|
1088
|
+
properties: [
|
|
1089
|
+
{
|
|
1090
|
+
name: "value"
|
|
1091
|
+
}
|
|
1092
|
+
]
|
|
1093
|
+
};
|
|
1094
|
+
}
|
|
1095
|
+
case TypeDef: {
|
|
1096
|
+
return {
|
|
1097
|
+
name: TypeDef,
|
|
1098
|
+
properties: [
|
|
1099
|
+
{
|
|
1100
|
+
name: "attributes",
|
|
1101
|
+
defaultValue: []
|
|
1102
|
+
},
|
|
1103
|
+
{
|
|
1104
|
+
name: "comments",
|
|
1105
|
+
defaultValue: []
|
|
1106
|
+
},
|
|
1107
|
+
{
|
|
1108
|
+
name: "fields",
|
|
1109
|
+
defaultValue: []
|
|
1110
|
+
},
|
|
1111
|
+
{
|
|
1112
|
+
name: "name"
|
|
1113
|
+
}
|
|
1114
|
+
]
|
|
1115
|
+
};
|
|
1116
|
+
}
|
|
1117
|
+
case TypeDefField: {
|
|
1118
|
+
return {
|
|
1119
|
+
name: TypeDefField,
|
|
1120
|
+
properties: [
|
|
1121
|
+
{
|
|
1122
|
+
name: "attributes",
|
|
1123
|
+
defaultValue: []
|
|
1124
|
+
},
|
|
1125
|
+
{
|
|
1126
|
+
name: "comments",
|
|
1127
|
+
defaultValue: []
|
|
1128
|
+
},
|
|
1129
|
+
{
|
|
1130
|
+
name: "name"
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
name: "type"
|
|
1134
|
+
}
|
|
1135
|
+
]
|
|
1136
|
+
};
|
|
1137
|
+
}
|
|
1138
|
+
case TypeDefFieldType: {
|
|
1139
|
+
return {
|
|
1140
|
+
name: TypeDefFieldType,
|
|
1141
|
+
properties: [
|
|
1142
|
+
{
|
|
1143
|
+
name: "array",
|
|
1144
|
+
defaultValue: false
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
name: "optional",
|
|
1148
|
+
defaultValue: false
|
|
1149
|
+
},
|
|
1150
|
+
{
|
|
1151
|
+
name: "reference"
|
|
1152
|
+
},
|
|
1153
|
+
{
|
|
1154
|
+
name: "type"
|
|
1155
|
+
}
|
|
1156
|
+
]
|
|
1157
|
+
};
|
|
1158
|
+
}
|
|
1159
|
+
case UnaryExpr: {
|
|
1160
|
+
return {
|
|
1161
|
+
name: UnaryExpr,
|
|
1162
|
+
properties: [
|
|
1163
|
+
{
|
|
1164
|
+
name: "operand"
|
|
1165
|
+
},
|
|
1166
|
+
{
|
|
1167
|
+
name: "operator"
|
|
1168
|
+
}
|
|
1169
|
+
]
|
|
1170
|
+
};
|
|
1171
|
+
}
|
|
1172
|
+
case UnsupportedFieldType: {
|
|
1173
|
+
return {
|
|
1174
|
+
name: UnsupportedFieldType,
|
|
1175
|
+
properties: [
|
|
1176
|
+
{
|
|
1177
|
+
name: "value"
|
|
1178
|
+
}
|
|
1179
|
+
]
|
|
1180
|
+
};
|
|
1181
|
+
}
|
|
1182
|
+
default: {
|
|
1183
|
+
return {
|
|
1184
|
+
name: type,
|
|
1185
|
+
properties: []
|
|
1186
|
+
};
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
};
|
|
1191
|
+
var reflection = new ZModelAstReflection();
|
|
1192
|
+
|
|
1193
|
+
// src/ast.ts
|
|
1194
|
+
var BinaryExprOperatorPriority = {
|
|
1195
|
+
//LogicalExpr
|
|
1196
|
+
"||": 1,
|
|
1197
|
+
"&&": 1,
|
|
1198
|
+
//EqualityExpr
|
|
1199
|
+
"==": 2,
|
|
1200
|
+
"!=": 2,
|
|
1201
|
+
//ComparisonExpr
|
|
1202
|
+
">": 3,
|
|
1203
|
+
"<": 3,
|
|
1204
|
+
">=": 3,
|
|
1205
|
+
"<=": 3,
|
|
1206
|
+
in: 4,
|
|
1207
|
+
//CollectionPredicateExpr
|
|
1208
|
+
"^": 5,
|
|
1209
|
+
"?": 5,
|
|
1210
|
+
"!": 5
|
|
1211
|
+
};
|
|
1212
|
+
export {
|
|
1213
|
+
AbstractDeclaration,
|
|
1214
|
+
Argument,
|
|
1215
|
+
ArrayExpr,
|
|
1216
|
+
Attribute,
|
|
1217
|
+
AttributeArg,
|
|
1218
|
+
AttributeParam,
|
|
1219
|
+
AttributeParamType,
|
|
1220
|
+
BinaryExpr,
|
|
1221
|
+
BinaryExprOperatorPriority,
|
|
1222
|
+
BooleanLiteral,
|
|
1223
|
+
ConfigArrayExpr,
|
|
1224
|
+
ConfigExpr,
|
|
1225
|
+
ConfigField,
|
|
1226
|
+
ConfigInvocationArg,
|
|
1227
|
+
ConfigInvocationExpr,
|
|
1228
|
+
DataModel,
|
|
1229
|
+
DataModelAttribute,
|
|
1230
|
+
DataModelField,
|
|
1231
|
+
DataModelFieldAttribute,
|
|
1232
|
+
DataModelFieldType,
|
|
1233
|
+
DataSource,
|
|
1234
|
+
Enum,
|
|
1235
|
+
EnumField,
|
|
1236
|
+
Expression,
|
|
1237
|
+
FieldInitializer,
|
|
1238
|
+
FunctionDecl,
|
|
1239
|
+
FunctionParam,
|
|
1240
|
+
FunctionParamType,
|
|
1241
|
+
GeneratorDecl,
|
|
1242
|
+
InternalAttribute,
|
|
1243
|
+
InvocationExpr,
|
|
1244
|
+
LiteralExpr,
|
|
1245
|
+
MemberAccessExpr,
|
|
1246
|
+
MemberAccessTarget,
|
|
1247
|
+
Model,
|
|
1248
|
+
ModelImport,
|
|
1249
|
+
NullExpr,
|
|
1250
|
+
NumberLiteral,
|
|
1251
|
+
ObjectExpr,
|
|
1252
|
+
Plugin,
|
|
1253
|
+
PluginField,
|
|
1254
|
+
Procedure,
|
|
1255
|
+
ProcedureParam,
|
|
1256
|
+
ReferenceArg,
|
|
1257
|
+
ReferenceExpr,
|
|
1258
|
+
ReferenceTarget,
|
|
1259
|
+
StringLiteral,
|
|
1260
|
+
ThisExpr,
|
|
1261
|
+
TypeDeclaration,
|
|
1262
|
+
TypeDef,
|
|
1263
|
+
TypeDefField,
|
|
1264
|
+
TypeDefFieldType,
|
|
1265
|
+
TypeDefFieldTypes,
|
|
1266
|
+
UnaryExpr,
|
|
1267
|
+
UnsupportedFieldType,
|
|
1268
|
+
ZModelAstReflection,
|
|
1269
|
+
ZModelTerminals,
|
|
1270
|
+
isAbstractDeclaration,
|
|
1271
|
+
isArgument,
|
|
1272
|
+
isArrayExpr,
|
|
1273
|
+
isAttribute,
|
|
1274
|
+
isAttributeArg,
|
|
1275
|
+
isAttributeParam,
|
|
1276
|
+
isAttributeParamType,
|
|
1277
|
+
isBinaryExpr,
|
|
1278
|
+
isBoolean,
|
|
1279
|
+
isBooleanLiteral,
|
|
1280
|
+
isBuiltinType,
|
|
1281
|
+
isConfigArrayExpr,
|
|
1282
|
+
isConfigExpr,
|
|
1283
|
+
isConfigField,
|
|
1284
|
+
isConfigInvocationArg,
|
|
1285
|
+
isConfigInvocationExpr,
|
|
1286
|
+
isDataModel,
|
|
1287
|
+
isDataModelAttribute,
|
|
1288
|
+
isDataModelField,
|
|
1289
|
+
isDataModelFieldAttribute,
|
|
1290
|
+
isDataModelFieldType,
|
|
1291
|
+
isDataSource,
|
|
1292
|
+
isEnum,
|
|
1293
|
+
isEnumField,
|
|
1294
|
+
isExpression,
|
|
1295
|
+
isExpressionType,
|
|
1296
|
+
isFieldInitializer,
|
|
1297
|
+
isFunctionDecl,
|
|
1298
|
+
isFunctionParam,
|
|
1299
|
+
isFunctionParamType,
|
|
1300
|
+
isGeneratorDecl,
|
|
1301
|
+
isInternalAttribute,
|
|
1302
|
+
isInvocationExpr,
|
|
1303
|
+
isLiteralExpr,
|
|
1304
|
+
isMemberAccessExpr,
|
|
1305
|
+
isMemberAccessTarget,
|
|
1306
|
+
isModel,
|
|
1307
|
+
isModelImport,
|
|
1308
|
+
isNullExpr,
|
|
1309
|
+
isNumberLiteral,
|
|
1310
|
+
isObjectExpr,
|
|
1311
|
+
isPlugin,
|
|
1312
|
+
isPluginField,
|
|
1313
|
+
isProcedure,
|
|
1314
|
+
isProcedureParam,
|
|
1315
|
+
isReferenceArg,
|
|
1316
|
+
isReferenceExpr,
|
|
1317
|
+
isReferenceTarget,
|
|
1318
|
+
isRegularID,
|
|
1319
|
+
isRegularIDWithTypeNames,
|
|
1320
|
+
isStringLiteral,
|
|
1321
|
+
isThisExpr,
|
|
1322
|
+
isTypeDeclaration,
|
|
1323
|
+
isTypeDef,
|
|
1324
|
+
isTypeDefField,
|
|
1325
|
+
isTypeDefFieldType,
|
|
1326
|
+
isTypeDefFieldTypes,
|
|
1327
|
+
isUnaryExpr,
|
|
1328
|
+
isUnsupportedFieldType,
|
|
1329
|
+
reflection
|
|
1330
|
+
};
|
|
1331
|
+
//# sourceMappingURL=ast.js.map
|