fhirpath-ts 0.0.0-bootstrap.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,19 +1,7 @@
|
|
|
1
1
|
import { FhirPathTypeError } from "../errors.js";
|
|
2
|
-
import { resolveByInput, unsatisfiedInput } from "../values/type-compat.js";
|
|
2
|
+
import { resolveByInput, SYSTEM_TYPE_LOCAL_NAMES, unsatisfiedInput, } from "../values/type-compat.js";
|
|
3
3
|
import { OBJECT_TYPE, typeLocalName } from "../values/typed-value.js";
|
|
4
|
-
const
|
|
5
|
-
'Any',
|
|
6
|
-
'Boolean',
|
|
7
|
-
'String',
|
|
8
|
-
'Integer',
|
|
9
|
-
'Long',
|
|
10
|
-
'Decimal',
|
|
11
|
-
'Date',
|
|
12
|
-
'DateTime',
|
|
13
|
-
'Time',
|
|
14
|
-
'Quantity',
|
|
15
|
-
]);
|
|
16
|
-
const SYSTEM_LOCAL_NAMES_LOWER = new Set([...SYSTEM_LOCAL_NAMES].map(name => name.toLowerCase()));
|
|
4
|
+
const SYSTEM_LOCAL_NAMES_LOWER = new Set([...SYSTEM_TYPE_LOCAL_NAMES].map(name => name.toLowerCase()));
|
|
17
5
|
/** True when an unqualified name may mean a System primitive and requires exact `as`/`ofType` matching. */
|
|
18
6
|
function isSystemAmbiguousName(name) {
|
|
19
7
|
return SYSTEM_LOCAL_NAMES_LOWER.has(name.toLowerCase());
|
|
@@ -100,13 +88,15 @@ function* focusTypes(input) {
|
|
|
100
88
|
/** True when a single-part type name resolves in the model or the System namespace. */
|
|
101
89
|
export function isKnownTypeName(context, parts) {
|
|
102
90
|
if (parts.length === 2) {
|
|
103
|
-
return parts[0] === 'System'
|
|
91
|
+
return parts[0] === 'System'
|
|
92
|
+
? SYSTEM_TYPE_LOCAL_NAMES.has(parts[1])
|
|
93
|
+
: parts[0] === context.model?.namespace;
|
|
104
94
|
}
|
|
105
95
|
const name = parts[0];
|
|
106
96
|
if (context.model?.resolveType(name) !== undefined) {
|
|
107
97
|
return true;
|
|
108
98
|
}
|
|
109
|
-
return
|
|
99
|
+
return SYSTEM_TYPE_LOCAL_NAMES.has(name);
|
|
110
100
|
}
|
|
111
101
|
function matchesSystemType(item, name) {
|
|
112
102
|
if (name === 'Any') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-matching.js","sourceRoot":"","sources":["../../src/engine/type-matching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"type-matching.js","sourceRoot":"","sources":["../../src/engine/type-matching.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export type { CustomFunctionSignature, ValueArgSpec } from './analyzer/signatures.ts';
|
|
2
2
|
export type { BundleLike } from './api/bundle.ts';
|
|
3
|
-
export type { AnyExpression, CustomFunction, EvaluateOptions, OverloadedCustomFunction, SingleCustomFunction, } from './api/compile.ts';
|
|
3
|
+
export type { AnyExpression, CompiledExpressionResult, CustomFunction, Declaring, EvaluateOptions, InferredExpressionResult, OverloadedCustomFunction, SingleCustomFunction, } from './api/compile.ts';
|
|
4
4
|
export { compile, CompiledExpression, DEFAULT_PARSE_CACHE_SIZE } from './api/compile.ts';
|
|
5
5
|
export type { ConstraintCheckResult, ConstraintIssue, FhirConstraint, OperationOutcome } from './api/constraints.ts';
|
|
6
6
|
export type { ColumnTypeMismatch, DtoBase, DtoClass, DtoEnv, DtoInstance, DtoOptions, DtoRow } from './api/dto.ts';
|
|
7
7
|
export { column, criteria, defineDto } from './api/dto.ts';
|
|
8
|
-
export type { EngineInput, EngineOptions, TypedEvaluateOptions } from './api/engine.ts';
|
|
8
|
+
export type { EngineExpression, EngineInput, EngineInputRoot, EngineOptions, EngineProjection, EngineProjectionContext, EngineResult, TypedEvaluateOptions, } from './api/engine.ts';
|
|
9
9
|
export { BoundExpression, FhirPathEngine, recordEngines } from './api/engine.ts';
|
|
10
10
|
export { evaluate } from './api/evaluate.ts';
|
|
11
11
|
export type { ColumnOptions, ColumnResult, Projection, ProjectionColumn, ProjectionColumns } from './api/project.ts';
|
|
@@ -17,7 +17,8 @@ export type { ElementInfo, ModelProvider } from './model/provider.ts';
|
|
|
17
17
|
export type { AstNode } from './parser/ast.ts';
|
|
18
18
|
export { parse } from './parser/parser.ts';
|
|
19
19
|
export { printExpression } from './parser/printer.ts';
|
|
20
|
-
export type {
|
|
20
|
+
export type { EmptyContextMap } from './typed/context-maps.ts';
|
|
21
|
+
export type { EmptyFhirpathTypeContext, FhirpathFunctionDeclaration, FhirpathInput, FhirpathResult, FhirpathResultIn, FhirpathTypeContext, FhirpathTypeDeclaration, FhirpathTypeDeclarations, FhirTypeName, } from './typed/infer.ts';
|
|
21
22
|
export { Temporal } from './values/datetime.ts';
|
|
22
23
|
export { Decimal } from './values/decimal.ts';
|
|
23
24
|
export type { ValueKind } from './values/type-compat.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACrF,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,YAAY,EACV,aAAa,EACb,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AACxF,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACpH,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAClH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC1D,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACrF,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,YAAY,EACV,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,SAAS,EACT,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AACxF,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACpH,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAClH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC1D,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,GACrB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC1E,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACzG,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACrE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,YAAY,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,GACb,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAGxF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAW1D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG1C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGzG,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAarD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAgD,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAgD,MAAM,UAAU,CAAA;AAuVrF,2GAA2G;AAC3G,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7C"}
|
package/dist/parser/parser.js
CHANGED
|
@@ -4,10 +4,9 @@
|
|
|
4
4
|
import { FhirPathSyntaxError } from "../errors.js";
|
|
5
5
|
import { tokenize } from "../lexer/lexer.js";
|
|
6
6
|
import { CALENDAR_DURATION_UNITS } from "../lexer/tokens.js";
|
|
7
|
-
import {
|
|
7
|
+
import { INFIX_PARSELETS, PREFIX_PARSELETS } from "./precedence.js";
|
|
8
8
|
/** Keywords the grammar also accepts as element names, e.g. `'abc'.contains('b')`. */
|
|
9
9
|
const KEYWORDS_USABLE_AS_IDENTIFIERS = new Set(['as', 'contains', 'in', 'is']);
|
|
10
|
-
const TYPE_OPERATORS = new Set(['is', 'as']);
|
|
11
10
|
/**
|
|
12
11
|
* Nesting far beyond anything a real expression uses. Without a cap, adversarial
|
|
13
12
|
* input like ((((…)))) overflows the call stack as a native RangeError instead of
|
|
@@ -39,13 +38,12 @@ class Parser {
|
|
|
39
38
|
let left = this.parsePrefix();
|
|
40
39
|
for (;;) {
|
|
41
40
|
const token = this.peek();
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
if (bindingPower === undefined || bindingPower <= minBindingPower) {
|
|
41
|
+
const parselet = this.infixParselet(token);
|
|
42
|
+
if (parselet === undefined || parselet.bindingPower <= minBindingPower) {
|
|
45
43
|
return left;
|
|
46
44
|
}
|
|
47
45
|
this.advance();
|
|
48
|
-
left = this.parseInfix(left, token,
|
|
46
|
+
left = this.parseInfix(left, token, parselet);
|
|
49
47
|
}
|
|
50
48
|
}
|
|
51
49
|
finally {
|
|
@@ -54,9 +52,28 @@ class Parser {
|
|
|
54
52
|
}
|
|
55
53
|
parsePrefix() {
|
|
56
54
|
const token = this.peek();
|
|
55
|
+
const parselet = this.prefixParselet(token);
|
|
56
|
+
if (parselet === undefined) {
|
|
57
|
+
throw this.error(token.kind === 'end' ? 'Unexpected end of expression' : `Unexpected '${token.text}'`, token);
|
|
58
|
+
}
|
|
59
|
+
switch (parselet.reducer) {
|
|
60
|
+
case 'identifier':
|
|
61
|
+
this.advance();
|
|
62
|
+
return parselet.tokenKind === 'variable'
|
|
63
|
+
? { kind: 'special', name: token.value, span: token.span }
|
|
64
|
+
: { kind: 'identifier', name: token.value, span: token.span };
|
|
65
|
+
case 'literal':
|
|
66
|
+
return this.parseLiteral(token);
|
|
67
|
+
case 'unary':
|
|
68
|
+
return this.parseUnary(token, parselet);
|
|
69
|
+
case 'group':
|
|
70
|
+
case 'empty':
|
|
71
|
+
case 'external':
|
|
72
|
+
return this.parsePunctPrefix(token, parselet);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
parseLiteral(token) {
|
|
57
76
|
switch (token.kind) {
|
|
58
|
-
case 'end':
|
|
59
|
-
throw this.error('Unexpected end of expression', token);
|
|
60
77
|
case 'number':
|
|
61
78
|
return this.parseNumberOrQuantity();
|
|
62
79
|
case 'string':
|
|
@@ -71,42 +88,17 @@ class Parser {
|
|
|
71
88
|
case 'time':
|
|
72
89
|
this.advance();
|
|
73
90
|
return { kind: 'time', text: token.value, span: token.span };
|
|
74
|
-
case 'specialVariable':
|
|
75
|
-
this.advance();
|
|
76
|
-
return { kind: 'special', name: token.value, span: token.span };
|
|
77
|
-
case 'identifier':
|
|
78
|
-
case 'delimitedIdentifier':
|
|
79
|
-
this.advance();
|
|
80
|
-
return { kind: 'identifier', name: token.value, span: token.span };
|
|
81
91
|
case 'keyword':
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
case 'punct':
|
|
86
|
-
return this.parsePunctPrefix(token);
|
|
87
|
-
/* v8 ignore start -- exhaustive fallback, every token kind has a case above */
|
|
92
|
+
this.advance();
|
|
93
|
+
return { kind: 'boolean', value: token.text === 'true', span: token.span };
|
|
94
|
+
/* v8 ignore next -- prefixTokenKind admits only literal token kinds here */
|
|
88
95
|
default:
|
|
89
|
-
throw
|
|
90
|
-
/* v8 ignore stop */
|
|
96
|
+
throw new Error(`Invalid literal parselet for '${token.text}'`);
|
|
91
97
|
}
|
|
92
98
|
}
|
|
93
|
-
|
|
94
|
-
if (token.text === 'true' || token.text === 'false') {
|
|
95
|
-
this.advance();
|
|
96
|
-
return { kind: 'boolean', value: token.text === 'true', span: token.span };
|
|
97
|
-
}
|
|
98
|
-
if (KEYWORDS_USABLE_AS_IDENTIFIERS.has(token.text)) {
|
|
99
|
-
this.advance();
|
|
100
|
-
return { kind: 'identifier', name: token.value, span: token.span };
|
|
101
|
-
}
|
|
102
|
-
throw this.error(`Unexpected '${token.text}'`, token);
|
|
103
|
-
}
|
|
104
|
-
parseUnary(token) {
|
|
105
|
-
if (token.text !== '+' && token.text !== '-') {
|
|
106
|
-
throw this.error(`Unexpected '${token.text}'`, token);
|
|
107
|
-
}
|
|
99
|
+
parseUnary(token, parselet) {
|
|
108
100
|
this.advance();
|
|
109
|
-
const operand = this.parseExpression(
|
|
101
|
+
const operand = this.parseExpression(parselet.bindingPower);
|
|
110
102
|
return {
|
|
111
103
|
kind: 'unary',
|
|
112
104
|
operator: token.text,
|
|
@@ -114,21 +106,21 @@ class Parser {
|
|
|
114
106
|
span: this.spanBetween(token.span, operand.span),
|
|
115
107
|
};
|
|
116
108
|
}
|
|
117
|
-
parsePunctPrefix(token) {
|
|
118
|
-
switch (
|
|
119
|
-
case '
|
|
109
|
+
parsePunctPrefix(token, parselet) {
|
|
110
|
+
switch (parselet.reducer) {
|
|
111
|
+
case 'group': {
|
|
120
112
|
this.advance();
|
|
121
113
|
const inner = this.parseExpression(0);
|
|
122
114
|
this.expect(')');
|
|
123
115
|
this.parenthesized.add(inner);
|
|
124
116
|
return inner;
|
|
125
117
|
}
|
|
126
|
-
case '
|
|
118
|
+
case 'empty': {
|
|
127
119
|
this.advance();
|
|
128
120
|
const close = this.expect('}');
|
|
129
121
|
return { kind: 'null', span: this.spanBetween(token.span, close.span) };
|
|
130
122
|
}
|
|
131
|
-
case '
|
|
123
|
+
case 'external': {
|
|
132
124
|
this.advance();
|
|
133
125
|
const name = this.peek();
|
|
134
126
|
if (name.kind !== 'identifier' && name.kind !== 'delimitedIdentifier' && name.kind !== 'string') {
|
|
@@ -137,8 +129,6 @@ class Parser {
|
|
|
137
129
|
this.advance();
|
|
138
130
|
return { kind: 'external', name: name.value, span: this.spanBetween(token.span, name.span) };
|
|
139
131
|
}
|
|
140
|
-
default:
|
|
141
|
-
throw this.error(`Unexpected '${token.text}'`, token);
|
|
142
132
|
}
|
|
143
133
|
}
|
|
144
134
|
parseNumberOrQuantity() {
|
|
@@ -171,40 +161,52 @@ class Parser {
|
|
|
171
161
|
}
|
|
172
162
|
return { kind: 'number', text: token.value, isDecimal: token.value.includes('.'), span: token.span };
|
|
173
163
|
}
|
|
174
|
-
parseInfix(left, token,
|
|
175
|
-
switch (
|
|
176
|
-
case '
|
|
164
|
+
parseInfix(left, token, parselet) {
|
|
165
|
+
switch (parselet.reducer) {
|
|
166
|
+
case 'dot':
|
|
177
167
|
return this.parseDot(left);
|
|
178
|
-
case '
|
|
168
|
+
case 'indexer': {
|
|
179
169
|
const index = this.parseExpression(0);
|
|
180
170
|
const close = this.expect(']');
|
|
181
171
|
return { kind: 'indexer', target: left, index, span: this.spanBetween(left.span, close.span) };
|
|
182
172
|
}
|
|
183
|
-
case '
|
|
173
|
+
case 'call':
|
|
184
174
|
return this.parseCall(left);
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
175
|
+
case 'type': {
|
|
176
|
+
const type = this.parseTypeSpecifier();
|
|
177
|
+
return {
|
|
178
|
+
kind: 'typeOp',
|
|
179
|
+
operator: token.text,
|
|
180
|
+
operand: left,
|
|
181
|
+
type,
|
|
182
|
+
span: this.spanBetween(left.span, type.span),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
case 'binary': {
|
|
186
|
+
const right = this.parseExpression(parselet.bindingPower);
|
|
187
|
+
return {
|
|
188
|
+
kind: 'binary',
|
|
189
|
+
operator: token.text,
|
|
190
|
+
left,
|
|
191
|
+
right,
|
|
192
|
+
span: this.spanBetween(left.span, right.span),
|
|
193
|
+
};
|
|
194
|
+
}
|
|
197
195
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
196
|
+
}
|
|
197
|
+
infixParselet(token) {
|
|
198
|
+
if (token.kind !== 'operator' && token.kind !== 'keyword' && token.kind !== 'punct')
|
|
199
|
+
return undefined;
|
|
200
|
+
const parselet = INFIX_PARSELETS[token.text];
|
|
201
|
+
return parselet?.tokenKind === token.kind ? parselet : undefined;
|
|
202
|
+
}
|
|
203
|
+
prefixParselet(token) {
|
|
204
|
+
const tokenKind = prefixTokenKind(token);
|
|
205
|
+
if (tokenKind === undefined)
|
|
206
|
+
return undefined;
|
|
207
|
+
const key = tokenKind === 'operator' || tokenKind === 'punct' ? token.text : tokenKind;
|
|
208
|
+
const parselet = PREFIX_PARSELETS[key];
|
|
209
|
+
return parselet?.tokenKind === tokenKind ? parselet : undefined;
|
|
208
210
|
}
|
|
209
211
|
/**
|
|
210
212
|
* After `.`, only an element name, function call, or special variable may follow.
|
|
@@ -292,6 +294,33 @@ class Parser {
|
|
|
292
294
|
return { start: start.start, end: end.end, line: start.line, column: start.column };
|
|
293
295
|
}
|
|
294
296
|
}
|
|
297
|
+
function prefixTokenKind(token) {
|
|
298
|
+
switch (token.kind) {
|
|
299
|
+
case 'identifier':
|
|
300
|
+
case 'delimitedIdentifier':
|
|
301
|
+
return 'identifier';
|
|
302
|
+
case 'number':
|
|
303
|
+
case 'string':
|
|
304
|
+
case 'date':
|
|
305
|
+
case 'dateTime':
|
|
306
|
+
case 'time':
|
|
307
|
+
return 'literal';
|
|
308
|
+
case 'specialVariable':
|
|
309
|
+
return 'variable';
|
|
310
|
+
case 'operator':
|
|
311
|
+
return 'operator';
|
|
312
|
+
case 'punct':
|
|
313
|
+
return 'punct';
|
|
314
|
+
case 'keyword':
|
|
315
|
+
return token.text === 'true' || token.text === 'false'
|
|
316
|
+
? 'literal'
|
|
317
|
+
: KEYWORDS_USABLE_AS_IDENTIFIERS.has(token.text)
|
|
318
|
+
? 'identifier'
|
|
319
|
+
: undefined;
|
|
320
|
+
case 'end':
|
|
321
|
+
return undefined;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
295
324
|
/** Parse a FHIRPath expression into its AST. Throws `FhirPathSyntaxError` with a position on bad input. */
|
|
296
325
|
export function parse(source) {
|
|
297
326
|
return new Parser(source).parse();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+CAA+C;AAC/C,oFAAoF;AACpF,OAAO,EAAE,mBAAmB,EAAmB,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,uBAAuB,EAAc,MAAM,oBAAoB,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAEnE,sFAAsF;AACtF,MAAM,8BAA8B,GAAwB,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAEnG,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;AAEjE;;;;GAIG;AACH,MAAM,SAAS,GAAG,GAAG,CAAA;AAErB,MAAM,MAAM;IACO,MAAM,CAAS;IACxB,GAAG,GAAG,CAAC,CAAA;IACP,KAAK,GAAG,CAAC,CAAA;IACjB,4FAA4F;IAC3E,aAAa,GAAG,IAAI,OAAO,EAAW,CAAA;IAEvD,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,KAAK;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAC5B,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,QAAQ,CAAC,IAAI,oBAAoB,EAAE,QAAQ,CAAC,CAAA;QAC9E,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IAEO,eAAe,CAAC,eAAuB;QAC7C,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,SAAS,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACjF,CAAC;QACD,IAAI,CAAC;YACH,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAC7B,SAAS,CAAC;gBACR,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBACzB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;gBAC7G,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;gBAC7C,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;oBAClE,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;YACnD,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,KAAK,EAAE,CAAA;QACd,CAAC;IACH,CAAC;IAEO,WAAW;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACzB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,KAAK;gBACR,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAA;YACzD,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAA;YACrC,KAAK,QAAQ;gBACX,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YACjE,KAAK,MAAM;gBACT,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YAC9D,KAAK,UAAU;gBACb,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YAClE,KAAK,MAAM;gBACT,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YAC9D,KAAK,iBAAiB;gBACpB,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,KAAmC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YAC/F,KAAK,YAAY,CAAC;YAClB,KAAK,qBAAqB;gBACxB,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YACpE,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACvC,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC/B,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACrC,+EAA+E;YAC/E;gBACE,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAA;YACvD,oBAAoB;QACtB,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,KAAY;QACrC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpD,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;QAC5E,CAAC;QACD,IAAI,8BAA8B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;QACpE,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAA;IACvD,CAAC;IAEO,UAAU,CAAC,KAAY;QAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAA;QACvD,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QACxD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,KAAK,CAAC,IAAqB;YACrC,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;SACjD,CAAA;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAY;QACnC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,GAAG,CAAC,CAAC,CAAC;gBACT,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;gBACrC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAChB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBAC7B,OAAO,KAAK,CAAA;YACd,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,CAAC;gBACT,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAA;YACzE,CAAC;YACD,KAAK,GAAG,CAAC,CAAC,CAAC;gBACT,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBACxB,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAChG,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAA;gBACnD,CAAC;gBACD,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;YAC9F,CAAC;YACD;gBACE,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACzB,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,uCAAuC;YACvC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;QAC7G,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACxB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;aAC9C,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;aAC9C,CAAA;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;IACtG,CAAC;IAEO,UAAU,CAAC,IAAa,EAAE,KAAY,EAAE,YAAoB;QAClE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC5B,KAAK,GAAG,CAAC,CAAC,CAAC;gBACT,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;gBACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAA;YAChG,CAAC;YACD,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC7B;gBACE,MAAK;QACT,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACtC,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK,CAAC,IAAmB;gBACnC,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;aAC7C,CAAA;QACH,CAAC;QACD,wEAAwE;QACxE,+CAA+C;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;QAChD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK,CAAC,IAAsB;YACtC,IAAI;YACJ,KAAK;YACL,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;SAC9C,CAAA;IACH,CAAC;IAED;;;OAGG;IACK,QAAQ,CAAC,IAAa;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACzB,IAAI,KAAc,CAAA;QAClB,IACE,KAAK,CAAC,IAAI,KAAK,YAAY;YAC3B,KAAK,CAAC,IAAI,KAAK,qBAAqB;YACpC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,EAC7E,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,KAAK,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YACnE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC7D,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,KAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,KAAmC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;QAChG,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,KAAK,CAAC,wDAAwD,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAA;QAChG,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAA;IACpF,CAAC;IAEO,SAAS,CAAC,MAAe;QAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,IAAI,GAAc,EAAE,CAAA;QAC1B,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;YAClC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAChE,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAA;IACnG,CAAC;IAEO,kBAAkB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QACnC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAA;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YAChE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACtB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;QACjB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAA;IAC3D,CAAC;IAEO,cAAc;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACzB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACxE,MAAM,IAAI,CAAC,KAAK,CAAC,8BAA8B,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAA;QACtE,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,IAAI;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAU,CAAA;IACvC,CAAC;IAEO,OAAO;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAU,CAAA;QAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACf,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,MAAM,CAAC,IAAY;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACzB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,WAAW,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAA;QACjH,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,KAAK,CAAC,OAAe,EAAE,KAAY;QACzC,OAAO,IAAI,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IACrD,CAAC;IAEO,WAAW,CAAC,KAAiB,EAAE,GAAe;QACpD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IACrF,CAAC;CACF;AAED,2GAA2G;AAC3G,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;AACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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"}
|