pareto 0.55.0 → 0.56.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/auto.dist/public/cosmos__2__pareto/auto.provided_interface_glossary.d.ts +479 -243
- package/auto.dist/public/cosmos__2__pareto/implementations/library2ParetoComparators.alg.js +19 -19
- package/auto.dist/public/glossaries/grammar.d.ts +260 -0
- package/auto.dist/public/glossaries/grammar.js +3 -0
- package/auto.dist/public/glossaries/grammar.shadow.d.ts +8 -0
- package/auto.dist/public/glossaries/grammar.shadow.js +3 -0
- package/auto.dist/public/glossaries/liana.d.ts +2433 -0
- package/auto.dist/public/glossaries/liana.js +3 -0
- package/auto.dist/public/glossaries/liana.shadow.d.ts +8 -0
- package/auto.dist/public/glossaries/liana.shadow.js +3 -0
- package/auto.dist/public/glossaries/pareto.d.ts +477 -241
- package/auto.dist/public/glossaries/tendril.d.ts +1425 -0
- package/auto.dist/public/glossaries/tendril.js +3 -0
- package/auto.dist/public/glossaries/tendril.shadow.d.ts +8 -0
- package/auto.dist/public/glossaries/tendril.shadow.js +3 -0
- package/auto.dist/public/pareto__2__typescript/auto.provided_interface_glossary.d.ts +477 -241
- package/auto.dist/public/pareto__2__typescript/implementations/serializeCompilationUnit.alg.js +157 -109
- package/auto.dist/public/shorthands/grammar.d.ts +13 -0
- package/auto.dist/public/shorthands/grammar.js +110 -0
- package/auto.dist/public/shorthands/liana.d.ts +66 -0
- package/auto.dist/public/shorthands/liana.js +728 -0
- package/auto.dist/public/shorthands/pareto.d.ts +4 -4
- package/auto.dist/public/shorthands/pareto.js +31 -29
- package/auto.dist/public/shorthands/tendril.d.ts +48 -0
- package/auto.dist/public/shorthands/tendril.js +402 -0
- package/auto.pareto/$.data.ts +9 -3
- package/auto.pareto/auto.dependencies/index.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/$.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/arithmetic/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/arithmetic/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/array/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/array/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/boolean/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/boolean/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/build/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/build/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/collation/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/collation/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/dictionary/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/dictionary/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/filesystem/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/filesystem/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/foreach/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/foreach/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/http/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/http/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/json/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/json/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/nested/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/nested/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/numerical_predicates/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/numerical_predicates/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/path/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/path/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/resolve/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/resolve/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/string/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/string/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/tostring/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/pareto-standard-impure-library/modules/tostring/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/res-typescript/$.data.ts +1 -1
- package/auto.pareto/auto.dependencies/res-typescript/modules/naming/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/res-typescript/modules/naming/glossary.data.ts +1 -1
- package/auto.pareto/auto.dependencies/res-typescript/modules/serialize/api.data.ts +2 -2
- package/auto.pareto/auto.dependencies/res-typescript/modules/serialize/glossary.data.ts +1 -1
- package/auto.pareto/glossaries/auto.grammar.data.ts +262 -0
- package/auto.pareto/glossaries/auto.liana.data.ts +1955 -0
- package/auto.pareto/glossaries/auto.pareto.data.ts +430 -259
- package/auto.pareto/glossaries/auto.tendril.data.ts +1139 -0
- package/auto.pareto/modules/cosmos2pareto/api.data.ts +3 -4
- package/auto.pareto/modules/cosmos2pareto/glossary.data.ts +3 -3
- package/auto.pareto/modules/fountain_pen/api.data.ts +4 -4
- package/auto.pareto/modules/fountain_pen/glossary.data.ts +3 -3
- package/auto.pareto/modules/pareto2typescript/api.data.ts +4 -4
- package/auto.pareto/modules/pareto2typescript/glossary.data.ts +3 -3
- package/package.json +4 -4
|
@@ -0,0 +1,728 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.d = d;
|
|
37
|
+
exports.r = r;
|
|
38
|
+
exports.array = array;
|
|
39
|
+
exports.optional = optional;
|
|
40
|
+
exports.nothing = nothing;
|
|
41
|
+
exports.nothingResult = nothingResult;
|
|
42
|
+
exports.optionalResult = optionalResult;
|
|
43
|
+
exports.pCyclicLookup = pCyclicLookup;
|
|
44
|
+
exports.pResolvedValue = pResolvedValue;
|
|
45
|
+
exports.pExternalResolvedValue = pExternalResolvedValue;
|
|
46
|
+
exports.pNonCyclicLookup = pNonCyclicLookup;
|
|
47
|
+
exports.s_component = s_component;
|
|
48
|
+
exports.s_optional = s_optional;
|
|
49
|
+
exports.s_nothing = s_nothing;
|
|
50
|
+
exports.s_taggedunion = s_taggedunion;
|
|
51
|
+
exports.s_group = s_group;
|
|
52
|
+
exports.s_reference = s_reference;
|
|
53
|
+
exports.varSel = varSel;
|
|
54
|
+
exports.tailSel = tailSel;
|
|
55
|
+
exports.valSel = valSel;
|
|
56
|
+
exports.aResolvedValue = aResolvedValue;
|
|
57
|
+
exports.thisNonCyclic = thisNonCyclic;
|
|
58
|
+
exports.thisCyclic = thisCyclic;
|
|
59
|
+
exports.lresolvedDictionary = lresolvedDictionary;
|
|
60
|
+
exports.lparameter = lparameter;
|
|
61
|
+
exports.aLookup = aLookup;
|
|
62
|
+
exports.prop = prop;
|
|
63
|
+
exports.resolvedValueReference = resolvedValueReference;
|
|
64
|
+
exports.lookupReference = lookupReference;
|
|
65
|
+
exports.dictConstraint = dictConstraint;
|
|
66
|
+
exports.constrainedDictionary = constrainedDictionary;
|
|
67
|
+
exports.dictionary = dictionary;
|
|
68
|
+
exports.globalTypeResult = globalTypeResult;
|
|
69
|
+
exports.globalType = globalType;
|
|
70
|
+
exports.group = group;
|
|
71
|
+
exports.option = option;
|
|
72
|
+
exports.optionConstraint = optionConstraint;
|
|
73
|
+
exports.constrainedOption = constrainedOption;
|
|
74
|
+
exports.taggedUnion = taggedUnion;
|
|
75
|
+
exports.resultTaggedUnion = resultTaggedUnion;
|
|
76
|
+
exports.terminal = terminal;
|
|
77
|
+
exports.t_grp = t_grp;
|
|
78
|
+
exports.t_dict = t_dict;
|
|
79
|
+
exports.t_arr = t_arr;
|
|
80
|
+
exports.t_tu = t_tu;
|
|
81
|
+
exports.tempExternalTypeSelection = tempExternalTypeSelection;
|
|
82
|
+
exports.globalTypeSelection = globalTypeSelection;
|
|
83
|
+
exports.externalGlobalTypeSelection = externalGlobalTypeSelection;
|
|
84
|
+
exports.tempTypeSelection = tempTypeSelection;
|
|
85
|
+
exports.resolvedSiblingComponent = resolvedSiblingComponent;
|
|
86
|
+
exports.importedComponent = importedComponent;
|
|
87
|
+
const pd = __importStar(require("pareto-core-data"));
|
|
88
|
+
const pl = __importStar(require("pareto-core-alg"));
|
|
89
|
+
const a = pd.a;
|
|
90
|
+
function r_imp(name, depth) {
|
|
91
|
+
return {
|
|
92
|
+
key: name,
|
|
93
|
+
annotation: pd.getLocationInfo(depth + 1),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function d_imp($, annotation) {
|
|
97
|
+
return {
|
|
98
|
+
'annotation': annotation,
|
|
99
|
+
'dictionary': pd.d($),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function d_mappedimp($, annotation, cb) {
|
|
103
|
+
return {
|
|
104
|
+
'annotation': annotation,
|
|
105
|
+
'dictionary': pd.d($).map(cb),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function d($) {
|
|
109
|
+
const li = pd.getLocationInfo(1);
|
|
110
|
+
return d_imp($, li);
|
|
111
|
+
}
|
|
112
|
+
function r(name) {
|
|
113
|
+
return r_imp(name, 1);
|
|
114
|
+
}
|
|
115
|
+
function array(type) {
|
|
116
|
+
return {
|
|
117
|
+
'classes': pd.d({}),
|
|
118
|
+
'type': ['array', {
|
|
119
|
+
'type': type,
|
|
120
|
+
//'constraint': pd.notSet()
|
|
121
|
+
}]
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function optional(type, result) {
|
|
125
|
+
const x = result === undefined ? pd.notSet() : pd.set(result);
|
|
126
|
+
return {
|
|
127
|
+
'classes': pd.d({}),
|
|
128
|
+
'type': ['optional', {
|
|
129
|
+
'type': type,
|
|
130
|
+
'result': x
|
|
131
|
+
}]
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function nothing(result) {
|
|
135
|
+
const x = result === undefined ? pd.notSet() : pd.set(result);
|
|
136
|
+
return {
|
|
137
|
+
'classes': pd.d({}),
|
|
138
|
+
'type': ['nothing', {
|
|
139
|
+
'result': x
|
|
140
|
+
}]
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function nothingResult(type, selection) {
|
|
144
|
+
return {
|
|
145
|
+
'temp type': type,
|
|
146
|
+
'selection': selection,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function optionalResult(type, set, notSet) {
|
|
150
|
+
return {
|
|
151
|
+
'temp type': type,
|
|
152
|
+
'not set': notSet,
|
|
153
|
+
'set': set,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function pCyclicLookup(type) {
|
|
157
|
+
return {
|
|
158
|
+
'type': ['lookup', {
|
|
159
|
+
'kind': ['cyclic', null],
|
|
160
|
+
'type': type
|
|
161
|
+
}]
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
function pResolvedValue(gt, optional) {
|
|
165
|
+
return {
|
|
166
|
+
'type': ['resolved value', {
|
|
167
|
+
'type': {
|
|
168
|
+
'import': pd.notSet(),
|
|
169
|
+
'type': r_imp(gt, 1),
|
|
170
|
+
},
|
|
171
|
+
'optional': optional ? ['yes', null] : ['no', null]
|
|
172
|
+
}]
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
function pExternalResolvedValue(imp, gt, optional) {
|
|
176
|
+
return {
|
|
177
|
+
'type': ['resolved value', {
|
|
178
|
+
'type': {
|
|
179
|
+
'import': pd.set({
|
|
180
|
+
'key': imp,
|
|
181
|
+
'annotation': pd.getLocationInfo(1),
|
|
182
|
+
}),
|
|
183
|
+
'type': r_imp(gt, 1),
|
|
184
|
+
},
|
|
185
|
+
'optional': optional ? ['yes', null] : ['no', null]
|
|
186
|
+
}]
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
function pNonCyclicLookup(type) {
|
|
190
|
+
return {
|
|
191
|
+
'type': ['lookup', {
|
|
192
|
+
'kind': ['non cyclic', null],
|
|
193
|
+
'type': type
|
|
194
|
+
}]
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
function s_component(tail) {
|
|
198
|
+
return {
|
|
199
|
+
'step type': ['component', {
|
|
200
|
+
'annotation': pd.getLocationInfo(1),
|
|
201
|
+
'content': null,
|
|
202
|
+
}],
|
|
203
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
function s_optional(tail) {
|
|
207
|
+
return {
|
|
208
|
+
'step type': ['optional', {
|
|
209
|
+
'annotation': pd.getLocationInfo(1),
|
|
210
|
+
'content': null,
|
|
211
|
+
}],
|
|
212
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
function s_nothing(tail) {
|
|
216
|
+
return {
|
|
217
|
+
'step type': ['nothing', {
|
|
218
|
+
'annotation': pd.getLocationInfo(1),
|
|
219
|
+
'content': null,
|
|
220
|
+
}],
|
|
221
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
function s_taggedunion(tail) {
|
|
225
|
+
return {
|
|
226
|
+
'step type': ['tagged union', {
|
|
227
|
+
'annotation': pd.getLocationInfo(1),
|
|
228
|
+
'content': null,
|
|
229
|
+
}],
|
|
230
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
function s_group(prop, tail) {
|
|
234
|
+
return {
|
|
235
|
+
'step type': ['group', {
|
|
236
|
+
'annotation': pd.getLocationInfo(1),
|
|
237
|
+
'content': {
|
|
238
|
+
'property': {
|
|
239
|
+
'annotation': pd.getLocationInfo(1),
|
|
240
|
+
'key': prop,
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}],
|
|
244
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
function s_reference(tail) {
|
|
248
|
+
return {
|
|
249
|
+
'step type': ['reference', {
|
|
250
|
+
'annotation': pd.getLocationInfo(1),
|
|
251
|
+
'content': null,
|
|
252
|
+
}],
|
|
253
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
// export function comp(
|
|
257
|
+
// prop: string,
|
|
258
|
+
// tail?: g_this.D.Optional__Value__Selection__Tail<pd.SourceLocation>
|
|
259
|
+
// ): g_this.D.Optional__Value__Selection__Tail<pd.SourceLocation> {
|
|
260
|
+
// return [true, {
|
|
261
|
+
// 'step type': ['component', {
|
|
262
|
+
// 'property': {
|
|
263
|
+
// 'annotation': pd.getLocationInfo(1),
|
|
264
|
+
// 'key': prop,
|
|
265
|
+
// }
|
|
266
|
+
// }],
|
|
267
|
+
// 'tail': tail === undefined ? pd.notSet() : tail
|
|
268
|
+
// }]
|
|
269
|
+
// }
|
|
270
|
+
function varSel(start, tail) {
|
|
271
|
+
return {
|
|
272
|
+
'start': pd.set({
|
|
273
|
+
'annotation': pd.getLocationInfo(1),
|
|
274
|
+
'key': start,
|
|
275
|
+
}),
|
|
276
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
function tailSel(tail) {
|
|
280
|
+
return {
|
|
281
|
+
'start': pd.notSet(),
|
|
282
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
function valSel(start, tail) {
|
|
286
|
+
return {
|
|
287
|
+
'start': {
|
|
288
|
+
'annotation': pd.getLocationInfo(1),
|
|
289
|
+
'key': start,
|
|
290
|
+
},
|
|
291
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
function aResolvedValue(valSel) {
|
|
295
|
+
return {
|
|
296
|
+
'annotation': pd.getLocationInfo(1),
|
|
297
|
+
'content': {
|
|
298
|
+
'type': ['resolved value', valSel],
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
function thisNonCyclic() {
|
|
303
|
+
return ['this', {
|
|
304
|
+
'type': ['non cyclic', null]
|
|
305
|
+
}];
|
|
306
|
+
}
|
|
307
|
+
function thisCyclic() {
|
|
308
|
+
return ['this', {
|
|
309
|
+
'type': ['cyclic', null]
|
|
310
|
+
}];
|
|
311
|
+
}
|
|
312
|
+
function lresolvedDictionary(valSel) {
|
|
313
|
+
return ['resolved dictionary', valSel];
|
|
314
|
+
}
|
|
315
|
+
function lparameter(param) {
|
|
316
|
+
return ['parameter', {
|
|
317
|
+
'annotation': pd.getLocationInfo(1),
|
|
318
|
+
'key': param
|
|
319
|
+
}];
|
|
320
|
+
}
|
|
321
|
+
function aLookup(sel) {
|
|
322
|
+
return {
|
|
323
|
+
'annotation': pd.getLocationInfo(1),
|
|
324
|
+
'content': {
|
|
325
|
+
'type': ['lookup', sel],
|
|
326
|
+
},
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
//doesn't do anything
|
|
330
|
+
function prop(type) {
|
|
331
|
+
return type;
|
|
332
|
+
}
|
|
333
|
+
function resolvedValueReference(valSel, temp_type) {
|
|
334
|
+
return {
|
|
335
|
+
'classes': pd.d({}),
|
|
336
|
+
'type': ['terminal', {
|
|
337
|
+
'terminal': {
|
|
338
|
+
'type': {
|
|
339
|
+
'annotation': pd.getLocationInfo(1),
|
|
340
|
+
'key': "identifier",
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
'constrained': ['yes', {
|
|
344
|
+
'referencee type': ['resolved value', {
|
|
345
|
+
'temp type': temp_type,
|
|
346
|
+
'selection': valSel,
|
|
347
|
+
}]
|
|
348
|
+
}],
|
|
349
|
+
}]
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
function lookupReference(sel, temp_type) {
|
|
353
|
+
return {
|
|
354
|
+
'classes': pd.d({}),
|
|
355
|
+
'type': ['terminal', {
|
|
356
|
+
'terminal': {
|
|
357
|
+
'type': {
|
|
358
|
+
'annotation': pd.getLocationInfo(1),
|
|
359
|
+
'key': "identifier",
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
'constrained': ['yes', {
|
|
363
|
+
'referencee type': ['lookup', {
|
|
364
|
+
'temp type': temp_type,
|
|
365
|
+
'selection': sel,
|
|
366
|
+
}]
|
|
367
|
+
}],
|
|
368
|
+
}]
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
function dictConstraint(valSel, temp_type) {
|
|
372
|
+
return {
|
|
373
|
+
'temp type': temp_type,
|
|
374
|
+
'selection': valSel,
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
function constrainedDictionary(constraints, type) {
|
|
378
|
+
return {
|
|
379
|
+
'classes': pd.d({}),
|
|
380
|
+
'type': ['dictionary', {
|
|
381
|
+
'key': {
|
|
382
|
+
'type': {
|
|
383
|
+
'annotation': pd.getLocationInfo(1),
|
|
384
|
+
'key': "identifier",
|
|
385
|
+
},
|
|
386
|
+
},
|
|
387
|
+
'constraints': pd.d(constraints),
|
|
388
|
+
'variables': pd.d(constraints).__mapWithKey(($, key) => {
|
|
389
|
+
return ['dictionary constraint', {
|
|
390
|
+
'annotation': pd.getLocationInfo(1),
|
|
391
|
+
'key': key,
|
|
392
|
+
}];
|
|
393
|
+
}),
|
|
394
|
+
'type': type,
|
|
395
|
+
//'autofill': pd.a([]),
|
|
396
|
+
}]
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
function dictionary(type /*, autofill?: g_this.D.Type._ltype.dictionary.autofill.A<pd.SourceLocation>[]*/) {
|
|
400
|
+
return {
|
|
401
|
+
'classes': pd.d({}),
|
|
402
|
+
'type': ['dictionary', {
|
|
403
|
+
// 'annotation': li,
|
|
404
|
+
'key': {
|
|
405
|
+
'type': r_imp("identifier", 1)
|
|
406
|
+
},
|
|
407
|
+
'constraints': pd.d({}),
|
|
408
|
+
'variables': pd.d({}),
|
|
409
|
+
'type': type,
|
|
410
|
+
//'autofill': pd.a(autofill === undefined ? [] : autofill),
|
|
411
|
+
}]
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
function globalTypeResult(type, selection) {
|
|
415
|
+
return {
|
|
416
|
+
'type': type,
|
|
417
|
+
'selection': selection,
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
function globalType(parameters, type, result) {
|
|
421
|
+
const variables = {};
|
|
422
|
+
pd.d(parameters).__forEach(() => false, ($, key) => {
|
|
423
|
+
pl.cc($.type, ($) => {
|
|
424
|
+
switch ($[0]) {
|
|
425
|
+
case 'resolved value':
|
|
426
|
+
pl.ss($, ($) => {
|
|
427
|
+
});
|
|
428
|
+
break;
|
|
429
|
+
case 'lookup':
|
|
430
|
+
pl.ss($, ($) => {
|
|
431
|
+
variables[key] = ['parameter', {
|
|
432
|
+
'key': key,
|
|
433
|
+
'annotation': pd.getLocationInfo(1),
|
|
434
|
+
}];
|
|
435
|
+
});
|
|
436
|
+
break;
|
|
437
|
+
default: pl.au($[0]);
|
|
438
|
+
}
|
|
439
|
+
});
|
|
440
|
+
});
|
|
441
|
+
return {
|
|
442
|
+
'parameters': pd.d(parameters),
|
|
443
|
+
'variables': pd.d(variables),
|
|
444
|
+
'type': type,
|
|
445
|
+
'result': result === undefined
|
|
446
|
+
? pd.notSet()
|
|
447
|
+
: pd.set(result)
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
function group(rawProperties) {
|
|
451
|
+
const currentVariables = {};
|
|
452
|
+
function clone($) {
|
|
453
|
+
const out = {};
|
|
454
|
+
pd.d($).__forEach(() => false, ($, key) => {
|
|
455
|
+
out[key] = $;
|
|
456
|
+
});
|
|
457
|
+
return out;
|
|
458
|
+
}
|
|
459
|
+
return {
|
|
460
|
+
'classes': pd.d({}),
|
|
461
|
+
'type': ['group', {
|
|
462
|
+
'properties': pd.d(rawProperties).__mapWithKey(($, key) => {
|
|
463
|
+
const v = clone(currentVariables);
|
|
464
|
+
// currentVariables[key] = ['lookup', {
|
|
465
|
+
// 'key': key,
|
|
466
|
+
// 'annotation': pd.getLocationInfo(1)
|
|
467
|
+
// }]
|
|
468
|
+
return {
|
|
469
|
+
'variables': pd.d(v),
|
|
470
|
+
'type': $,
|
|
471
|
+
};
|
|
472
|
+
})
|
|
473
|
+
}]
|
|
474
|
+
};
|
|
475
|
+
}
|
|
476
|
+
function option(type, result) {
|
|
477
|
+
return {
|
|
478
|
+
'constraints': pd.d({}),
|
|
479
|
+
'variables': pd.d({}),
|
|
480
|
+
'type': type,
|
|
481
|
+
'result': result === undefined ? pd.notSet() : pd.set(result)
|
|
482
|
+
};
|
|
483
|
+
}
|
|
484
|
+
function optionConstraint(valSel, option, type) {
|
|
485
|
+
return {
|
|
486
|
+
'temp type': type,
|
|
487
|
+
'selection': valSel,
|
|
488
|
+
'option': {
|
|
489
|
+
'annotation': pd.getLocationInfo(1),
|
|
490
|
+
'key': option
|
|
491
|
+
}
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
function constrainedOption(constraints, type, result) {
|
|
495
|
+
return {
|
|
496
|
+
'constraints': pd.d(constraints),
|
|
497
|
+
'variables': pd.d(constraints).__mapWithKey(($, key) => {
|
|
498
|
+
return ['option constraint', {
|
|
499
|
+
'annotation': pd.getLocationInfo(1),
|
|
500
|
+
'key': key,
|
|
501
|
+
}];
|
|
502
|
+
}),
|
|
503
|
+
'type': type,
|
|
504
|
+
'result': result === undefined ? pd.notSet() : pd.set(result)
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
function taggedUnion(options) {
|
|
508
|
+
let firstKey = null;
|
|
509
|
+
pd.d(options).__mapWithKey(($, key) => {
|
|
510
|
+
if (firstKey === null) {
|
|
511
|
+
firstKey = key;
|
|
512
|
+
}
|
|
513
|
+
});
|
|
514
|
+
if (firstKey === null) {
|
|
515
|
+
firstKey = "--NO OPTIONS--";
|
|
516
|
+
}
|
|
517
|
+
return {
|
|
518
|
+
'classes': pd.d({}),
|
|
519
|
+
'type': ['tagged union', {
|
|
520
|
+
'options': pd.d(options),
|
|
521
|
+
'default': r_imp(firstKey, 1),
|
|
522
|
+
'result': pd.notSet()
|
|
523
|
+
}]
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
function resultTaggedUnion(result, options) {
|
|
527
|
+
let firstKey = null;
|
|
528
|
+
pd.d(options).__mapWithKey(($, key) => {
|
|
529
|
+
if (firstKey === null) {
|
|
530
|
+
firstKey = key;
|
|
531
|
+
}
|
|
532
|
+
});
|
|
533
|
+
if (firstKey === null) {
|
|
534
|
+
firstKey = "--NO OPTIONS--";
|
|
535
|
+
}
|
|
536
|
+
return {
|
|
537
|
+
'classes': pd.d({}),
|
|
538
|
+
'type': ['tagged union', {
|
|
539
|
+
'result': pd.set(result),
|
|
540
|
+
'options': pd.d(options),
|
|
541
|
+
'default': r_imp(firstKey, 1),
|
|
542
|
+
}]
|
|
543
|
+
};
|
|
544
|
+
}
|
|
545
|
+
function terminal(type) {
|
|
546
|
+
return {
|
|
547
|
+
'classes': pd.d({}),
|
|
548
|
+
'type': ['terminal', {
|
|
549
|
+
'terminal': {
|
|
550
|
+
'type': {
|
|
551
|
+
'annotation': pd.getLocationInfo(1),
|
|
552
|
+
'key': type,
|
|
553
|
+
}
|
|
554
|
+
},
|
|
555
|
+
'constrained': ['no', null],
|
|
556
|
+
}]
|
|
557
|
+
};
|
|
558
|
+
}
|
|
559
|
+
// export function sgrp(prop: string, tail: g_this.D.Selection<pd.SourceLocation>): g_this.D.Selection<pd.SourceLocation> {
|
|
560
|
+
// return ['group', {
|
|
561
|
+
// 'property': {
|
|
562
|
+
// 'annotation': pd.getLocationInfo(1),
|
|
563
|
+
// 'key': prop,
|
|
564
|
+
// },
|
|
565
|
+
// 'selection': tail
|
|
566
|
+
// }]
|
|
567
|
+
// }
|
|
568
|
+
// export function sarray(notEmpty: g_this.D.Selection<pd.SourceLocation>, empty: g_this.D.Selection<pd.SourceLocation>): g_this.D.Selection<pd.SourceLocation> {
|
|
569
|
+
// return ['array', {
|
|
570
|
+
// 'empty': empty,
|
|
571
|
+
// 'not empty': notEmpty,
|
|
572
|
+
// }]
|
|
573
|
+
// }
|
|
574
|
+
// export function sref(): g_this.D.Selection<pd.SourceLocation> {
|
|
575
|
+
// return ['reference', null]
|
|
576
|
+
// }
|
|
577
|
+
// export function scomponent($: string): g_this.D.Selection<pd.SourceLocation> {
|
|
578
|
+
// return ['component', {
|
|
579
|
+
// 'type name': $
|
|
580
|
+
// }]
|
|
581
|
+
// }
|
|
582
|
+
// export function stu(options: RawDictionary<g_this.D.Selection<pd.SourceLocation>>): g_this.D.Selection<pd.SourceLocation> {
|
|
583
|
+
// return ['tagged union', pd.d(options)]
|
|
584
|
+
// }
|
|
585
|
+
function t_grp(prop, tail) {
|
|
586
|
+
return {
|
|
587
|
+
'step type': ['group', {
|
|
588
|
+
'annotation': pd.getLocationInfo(1),
|
|
589
|
+
'content': {
|
|
590
|
+
'property': r_imp(prop, 1),
|
|
591
|
+
},
|
|
592
|
+
}],
|
|
593
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
594
|
+
};
|
|
595
|
+
}
|
|
596
|
+
function t_dict(tail) {
|
|
597
|
+
return {
|
|
598
|
+
'step type': ['dictionary', {
|
|
599
|
+
'annotation': pd.getLocationInfo(1),
|
|
600
|
+
'content': null,
|
|
601
|
+
}],
|
|
602
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
603
|
+
};
|
|
604
|
+
}
|
|
605
|
+
function t_arr(tail) {
|
|
606
|
+
return {
|
|
607
|
+
'step type': ['array', {
|
|
608
|
+
'annotation': pd.getLocationInfo(1),
|
|
609
|
+
'content': null,
|
|
610
|
+
}],
|
|
611
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
612
|
+
};
|
|
613
|
+
}
|
|
614
|
+
function t_tu(opt, tail) {
|
|
615
|
+
return {
|
|
616
|
+
'step type': ['tagged union', {
|
|
617
|
+
'annotation': pd.getLocationInfo(1),
|
|
618
|
+
'content': {
|
|
619
|
+
'option': r_imp(opt, 1),
|
|
620
|
+
},
|
|
621
|
+
}],
|
|
622
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
function tempExternalTypeSelection(imp, globalType, tail) {
|
|
626
|
+
return {
|
|
627
|
+
'global type': {
|
|
628
|
+
'import': pd.set({
|
|
629
|
+
'key': imp,
|
|
630
|
+
'annotation': pd.getLocationInfo(1),
|
|
631
|
+
}),
|
|
632
|
+
'type': r_imp(globalType, 1),
|
|
633
|
+
},
|
|
634
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
635
|
+
};
|
|
636
|
+
}
|
|
637
|
+
function globalTypeSelection(globalType) {
|
|
638
|
+
return {
|
|
639
|
+
'import': pd.notSet(),
|
|
640
|
+
'type': r_imp(globalType, 1),
|
|
641
|
+
};
|
|
642
|
+
}
|
|
643
|
+
function externalGlobalTypeSelection(imp, globalType) {
|
|
644
|
+
return {
|
|
645
|
+
'import': pd.set({
|
|
646
|
+
'annotation': pd.getLocationInfo(1),
|
|
647
|
+
'key': imp,
|
|
648
|
+
}),
|
|
649
|
+
'type': r_imp(globalType, 1),
|
|
650
|
+
};
|
|
651
|
+
}
|
|
652
|
+
function tempTypeSelection(globalType, tail) {
|
|
653
|
+
return {
|
|
654
|
+
'global type': {
|
|
655
|
+
'import': pd.notSet(),
|
|
656
|
+
'type': r_imp(globalType, 1),
|
|
657
|
+
},
|
|
658
|
+
'tail': tail === undefined ? pd.notSet() : pd.set(tail)
|
|
659
|
+
};
|
|
660
|
+
}
|
|
661
|
+
// export function tuStep(option: string): g_this.D.Value__Selection.tail.A<pd.SourceLocation> {
|
|
662
|
+
// return ['tagged union', {
|
|
663
|
+
// 'option': {
|
|
664
|
+
// 'annotation': pd.getLocationInfo(1),
|
|
665
|
+
// 'key': option
|
|
666
|
+
// }
|
|
667
|
+
// }]
|
|
668
|
+
// }
|
|
669
|
+
// export function component(type: string, args: RawDictionary<g_this.D.Type._ltype.component.arguments.DX<pd.SourceLocation>>): g_this.D.Type<pd.SourceLocation> {
|
|
670
|
+
// return {
|
|
671
|
+
// 'classes': pd.d({}),
|
|
672
|
+
// 'type': ['component', {
|
|
673
|
+
// 'context': ['local', null],
|
|
674
|
+
// 'type': r_imp(type, 1),
|
|
675
|
+
// 'arguments': pd.d(args),
|
|
676
|
+
// }]
|
|
677
|
+
// }
|
|
678
|
+
// }
|
|
679
|
+
// export function importedComponent(library: string, type: string, args: RawDictionary<g_this.D.Type._ltype.component.arguments.DX<pd.SourceLocation>>): g_this.D.Type<pd.SourceLocation> {
|
|
680
|
+
// return {
|
|
681
|
+
// 'classes': pd.d({}),
|
|
682
|
+
// 'type': ['component', {
|
|
683
|
+
// 'context': ['import', {
|
|
684
|
+
// 'library': r_imp(library, 1)
|
|
685
|
+
// }],
|
|
686
|
+
// 'type': r_imp(type, 1),
|
|
687
|
+
// 'arguments': pd.d(args),
|
|
688
|
+
// }]
|
|
689
|
+
// }
|
|
690
|
+
// }
|
|
691
|
+
function resolvedSiblingComponent(type, args) {
|
|
692
|
+
return {
|
|
693
|
+
'classes': pd.d({}),
|
|
694
|
+
'type': ['component', {
|
|
695
|
+
'context': ['resolved sibling', {
|
|
696
|
+
'type': r_imp(type, 1),
|
|
697
|
+
}],
|
|
698
|
+
'arguments': pd.d(args),
|
|
699
|
+
}]
|
|
700
|
+
};
|
|
701
|
+
}
|
|
702
|
+
// export function cyclicSiblingComponent(
|
|
703
|
+
// type: string,
|
|
704
|
+
// args: RawDictionary<g_this.D.Type._ltype.component.arguments.DX<pd.SourceLocation>>
|
|
705
|
+
// ): g_this.D.Type<pd.SourceLocation> {
|
|
706
|
+
// return {
|
|
707
|
+
// 'classes': pd.d({}),
|
|
708
|
+
// 'type': ['component', {
|
|
709
|
+
// 'context': ['cyclic sibling', {
|
|
710
|
+
// 'type': r_imp(type, 1),
|
|
711
|
+
// }],
|
|
712
|
+
// 'arguments': pd.d(args),
|
|
713
|
+
// }]
|
|
714
|
+
// }
|
|
715
|
+
// }
|
|
716
|
+
function importedComponent(library, type, args) {
|
|
717
|
+
return {
|
|
718
|
+
'classes': pd.d({}),
|
|
719
|
+
'type': ['component', {
|
|
720
|
+
'context': ['import', {
|
|
721
|
+
'library': r_imp(library, 1),
|
|
722
|
+
'type': r_imp(type, 1),
|
|
723
|
+
}],
|
|
724
|
+
'arguments': pd.d(args),
|
|
725
|
+
}]
|
|
726
|
+
};
|
|
727
|
+
}
|
|
728
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlhbmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHVibGljL3Nob3J0aGFuZHMvbGlhbmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQ0EsY0FHQztBQUVELGNBRUM7QUFFRCxzQkFRQztBQUVELDRCQVNDO0FBRUQsMEJBU0M7QUFFRCxzQ0FRQztBQUVELHdDQVVDO0FBRUQsc0NBT0M7QUFFRCx3Q0FVQztBQUNELHdEQWFDO0FBRUQsNENBU0M7QUFFRCxrQ0FVQztBQUVELGdDQVVDO0FBRUQsOEJBVUM7QUFFRCxzQ0FVQztBQUVELDBCQWdCQztBQUVELGtDQVVDO0FBZ0JELHdCQVdDO0FBRUQsMEJBT0M7QUFFRCx3QkFXQztBQUdELHdDQVNDO0FBRUQsc0NBS0M7QUFFRCxnQ0FLQztBQUVELGtEQUlDO0FBRUQsZ0NBT0M7QUFFRCwwQkFTQztBQUdELG9CQUVDO0FBRUQsd0RBcUJDO0FBRUQsMENBcUJDO0FBRUQsd0NBUUM7QUFFRCxzREF3QkM7QUFFRCxnQ0FjQztBQUVELDRDQVNDO0FBRUQsZ0NBa0NDO0FBRUQsc0JBeUJDO0FBRUQsd0JBVUM7QUFHRCw0Q0FhQztBQUVELDhDQWdCQztBQUVELGtDQXFCQztBQUNELDhDQXNCQztBQUVELDRCQWFDO0FBK0JELHNCQWFDO0FBRUQsd0JBVUM7QUFFRCxzQkFVQztBQUVELG9CQWFDO0FBRUQsOERBZUM7QUFHRCxrREFPQztBQUVELGtFQVdDO0FBRUQsOENBV0M7QUFtQ0QsNERBY0M7QUFrQkQsOENBZUM7QUE5ekJELHFEQUFzQztBQUN0QyxvREFBcUM7QUFJckMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQWdCZCxTQUFTLEtBQUssQ0FBQyxJQUFZLEVBQUUsS0FBYTtJQUN0QyxPQUFPO1FBQ0gsR0FBRyxFQUFFLElBQUk7UUFDVCxVQUFVLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FB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
|