fhirpath-ts 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -18
- package/dist/analyzer/analyze-dto.d.ts +4 -0
- package/dist/analyzer/analyze-dto.d.ts.map +1 -1
- package/dist/analyzer/analyze-dto.js +12 -14
- package/dist/analyzer/analyze-dto.js.map +1 -1
- package/dist/analyzer/analyze.d.ts +22 -6
- package/dist/analyzer/analyze.d.ts.map +1 -1
- package/dist/analyzer/analyze.js +242 -98
- package/dist/analyzer/analyze.js.map +1 -1
- package/dist/analyzer/declarations.d.ts +26 -0
- package/dist/analyzer/declarations.d.ts.map +1 -0
- package/dist/analyzer/declarations.js +68 -0
- package/dist/analyzer/declarations.js.map +1 -0
- package/dist/analyzer/operator-rules.d.ts +127 -0
- package/dist/analyzer/operator-rules.d.ts.map +1 -0
- package/dist/analyzer/operator-rules.js +70 -0
- package/dist/analyzer/operator-rules.js.map +1 -0
- package/dist/analyzer/signatures.d.ts +1097 -10
- package/dist/analyzer/signatures.d.ts.map +1 -1
- package/dist/analyzer/signatures.js +70 -29
- package/dist/analyzer/signatures.js.map +1 -1
- package/dist/api/compile.d.ts +32 -8
- package/dist/api/compile.d.ts.map +1 -1
- package/dist/api/compile.js +2 -0
- package/dist/api/compile.js.map +1 -1
- package/dist/api/engine.d.ts +42 -16
- package/dist/api/engine.d.ts.map +1 -1
- package/dist/api/engine.js +2 -1
- package/dist/api/engine.js.map +1 -1
- package/dist/api/project.d.ts +8 -8
- package/dist/api/project.d.ts.map +1 -1
- package/dist/api/project.js +31 -19
- package/dist/api/project.js.map +1 -1
- package/dist/api/strict.d.ts +6 -0
- package/dist/api/strict.d.ts.map +1 -0
- package/dist/api/strict.js +71 -0
- package/dist/api/strict.js.map +1 -0
- package/dist/api/tagged.d.ts +4 -4
- package/dist/api/tagged.d.ts.map +1 -1
- package/dist/api/tagged.js.map +1 -1
- package/dist/cli/dto-check.js +7 -3
- package/dist/cli/dto-check.js.map +1 -1
- package/dist/engine/context.d.ts +3 -1
- package/dist/engine/context.d.ts.map +1 -1
- package/dist/engine/context.js +5 -1
- package/dist/engine/context.js.map +1 -1
- package/dist/engine/navigation.d.ts.map +1 -1
- package/dist/engine/navigation.js +7 -48
- package/dist/engine/navigation.js.map +1 -1
- package/dist/engine/type-matching.d.ts.map +1 -1
- package/dist/engine/type-matching.js +6 -16
- package/dist/engine/type-matching.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/parser/parser.d.ts.map +1 -1
- package/dist/parser/parser.js +102 -73
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/precedence.d.ts +368 -4
- package/dist/parser/precedence.d.ts.map +1 -1
- package/dist/parser/precedence.js +146 -32
- package/dist/parser/precedence.js.map +1 -1
- package/dist/r4/generated/type-maps.d.ts +1367 -0
- package/dist/r4/generated/type-maps.d.ts.map +1 -1
- package/dist/r4/index.d.ts +3 -1
- package/dist/r4/index.d.ts.map +1 -1
- package/dist/typed/context-maps.d.ts +23 -0
- package/dist/typed/context-maps.d.ts.map +1 -0
- package/dist/typed/context-maps.js +2 -0
- package/dist/typed/context-maps.js.map +1 -0
- package/dist/typed/infer.d.ts +99 -229
- package/dist/typed/infer.d.ts.map +1 -1
- package/dist/typed/infer.js +1 -84
- package/dist/typed/infer.js.map +1 -1
- package/dist/typed/inference-limits.d.ts +7 -0
- package/dist/typed/inference-limits.d.ts.map +1 -0
- package/dist/typed/inference-limits.js +6 -0
- package/dist/typed/inference-limits.js.map +1 -0
- package/dist/typed/metadata-compact.d.ts +189 -0
- package/dist/typed/metadata-compact.d.ts.map +1 -0
- package/dist/typed/metadata-compact.js +3 -0
- package/dist/typed/metadata-compact.js.map +1 -0
- package/dist/typed/parser.d.ts +515 -0
- package/dist/typed/parser.d.ts.map +1 -0
- package/dist/typed/parser.js +2 -0
- package/dist/typed/parser.js.map +1 -0
- package/dist/values/type-compat.d.ts +8 -0
- package/dist/values/type-compat.d.ts.map +1 -1
- package/dist/values/type-compat.js +44 -1
- package/dist/values/type-compat.js.map +1 -1
- package/package.json +20 -1
- package/src/analyzer/analyze-dto.ts +21 -17
- package/src/analyzer/analyze.ts +335 -109
- package/src/analyzer/declarations.ts +120 -0
- package/src/analyzer/operator-rules.ts +88 -0
- package/src/analyzer/signatures.ts +99 -41
- package/src/api/compile.ts +66 -11
- package/src/api/engine.ts +97 -33
- package/src/api/project.ts +54 -30
- package/src/api/strict.ts +112 -0
- package/src/api/tagged.ts +5 -5
- package/src/cli/dto-check.ts +7 -3
- package/src/engine/context.ts +7 -2
- package/src/engine/navigation.ts +7 -52
- package/src/engine/type-matching.ts +11 -17
- package/src/index.ts +25 -2
- package/src/parser/parser.ts +106 -74
- package/src/parser/precedence.ts +250 -33
- package/src/r4/generated/type-maps.ts +1557 -0
- package/src/typed/context-maps.ts +41 -0
- package/src/typed/infer.ts +157 -425
- package/src/typed/inference-limits.ts +9 -0
- package/src/typed/metadata-compact.ts +307 -0
- package/src/typed/parser.ts +2277 -0
- package/src/values/type-compat.ts +48 -1
- package/dist/typed/perf-fixture.types.d.ts +0 -136
- package/dist/typed/perf-fixture.types.d.ts.map +0 -1
- package/dist/typed/perf-fixture.types.js +0 -2
- package/dist/typed/perf-fixture.types.js.map +0 -1
- package/src/typed/perf-fixture.types.ts +0 -143
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Binding powers derived from the spec's 13-level operator precedence table
|
|
3
|
-
*
|
|
4
|
-
* spec numbers levels the other way around (1 = `.`, 13 = `implies`).
|
|
2
|
+
* Binding powers derived from the spec's 13-level operator precedence table.
|
|
3
|
+
* Higher binds tighter; the spec numbers levels in the opposite direction.
|
|
5
4
|
*/
|
|
6
5
|
export declare const BindingPower: {
|
|
7
6
|
readonly Implies: 1;
|
|
@@ -19,6 +18,371 @@ export declare const BindingPower: {
|
|
|
19
18
|
readonly Dot: 13;
|
|
20
19
|
readonly FunctionCall: 14;
|
|
21
20
|
};
|
|
22
|
-
|
|
21
|
+
export type InfixParseletRecord = {
|
|
22
|
+
tokenKind: 'operator' | 'keyword';
|
|
23
|
+
fixity: 'infix';
|
|
24
|
+
bindingPower: number;
|
|
25
|
+
associativity: 'left';
|
|
26
|
+
rhs: 'expression';
|
|
27
|
+
reducer: 'binary';
|
|
28
|
+
} | {
|
|
29
|
+
tokenKind: 'keyword';
|
|
30
|
+
fixity: 'infix';
|
|
31
|
+
bindingPower: number;
|
|
32
|
+
associativity: 'left';
|
|
33
|
+
rhs: 'type-name';
|
|
34
|
+
reducer: 'type';
|
|
35
|
+
} | {
|
|
36
|
+
tokenKind: 'punct';
|
|
37
|
+
fixity: 'infix';
|
|
38
|
+
bindingPower: number;
|
|
39
|
+
associativity: 'left';
|
|
40
|
+
rhs: 'path';
|
|
41
|
+
reducer: 'dot';
|
|
42
|
+
} | {
|
|
43
|
+
tokenKind: 'punct';
|
|
44
|
+
fixity: 'postfix';
|
|
45
|
+
bindingPower: number;
|
|
46
|
+
associativity: 'left';
|
|
47
|
+
rhs: 'index';
|
|
48
|
+
reducer: 'indexer';
|
|
49
|
+
} | {
|
|
50
|
+
tokenKind: 'punct';
|
|
51
|
+
fixity: 'postfix';
|
|
52
|
+
bindingPower: number;
|
|
53
|
+
associativity: 'left';
|
|
54
|
+
rhs: 'arguments';
|
|
55
|
+
reducer: 'call';
|
|
56
|
+
};
|
|
57
|
+
export type PrefixParseletRecord = {
|
|
58
|
+
tokenKind: 'identifier' | 'variable';
|
|
59
|
+
fixity: 'prefix';
|
|
60
|
+
bindingPower: number;
|
|
61
|
+
associativity: 'none';
|
|
62
|
+
rhs: 'none';
|
|
63
|
+
reducer: 'identifier';
|
|
64
|
+
} | {
|
|
65
|
+
tokenKind: 'literal';
|
|
66
|
+
fixity: 'prefix';
|
|
67
|
+
bindingPower: number;
|
|
68
|
+
associativity: 'none';
|
|
69
|
+
rhs: 'none';
|
|
70
|
+
reducer: 'literal';
|
|
71
|
+
} | {
|
|
72
|
+
tokenKind: 'operator';
|
|
73
|
+
fixity: 'prefix';
|
|
74
|
+
bindingPower: number;
|
|
75
|
+
associativity: 'right';
|
|
76
|
+
rhs: 'expression';
|
|
77
|
+
reducer: 'unary';
|
|
78
|
+
} | {
|
|
79
|
+
tokenKind: 'punct';
|
|
80
|
+
fixity: 'prefix';
|
|
81
|
+
bindingPower: number;
|
|
82
|
+
associativity: 'none';
|
|
83
|
+
rhs: 'group';
|
|
84
|
+
reducer: 'group';
|
|
85
|
+
} | {
|
|
86
|
+
tokenKind: 'punct';
|
|
87
|
+
fixity: 'prefix';
|
|
88
|
+
bindingPower: number;
|
|
89
|
+
associativity: 'none';
|
|
90
|
+
rhs: 'none';
|
|
91
|
+
reducer: 'empty';
|
|
92
|
+
} | {
|
|
93
|
+
tokenKind: 'punct';
|
|
94
|
+
fixity: 'prefix';
|
|
95
|
+
bindingPower: number;
|
|
96
|
+
associativity: 'none';
|
|
97
|
+
rhs: 'external-name';
|
|
98
|
+
reducer: 'external';
|
|
99
|
+
};
|
|
100
|
+
/** Single source of truth for tokens and token kinds accepted before an operand. */
|
|
101
|
+
export declare const PREFIX_PARSELETS: {
|
|
102
|
+
readonly identifier: {
|
|
103
|
+
readonly tokenKind: "identifier";
|
|
104
|
+
readonly fixity: "prefix";
|
|
105
|
+
readonly bindingPower: 0;
|
|
106
|
+
readonly associativity: "none";
|
|
107
|
+
readonly rhs: "none";
|
|
108
|
+
readonly reducer: "identifier";
|
|
109
|
+
};
|
|
110
|
+
readonly literal: {
|
|
111
|
+
readonly tokenKind: "literal";
|
|
112
|
+
readonly fixity: "prefix";
|
|
113
|
+
readonly bindingPower: 0;
|
|
114
|
+
readonly associativity: "none";
|
|
115
|
+
readonly rhs: "none";
|
|
116
|
+
readonly reducer: "literal";
|
|
117
|
+
};
|
|
118
|
+
readonly variable: {
|
|
119
|
+
readonly tokenKind: "variable";
|
|
120
|
+
readonly fixity: "prefix";
|
|
121
|
+
readonly bindingPower: 0;
|
|
122
|
+
readonly associativity: "none";
|
|
123
|
+
readonly rhs: "none";
|
|
124
|
+
readonly reducer: "identifier";
|
|
125
|
+
};
|
|
126
|
+
readonly '+': {
|
|
127
|
+
readonly tokenKind: "operator";
|
|
128
|
+
readonly fixity: "prefix";
|
|
129
|
+
readonly bindingPower: 11;
|
|
130
|
+
readonly associativity: "right";
|
|
131
|
+
readonly rhs: "expression";
|
|
132
|
+
readonly reducer: "unary";
|
|
133
|
+
};
|
|
134
|
+
readonly '-': {
|
|
135
|
+
readonly tokenKind: "operator";
|
|
136
|
+
readonly fixity: "prefix";
|
|
137
|
+
readonly bindingPower: 11;
|
|
138
|
+
readonly associativity: "right";
|
|
139
|
+
readonly rhs: "expression";
|
|
140
|
+
readonly reducer: "unary";
|
|
141
|
+
};
|
|
142
|
+
readonly '(': {
|
|
143
|
+
readonly tokenKind: "punct";
|
|
144
|
+
readonly fixity: "prefix";
|
|
145
|
+
readonly bindingPower: 0;
|
|
146
|
+
readonly associativity: "none";
|
|
147
|
+
readonly rhs: "group";
|
|
148
|
+
readonly reducer: "group";
|
|
149
|
+
};
|
|
150
|
+
readonly '{': {
|
|
151
|
+
readonly tokenKind: "punct";
|
|
152
|
+
readonly fixity: "prefix";
|
|
153
|
+
readonly bindingPower: 0;
|
|
154
|
+
readonly associativity: "none";
|
|
155
|
+
readonly rhs: "none";
|
|
156
|
+
readonly reducer: "empty";
|
|
157
|
+
};
|
|
158
|
+
readonly '%': {
|
|
159
|
+
readonly tokenKind: "punct";
|
|
160
|
+
readonly fixity: "prefix";
|
|
161
|
+
readonly bindingPower: 0;
|
|
162
|
+
readonly associativity: "none";
|
|
163
|
+
readonly rhs: "external-name";
|
|
164
|
+
readonly reducer: "external";
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
/** Single source of truth for every token accepted after an operand. */
|
|
168
|
+
export declare const INFIX_PARSELETS: {
|
|
169
|
+
readonly implies: {
|
|
170
|
+
tokenKind: "operator" | "keyword";
|
|
171
|
+
fixity: "infix";
|
|
172
|
+
bindingPower: number;
|
|
173
|
+
associativity: "left";
|
|
174
|
+
rhs: "expression";
|
|
175
|
+
reducer: "binary";
|
|
176
|
+
};
|
|
177
|
+
readonly or: {
|
|
178
|
+
tokenKind: "operator" | "keyword";
|
|
179
|
+
fixity: "infix";
|
|
180
|
+
bindingPower: number;
|
|
181
|
+
associativity: "left";
|
|
182
|
+
rhs: "expression";
|
|
183
|
+
reducer: "binary";
|
|
184
|
+
};
|
|
185
|
+
readonly xor: {
|
|
186
|
+
tokenKind: "operator" | "keyword";
|
|
187
|
+
fixity: "infix";
|
|
188
|
+
bindingPower: number;
|
|
189
|
+
associativity: "left";
|
|
190
|
+
rhs: "expression";
|
|
191
|
+
reducer: "binary";
|
|
192
|
+
};
|
|
193
|
+
readonly and: {
|
|
194
|
+
tokenKind: "operator" | "keyword";
|
|
195
|
+
fixity: "infix";
|
|
196
|
+
bindingPower: number;
|
|
197
|
+
associativity: "left";
|
|
198
|
+
rhs: "expression";
|
|
199
|
+
reducer: "binary";
|
|
200
|
+
};
|
|
201
|
+
readonly in: {
|
|
202
|
+
tokenKind: "operator" | "keyword";
|
|
203
|
+
fixity: "infix";
|
|
204
|
+
bindingPower: number;
|
|
205
|
+
associativity: "left";
|
|
206
|
+
rhs: "expression";
|
|
207
|
+
reducer: "binary";
|
|
208
|
+
};
|
|
209
|
+
readonly contains: {
|
|
210
|
+
tokenKind: "operator" | "keyword";
|
|
211
|
+
fixity: "infix";
|
|
212
|
+
bindingPower: number;
|
|
213
|
+
associativity: "left";
|
|
214
|
+
rhs: "expression";
|
|
215
|
+
reducer: "binary";
|
|
216
|
+
};
|
|
217
|
+
readonly '=': {
|
|
218
|
+
tokenKind: "operator" | "keyword";
|
|
219
|
+
fixity: "infix";
|
|
220
|
+
bindingPower: number;
|
|
221
|
+
associativity: "left";
|
|
222
|
+
rhs: "expression";
|
|
223
|
+
reducer: "binary";
|
|
224
|
+
};
|
|
225
|
+
readonly '~': {
|
|
226
|
+
tokenKind: "operator" | "keyword";
|
|
227
|
+
fixity: "infix";
|
|
228
|
+
bindingPower: number;
|
|
229
|
+
associativity: "left";
|
|
230
|
+
rhs: "expression";
|
|
231
|
+
reducer: "binary";
|
|
232
|
+
};
|
|
233
|
+
readonly '!=': {
|
|
234
|
+
tokenKind: "operator" | "keyword";
|
|
235
|
+
fixity: "infix";
|
|
236
|
+
bindingPower: number;
|
|
237
|
+
associativity: "left";
|
|
238
|
+
rhs: "expression";
|
|
239
|
+
reducer: "binary";
|
|
240
|
+
};
|
|
241
|
+
readonly '!~': {
|
|
242
|
+
tokenKind: "operator" | "keyword";
|
|
243
|
+
fixity: "infix";
|
|
244
|
+
bindingPower: number;
|
|
245
|
+
associativity: "left";
|
|
246
|
+
rhs: "expression";
|
|
247
|
+
reducer: "binary";
|
|
248
|
+
};
|
|
249
|
+
readonly '<': {
|
|
250
|
+
tokenKind: "operator" | "keyword";
|
|
251
|
+
fixity: "infix";
|
|
252
|
+
bindingPower: number;
|
|
253
|
+
associativity: "left";
|
|
254
|
+
rhs: "expression";
|
|
255
|
+
reducer: "binary";
|
|
256
|
+
};
|
|
257
|
+
readonly '>': {
|
|
258
|
+
tokenKind: "operator" | "keyword";
|
|
259
|
+
fixity: "infix";
|
|
260
|
+
bindingPower: number;
|
|
261
|
+
associativity: "left";
|
|
262
|
+
rhs: "expression";
|
|
263
|
+
reducer: "binary";
|
|
264
|
+
};
|
|
265
|
+
readonly '<=': {
|
|
266
|
+
tokenKind: "operator" | "keyword";
|
|
267
|
+
fixity: "infix";
|
|
268
|
+
bindingPower: number;
|
|
269
|
+
associativity: "left";
|
|
270
|
+
rhs: "expression";
|
|
271
|
+
reducer: "binary";
|
|
272
|
+
};
|
|
273
|
+
readonly '>=': {
|
|
274
|
+
tokenKind: "operator" | "keyword";
|
|
275
|
+
fixity: "infix";
|
|
276
|
+
bindingPower: number;
|
|
277
|
+
associativity: "left";
|
|
278
|
+
rhs: "expression";
|
|
279
|
+
reducer: "binary";
|
|
280
|
+
};
|
|
281
|
+
readonly '|': {
|
|
282
|
+
tokenKind: "operator" | "keyword";
|
|
283
|
+
fixity: "infix";
|
|
284
|
+
bindingPower: number;
|
|
285
|
+
associativity: "left";
|
|
286
|
+
rhs: "expression";
|
|
287
|
+
reducer: "binary";
|
|
288
|
+
};
|
|
289
|
+
readonly is: {
|
|
290
|
+
readonly tokenKind: "keyword";
|
|
291
|
+
readonly fixity: "infix";
|
|
292
|
+
readonly bindingPower: 8;
|
|
293
|
+
readonly associativity: "left";
|
|
294
|
+
readonly rhs: "type-name";
|
|
295
|
+
readonly reducer: "type";
|
|
296
|
+
};
|
|
297
|
+
readonly as: {
|
|
298
|
+
readonly tokenKind: "keyword";
|
|
299
|
+
readonly fixity: "infix";
|
|
300
|
+
readonly bindingPower: 8;
|
|
301
|
+
readonly associativity: "left";
|
|
302
|
+
readonly rhs: "type-name";
|
|
303
|
+
readonly reducer: "type";
|
|
304
|
+
};
|
|
305
|
+
readonly '+': {
|
|
306
|
+
tokenKind: "operator" | "keyword";
|
|
307
|
+
fixity: "infix";
|
|
308
|
+
bindingPower: number;
|
|
309
|
+
associativity: "left";
|
|
310
|
+
rhs: "expression";
|
|
311
|
+
reducer: "binary";
|
|
312
|
+
};
|
|
313
|
+
readonly '-': {
|
|
314
|
+
tokenKind: "operator" | "keyword";
|
|
315
|
+
fixity: "infix";
|
|
316
|
+
bindingPower: number;
|
|
317
|
+
associativity: "left";
|
|
318
|
+
rhs: "expression";
|
|
319
|
+
reducer: "binary";
|
|
320
|
+
};
|
|
321
|
+
readonly '&': {
|
|
322
|
+
tokenKind: "operator" | "keyword";
|
|
323
|
+
fixity: "infix";
|
|
324
|
+
bindingPower: number;
|
|
325
|
+
associativity: "left";
|
|
326
|
+
rhs: "expression";
|
|
327
|
+
reducer: "binary";
|
|
328
|
+
};
|
|
329
|
+
readonly '*': {
|
|
330
|
+
tokenKind: "operator" | "keyword";
|
|
331
|
+
fixity: "infix";
|
|
332
|
+
bindingPower: number;
|
|
333
|
+
associativity: "left";
|
|
334
|
+
rhs: "expression";
|
|
335
|
+
reducer: "binary";
|
|
336
|
+
};
|
|
337
|
+
readonly '/': {
|
|
338
|
+
tokenKind: "operator" | "keyword";
|
|
339
|
+
fixity: "infix";
|
|
340
|
+
bindingPower: number;
|
|
341
|
+
associativity: "left";
|
|
342
|
+
rhs: "expression";
|
|
343
|
+
reducer: "binary";
|
|
344
|
+
};
|
|
345
|
+
readonly div: {
|
|
346
|
+
tokenKind: "operator" | "keyword";
|
|
347
|
+
fixity: "infix";
|
|
348
|
+
bindingPower: number;
|
|
349
|
+
associativity: "left";
|
|
350
|
+
rhs: "expression";
|
|
351
|
+
reducer: "binary";
|
|
352
|
+
};
|
|
353
|
+
readonly mod: {
|
|
354
|
+
tokenKind: "operator" | "keyword";
|
|
355
|
+
fixity: "infix";
|
|
356
|
+
bindingPower: number;
|
|
357
|
+
associativity: "left";
|
|
358
|
+
rhs: "expression";
|
|
359
|
+
reducer: "binary";
|
|
360
|
+
};
|
|
361
|
+
readonly '[': {
|
|
362
|
+
readonly tokenKind: "punct";
|
|
363
|
+
readonly fixity: "postfix";
|
|
364
|
+
readonly bindingPower: 12;
|
|
365
|
+
readonly associativity: "left";
|
|
366
|
+
readonly rhs: "index";
|
|
367
|
+
readonly reducer: "indexer";
|
|
368
|
+
};
|
|
369
|
+
readonly '.': {
|
|
370
|
+
readonly tokenKind: "punct";
|
|
371
|
+
readonly fixity: "infix";
|
|
372
|
+
readonly bindingPower: 13;
|
|
373
|
+
readonly associativity: "left";
|
|
374
|
+
readonly rhs: "path";
|
|
375
|
+
readonly reducer: "dot";
|
|
376
|
+
};
|
|
377
|
+
readonly '(': {
|
|
378
|
+
readonly tokenKind: "punct";
|
|
379
|
+
readonly fixity: "postfix";
|
|
380
|
+
readonly bindingPower: 14;
|
|
381
|
+
readonly associativity: "left";
|
|
382
|
+
readonly rhs: "arguments";
|
|
383
|
+
readonly reducer: "call";
|
|
384
|
+
};
|
|
385
|
+
};
|
|
386
|
+
/** Compatibility view used by callers that only need precedence. */
|
|
23
387
|
export declare const INFIX_BINDING_POWER: Readonly<Record<string, number>>;
|
|
24
388
|
//# sourceMappingURL=precedence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"precedence.d.ts","sourceRoot":"","sources":["../../src/parser/precedence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"precedence.d.ts","sourceRoot":"","sources":["../../src/parser/precedence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Binding powers derived from the spec's 13-level operator precedence table
|
|
3
|
-
*
|
|
4
|
-
* spec numbers levels the other way around (1 = `.`, 13 = `implies`).
|
|
2
|
+
* Binding powers derived from the spec's 13-level operator precedence table.
|
|
3
|
+
* Higher binds tighter; the spec numbers levels in the opposite direction.
|
|
5
4
|
*/
|
|
6
5
|
export const BindingPower = {
|
|
7
6
|
Implies: 1,
|
|
@@ -19,34 +18,149 @@ export const BindingPower = {
|
|
|
19
18
|
Dot: 13,
|
|
20
19
|
FunctionCall: 14,
|
|
21
20
|
};
|
|
22
|
-
/**
|
|
23
|
-
export const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
'
|
|
49
|
-
|
|
50
|
-
|
|
21
|
+
/** Single source of truth for tokens and token kinds accepted before an operand. */
|
|
22
|
+
export const PREFIX_PARSELETS = {
|
|
23
|
+
identifier: {
|
|
24
|
+
tokenKind: 'identifier',
|
|
25
|
+
fixity: 'prefix',
|
|
26
|
+
bindingPower: 0,
|
|
27
|
+
associativity: 'none',
|
|
28
|
+
rhs: 'none',
|
|
29
|
+
reducer: 'identifier',
|
|
30
|
+
},
|
|
31
|
+
literal: {
|
|
32
|
+
tokenKind: 'literal',
|
|
33
|
+
fixity: 'prefix',
|
|
34
|
+
bindingPower: 0,
|
|
35
|
+
associativity: 'none',
|
|
36
|
+
rhs: 'none',
|
|
37
|
+
reducer: 'literal',
|
|
38
|
+
},
|
|
39
|
+
variable: {
|
|
40
|
+
tokenKind: 'variable',
|
|
41
|
+
fixity: 'prefix',
|
|
42
|
+
bindingPower: 0,
|
|
43
|
+
associativity: 'none',
|
|
44
|
+
rhs: 'none',
|
|
45
|
+
reducer: 'identifier',
|
|
46
|
+
},
|
|
47
|
+
'+': {
|
|
48
|
+
tokenKind: 'operator',
|
|
49
|
+
fixity: 'prefix',
|
|
50
|
+
bindingPower: BindingPower.Unary,
|
|
51
|
+
associativity: 'right',
|
|
52
|
+
rhs: 'expression',
|
|
53
|
+
reducer: 'unary',
|
|
54
|
+
},
|
|
55
|
+
'-': {
|
|
56
|
+
tokenKind: 'operator',
|
|
57
|
+
fixity: 'prefix',
|
|
58
|
+
bindingPower: BindingPower.Unary,
|
|
59
|
+
associativity: 'right',
|
|
60
|
+
rhs: 'expression',
|
|
61
|
+
reducer: 'unary',
|
|
62
|
+
},
|
|
63
|
+
'(': {
|
|
64
|
+
tokenKind: 'punct',
|
|
65
|
+
fixity: 'prefix',
|
|
66
|
+
bindingPower: 0,
|
|
67
|
+
associativity: 'none',
|
|
68
|
+
rhs: 'group',
|
|
69
|
+
reducer: 'group',
|
|
70
|
+
},
|
|
71
|
+
'{': {
|
|
72
|
+
tokenKind: 'punct',
|
|
73
|
+
fixity: 'prefix',
|
|
74
|
+
bindingPower: 0,
|
|
75
|
+
associativity: 'none',
|
|
76
|
+
rhs: 'none',
|
|
77
|
+
reducer: 'empty',
|
|
78
|
+
},
|
|
79
|
+
'%': {
|
|
80
|
+
tokenKind: 'punct',
|
|
81
|
+
fixity: 'prefix',
|
|
82
|
+
bindingPower: 0,
|
|
83
|
+
associativity: 'none',
|
|
84
|
+
rhs: 'external-name',
|
|
85
|
+
reducer: 'external',
|
|
86
|
+
},
|
|
51
87
|
};
|
|
88
|
+
const binary = (tokenKind, bindingPower) => ({
|
|
89
|
+
tokenKind,
|
|
90
|
+
fixity: 'infix',
|
|
91
|
+
bindingPower,
|
|
92
|
+
associativity: 'left',
|
|
93
|
+
rhs: 'expression',
|
|
94
|
+
reducer: 'binary',
|
|
95
|
+
});
|
|
96
|
+
/** Single source of truth for every token accepted after an operand. */
|
|
97
|
+
export const INFIX_PARSELETS = {
|
|
98
|
+
implies: binary('keyword', BindingPower.Implies),
|
|
99
|
+
or: binary('keyword', BindingPower.OrXor),
|
|
100
|
+
xor: binary('keyword', BindingPower.OrXor),
|
|
101
|
+
and: binary('keyword', BindingPower.And),
|
|
102
|
+
in: binary('keyword', BindingPower.Membership),
|
|
103
|
+
contains: binary('keyword', BindingPower.Membership),
|
|
104
|
+
'=': binary('operator', BindingPower.Equality),
|
|
105
|
+
'~': binary('operator', BindingPower.Equality),
|
|
106
|
+
'!=': binary('operator', BindingPower.Equality),
|
|
107
|
+
'!~': binary('operator', BindingPower.Equality),
|
|
108
|
+
'<': binary('operator', BindingPower.Comparison),
|
|
109
|
+
'>': binary('operator', BindingPower.Comparison),
|
|
110
|
+
'<=': binary('operator', BindingPower.Comparison),
|
|
111
|
+
'>=': binary('operator', BindingPower.Comparison),
|
|
112
|
+
'|': binary('operator', BindingPower.Union),
|
|
113
|
+
is: {
|
|
114
|
+
tokenKind: 'keyword',
|
|
115
|
+
fixity: 'infix',
|
|
116
|
+
bindingPower: BindingPower.TypeOps,
|
|
117
|
+
associativity: 'left',
|
|
118
|
+
rhs: 'type-name',
|
|
119
|
+
reducer: 'type',
|
|
120
|
+
},
|
|
121
|
+
as: {
|
|
122
|
+
tokenKind: 'keyword',
|
|
123
|
+
fixity: 'infix',
|
|
124
|
+
bindingPower: BindingPower.TypeOps,
|
|
125
|
+
associativity: 'left',
|
|
126
|
+
rhs: 'type-name',
|
|
127
|
+
reducer: 'type',
|
|
128
|
+
},
|
|
129
|
+
'+': binary('operator', BindingPower.Additive),
|
|
130
|
+
'-': binary('operator', BindingPower.Additive),
|
|
131
|
+
'&': binary('operator', BindingPower.Additive),
|
|
132
|
+
'*': binary('operator', BindingPower.Multiplicative),
|
|
133
|
+
'/': binary('operator', BindingPower.Multiplicative),
|
|
134
|
+
div: binary('keyword', BindingPower.Multiplicative),
|
|
135
|
+
mod: binary('keyword', BindingPower.Multiplicative),
|
|
136
|
+
'[': {
|
|
137
|
+
tokenKind: 'punct',
|
|
138
|
+
fixity: 'postfix',
|
|
139
|
+
bindingPower: BindingPower.Indexer,
|
|
140
|
+
associativity: 'left',
|
|
141
|
+
rhs: 'index',
|
|
142
|
+
reducer: 'indexer',
|
|
143
|
+
},
|
|
144
|
+
'.': {
|
|
145
|
+
tokenKind: 'punct',
|
|
146
|
+
fixity: 'infix',
|
|
147
|
+
bindingPower: BindingPower.Dot,
|
|
148
|
+
associativity: 'left',
|
|
149
|
+
rhs: 'path',
|
|
150
|
+
reducer: 'dot',
|
|
151
|
+
},
|
|
152
|
+
'(': {
|
|
153
|
+
tokenKind: 'punct',
|
|
154
|
+
fixity: 'postfix',
|
|
155
|
+
bindingPower: BindingPower.FunctionCall,
|
|
156
|
+
associativity: 'left',
|
|
157
|
+
rhs: 'arguments',
|
|
158
|
+
reducer: 'call',
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
/** Compatibility view used by callers that only need precedence. */
|
|
162
|
+
export const INFIX_BINDING_POWER = Object.fromEntries(Object.entries(INFIX_PARSELETS).map(([token, record]) => [token, record.bindingPower]));
|
|
163
|
+
/** Compile-time coverage: every binary AST operator has a binary parselet. */
|
|
164
|
+
const _binaryOperatorCoverage = INFIX_PARSELETS;
|
|
165
|
+
void _binaryOperatorCoverage;
|
|
52
166
|
//# sourceMappingURL=precedence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"precedence.js","sourceRoot":"","sources":["../../src/parser/precedence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"precedence.js","sourceRoot":"","sources":["../../src/parser/precedence.ts"],"names":[],"mappings":"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"}
|