@smile-digital-health/crl 4.47.0 → 4.107.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.
Files changed (173) hide show
  1. package/README.md +4 -18
  2. package/dist/ast/branchCondition.d.ts +28 -0
  3. package/dist/ast/branchCondition.js +250 -0
  4. package/dist/ast/branchCondition.js.map +1 -0
  5. package/dist/ast/builder.d.ts +6 -3
  6. package/dist/ast/builder.js +73 -12
  7. package/dist/ast/builder.js.map +1 -1
  8. package/dist/ast/criterionClassify.d.ts +2 -0
  9. package/dist/ast/criterionClassify.js +60 -0
  10. package/dist/ast/criterionClassify.js.map +1 -0
  11. package/dist/ast/criterionExpansion.d.ts +47 -0
  12. package/dist/ast/criterionExpansion.js +222 -0
  13. package/dist/ast/criterionExpansion.js.map +1 -0
  14. package/dist/ast/inferenceWalk.d.ts +10 -0
  15. package/dist/ast/inferenceWalk.js +65 -0
  16. package/dist/ast/inferenceWalk.js.map +1 -0
  17. package/dist/ast/types.d.ts +57 -3
  18. package/dist/ast/types.js +8 -0
  19. package/dist/ast/types.js.map +1 -1
  20. package/dist/ast/utils.js +6 -0
  21. package/dist/ast/utils.js.map +1 -1
  22. package/dist/authoring-kit/index.js +267 -37
  23. package/dist/authoring-kit/index.js.map +1 -1
  24. package/dist/authoring-kit/reference.d.ts +3 -3
  25. package/dist/authoring-kit/reference.js +133 -67
  26. package/dist/authoring-kit/reference.js.map +1 -1
  27. package/dist/authoring-kit/types.d.ts +1 -1
  28. package/dist/cel/validator/types.d.ts +1 -1
  29. package/dist/cel/validator/validator.js +4 -1
  30. package/dist/cel/validator/validator.js.map +1 -1
  31. package/dist/cql-emitter/catalog/CRLCommon.cql +9 -1
  32. package/dist/cql-emitter/catalog/CaseFeatureCommon.cql +5 -1
  33. package/dist/cql-emitter/cqlStrings.d.ts +1 -0
  34. package/dist/cql-emitter/cqlStrings.js +4 -0
  35. package/dist/cql-emitter/cqlStrings.js.map +1 -1
  36. package/dist/cql-emitter/emitCQL.d.ts +1 -0
  37. package/dist/cql-emitter/emitCQL.js +141 -33
  38. package/dist/cql-emitter/emitCQL.js.map +1 -1
  39. package/dist/cql-emitter/layeredEmit.js +8 -3
  40. package/dist/cql-emitter/layeredEmit.js.map +1 -1
  41. package/dist/cql-emitter/lowerLocalCodes.d.ts +1 -0
  42. package/dist/cql-emitter/lowerLocalCodes.js +26 -18
  43. package/dist/cql-emitter/lowerLocalCodes.js.map +1 -1
  44. package/dist/cre/expandDecisions.d.ts +13 -0
  45. package/dist/cre/expandDecisions.js +69 -0
  46. package/dist/cre/expandDecisions.js.map +1 -0
  47. package/dist/cre/index.d.ts +3 -3
  48. package/dist/cre/index.js +4 -1
  49. package/dist/cre/index.js.map +1 -1
  50. package/dist/cre/run.d.ts +65 -1
  51. package/dist/cre/run.js +135 -21
  52. package/dist/cre/run.js.map +1 -1
  53. package/dist/cre/viewModel.d.ts +53 -4
  54. package/dist/cre/viewModel.js +194 -16
  55. package/dist/cre/viewModel.js.map +1 -1
  56. package/dist/dispositions/displayName.d.ts +7 -0
  57. package/dist/dispositions/displayName.js +18 -3
  58. package/dist/dispositions/displayName.js.map +1 -1
  59. package/dist/dispositions/index.d.ts +2 -1
  60. package/dist/dispositions/index.js +3 -1
  61. package/dist/dispositions/index.js.map +1 -1
  62. package/dist/dispositions/types.d.ts +1 -0
  63. package/dist/fhir-emitter/caseFeatureCollection.js +14 -60
  64. package/dist/fhir-emitter/caseFeatureCollection.js.map +1 -1
  65. package/dist/fhir-emitter/closureOrchestrator.js +34 -42
  66. package/dist/fhir-emitter/closureOrchestrator.js.map +1 -1
  67. package/dist/fhir-emitter/decision.d.ts +3 -2
  68. package/dist/fhir-emitter/decision.js +221 -75
  69. package/dist/fhir-emitter/decision.js.map +1 -1
  70. package/dist/fhir-emitter/types.js.map +1 -1
  71. package/dist/flags/buildFlagDraft.d.ts +12 -0
  72. package/dist/flags/buildFlagDraft.js +70 -0
  73. package/dist/flags/buildFlagDraft.js.map +1 -0
  74. package/dist/flags/flagVocab.d.ts +55 -0
  75. package/dist/flags/flagVocab.js +179 -0
  76. package/dist/flags/flagVocab.js.map +1 -0
  77. package/dist/flags/mvFlag.d.ts +30 -0
  78. package/dist/flags/mvFlag.js +70 -0
  79. package/dist/flags/mvFlag.js.map +1 -0
  80. package/dist/flags/mvFlagAnchor.d.ts +24 -0
  81. package/dist/flags/mvFlagAnchor.js +38 -0
  82. package/dist/flags/mvFlagAnchor.js.map +1 -0
  83. package/dist/flags/mvFlagStore.d.ts +15 -0
  84. package/dist/flags/mvFlagStore.js +87 -0
  85. package/dist/flags/mvFlagStore.js.map +1 -0
  86. package/dist/flags/occurrenceKey.d.ts +27 -0
  87. package/dist/flags/occurrenceKey.js +73 -0
  88. package/dist/flags/occurrenceKey.js.map +1 -0
  89. package/dist/grammar/generated/antlr/CRLLexer.d.ts +51 -50
  90. package/dist/grammar/generated/antlr/CRLLexer.js +466 -459
  91. package/dist/grammar/generated/antlr/CRLLexer.js.map +1 -1
  92. package/dist/grammar/generated/antlr/CRLParser.d.ts +195 -114
  93. package/dist/grammar/generated/antlr/CRLParser.js +1260 -782
  94. package/dist/grammar/generated/antlr/CRLParser.js.map +1 -1
  95. package/dist/grammar/generated/antlr/CRLParserListener.d.ts +21 -0
  96. package/dist/grammar/generated/antlr/CRLParserVisitor.d.ts +14 -0
  97. package/dist/imports/computeEmitClosure.js +7 -3
  98. package/dist/imports/computeEmitClosure.js.map +1 -1
  99. package/dist/imports/emit.d.ts +1 -0
  100. package/dist/imports/emit.js +41 -3
  101. package/dist/imports/emit.js.map +1 -1
  102. package/dist/imports/namespace.js +2 -0
  103. package/dist/imports/namespace.js.map +1 -1
  104. package/dist/imports/scopes.d.ts +1 -0
  105. package/dist/imports/scopes.js +5 -0
  106. package/dist/imports/scopes.js.map +1 -1
  107. package/dist/index.d.ts +27 -6
  108. package/dist/index.js +93 -3
  109. package/dist/index.js.map +1 -1
  110. package/dist/language-services/projectIndex.js +6 -1
  111. package/dist/language-services/projectIndex.js.map +1 -1
  112. package/dist/mcp/server.js +304 -12
  113. package/dist/mcp/server.js.map +1 -1
  114. package/dist/meta/generated/registry.generated.d.ts +322 -0
  115. package/dist/meta/generated/registry.generated.js +398 -0
  116. package/dist/meta/generated/registry.generated.js.map +1 -0
  117. package/dist/meta/parseMetaTag.d.ts +15 -0
  118. package/dist/meta/parseMetaTag.js +33 -0
  119. package/dist/meta/parseMetaTag.js.map +1 -0
  120. package/dist/meta/registry.d.ts +13 -0
  121. package/dist/meta/registry.js +62 -0
  122. package/dist/meta/registry.js.map +1 -0
  123. package/dist/provenance/cockpitModel.d.ts +13 -0
  124. package/dist/provenance/cockpitModel.js +24 -1
  125. package/dist/provenance/cockpitModel.js.map +1 -1
  126. package/dist/provenance/conceptShape.d.ts +13 -0
  127. package/dist/provenance/conceptShape.js +100 -0
  128. package/dist/provenance/conceptShape.js.map +1 -0
  129. package/dist/provenance/crlStructure.d.ts +1 -0
  130. package/dist/provenance/crlStructure.js +30 -4
  131. package/dist/provenance/crlStructure.js.map +1 -1
  132. package/dist/provenance/definedAsExpr.d.ts +69 -0
  133. package/dist/provenance/definedAsExpr.js +176 -0
  134. package/dist/provenance/definedAsExpr.js.map +1 -0
  135. package/dist/provenance/failedCriteria.d.ts +8 -4
  136. package/dist/provenance/failedCriteria.js +20 -2
  137. package/dist/provenance/failedCriteria.js.map +1 -1
  138. package/dist/provenance/generate.js +16 -2
  139. package/dist/provenance/generate.js.map +1 -1
  140. package/dist/provenance/guardOutline.d.ts +26 -0
  141. package/dist/provenance/guardOutline.js +211 -0
  142. package/dist/provenance/guardOutline.js.map +1 -0
  143. package/dist/provenance/index.d.ts +7 -1
  144. package/dist/provenance/index.js +20 -2
  145. package/dist/provenance/index.js.map +1 -1
  146. package/dist/provenance/indexer.js +15 -1
  147. package/dist/provenance/indexer.js.map +1 -1
  148. package/dist/provenance/policyLayout.d.ts +10 -0
  149. package/dist/provenance/policyLayout.js +76 -0
  150. package/dist/provenance/policyLayout.js.map +1 -0
  151. package/dist/template-match/agePredicate.d.ts +7 -0
  152. package/dist/template-match/agePredicate.js +53 -0
  153. package/dist/template-match/agePredicate.js.map +1 -0
  154. package/dist/template-match/matcher.js +109 -2
  155. package/dist/template-match/matcher.js.map +1 -1
  156. package/dist/validator/agePredicateValidator.d.ts +7 -0
  157. package/dist/validator/agePredicateValidator.js +51 -0
  158. package/dist/validator/agePredicateValidator.js.map +1 -0
  159. package/dist/validator/cycleDetector.d.ts +2 -0
  160. package/dist/validator/cycleDetector.js +61 -1
  161. package/dist/validator/cycleDetector.js.map +1 -1
  162. package/dist/validator/metaTagValidator.d.ts +10 -0
  163. package/dist/validator/metaTagValidator.js +97 -0
  164. package/dist/validator/metaTagValidator.js.map +1 -0
  165. package/dist/validator/nameUniquenessValidator.js +45 -29
  166. package/dist/validator/nameUniquenessValidator.js.map +1 -1
  167. package/dist/validator/referenceResolver.d.ts +1 -0
  168. package/dist/validator/referenceResolver.js +85 -14
  169. package/dist/validator/referenceResolver.js.map +1 -1
  170. package/dist/validator/validator.d.ts +19 -2
  171. package/dist/validator/validator.js +0 -0
  172. package/dist/validator/validator.js.map +1 -1
  173. package/package.json +124 -127
package/README.md CHANGED
@@ -405,8 +405,8 @@ npm test
405
405
  # Run tests with coverage
406
406
  npm run test:coverage
407
407
 
408
- # Run specific test files
409
- npx jest src/ast/tests/decision-structure.test.ts --verbose --no-cache --colors --forceExit --detectOpenHandles --watchAll=false
408
+ # Run specific test files (vitest positional filter — substring match on the test path)
409
+ npx vitest run --root ../.. --project crl src/ast/tests/decision-structure.test.ts
410
410
 
411
411
  # Run tests in watch mode (useful during development)
412
412
  npm run test:watch
@@ -556,23 +556,9 @@ This project implements robust, layered error handling across all stages of the
556
556
  }
557
557
  ```
558
558
 
559
- #### Clean Test Output: Suppressing Console Errors in Jest
559
+ #### Test Output and Console Errors
560
560
 
561
- To keep test output clean and focused on actual test failures, all `console.error` output is globally suppressed during tests. This is achieved by adding the following to `jest.setup.js`:
562
-
563
- ```js
564
- beforeAll(() => {
565
- jest.spyOn(console, 'error').mockImplementation(() => {});
566
- });
567
- ```
568
-
569
- And registering it in `jest.config.js`:
570
-
571
- ```js
572
- setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
573
- ```
574
-
575
- This ensures that error logs are visible during development and CLI runs, but do not clutter test output.
561
+ These tests run on [vitest](https://vitest.dev/) (migrated from jest). There is intentionally **no** global `console.error` suppression: a global mute made real failure diagnostics dead code, and the muted lines only fire on failure paths anyway (so removing it added no noise on green runs). A suite that intentionally exercises an error path mutes `console.error` locally instead — e.g. `vi.spyOn(console, "error").mockImplementation(() => {})` scoped to that test, restored after.
576
562
 
577
563
  ## Editor Support: VS Code Extension
578
564
 
@@ -0,0 +1,28 @@
1
+ import type { BranchCondition, BranchConditionAnd, BranchConditionOr, BranchConditionRef, BranchConditionCriterionRef, BranchConditionNot, BranchConditionLiteral, ReferenceName } from "./types";
2
+ import { type CriterionTable, type ExpandedSize, type ExpansionReason } from "./criterionExpansion";
3
+ export declare function visitBranchCondition<T>(c: BranchCondition, v: {
4
+ ref: (node: BranchConditionRef) => T;
5
+ and: (node: BranchConditionAnd, operands: T[]) => T;
6
+ or: (node: BranchConditionOr, operands: T[]) => T;
7
+ criterionRef: (node: BranchConditionCriterionRef) => T;
8
+ not: (node: BranchConditionNot, operand: T) => T;
9
+ }): T;
10
+ export declare function branchConditionRefs(c: BranchCondition): BranchConditionRef[];
11
+ export declare function branchConditionConceptRefsStrict(c: BranchCondition, where: string): BranchConditionRef[];
12
+ export declare function branchConditionConceptRefsFollowingCriteria(c: BranchCondition, table: CriterionTable): BranchConditionRef[];
13
+ export declare function branchConditionConceptRefsExpanded(c: BranchCondition, table: CriterionTable, where: string): {
14
+ refs: BranchConditionRef[];
15
+ overflow?: {
16
+ status: ExpansionReason;
17
+ detail?: ExpandedSize["detail"];
18
+ };
19
+ };
20
+ export declare function containsNot(c: BranchCondition): boolean;
21
+ export declare function toNNF(c: BranchCondition): BranchCondition;
22
+ export declare function branchConditionDNF(c: BranchCondition): BranchConditionLiteral[][];
23
+ export declare function branchConditionArmCount(c: BranchCondition, cap?: number): number;
24
+ export declare function assertWellFormedBranchCondition(c: BranchCondition): void;
25
+ export declare function soleRef(c: BranchCondition): BranchConditionRef | null;
26
+ export declare function describeBranchCondition(c: BranchCondition, display: (r: ReferenceName) => string, opts?: {
27
+ markerAware?: boolean;
28
+ }): string;
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.visitBranchCondition = visitBranchCondition;
4
+ exports.branchConditionRefs = branchConditionRefs;
5
+ exports.branchConditionConceptRefsStrict = branchConditionConceptRefsStrict;
6
+ exports.branchConditionConceptRefsFollowingCriteria = branchConditionConceptRefsFollowingCriteria;
7
+ exports.branchConditionConceptRefsExpanded = branchConditionConceptRefsExpanded;
8
+ exports.containsNot = containsNot;
9
+ exports.toNNF = toNNF;
10
+ exports.branchConditionDNF = branchConditionDNF;
11
+ exports.branchConditionArmCount = branchConditionArmCount;
12
+ exports.assertWellFormedBranchCondition = assertWellFormedBranchCondition;
13
+ exports.soleRef = soleRef;
14
+ exports.describeBranchCondition = describeBranchCondition;
15
+ const types_1 = require("./types");
16
+ const criterionExpansion_1 = require("./criterionExpansion");
17
+ function unexpandedCriterion(node, where) {
18
+ throw new Error(`internal: un-expanded criterion reference "${String(node.ref)}" reached ${where} — criterion expansion must run before this seam`);
19
+ }
20
+ function visitBranchCondition(c, v) {
21
+ switch (c.type) {
22
+ case "BranchConditionRef":
23
+ return v.ref(c);
24
+ case "BranchConditionCriterionRef":
25
+ return v.criterionRef(c);
26
+ case "BranchConditionNot":
27
+ return v.not(c, visitBranchCondition(c.operand, v));
28
+ case "BranchConditionAnd":
29
+ return v.and(c, c.operands.map((o) => visitBranchCondition(o, v)));
30
+ case "BranchConditionOr":
31
+ return v.or(c, c.operands.map((o) => visitBranchCondition(o, v)));
32
+ }
33
+ }
34
+ function branchConditionRefs(c) {
35
+ const out = [];
36
+ const walk = (n) => {
37
+ if (n.type === "BranchConditionRef")
38
+ out.push(n);
39
+ else if (n.type === "BranchConditionCriterionRef")
40
+ return;
41
+ else if (n.type === "BranchConditionNot") {
42
+ if (n.operand)
43
+ walk(n.operand);
44
+ }
45
+ else if (Array.isArray(n.operands))
46
+ n.operands.forEach(walk);
47
+ };
48
+ walk(c);
49
+ return out;
50
+ }
51
+ function branchConditionConceptRefsStrict(c, where) {
52
+ const out = [];
53
+ const walk = (n) => {
54
+ if (n.type === "BranchConditionRef")
55
+ out.push(n);
56
+ else if (n.type === "BranchConditionCriterionRef")
57
+ unexpandedCriterion(n, where);
58
+ else if (n.type === "BranchConditionNot") {
59
+ if (n.operand)
60
+ walk(n.operand);
61
+ }
62
+ else if (Array.isArray(n.operands))
63
+ n.operands.forEach(walk);
64
+ };
65
+ walk(c);
66
+ return out;
67
+ }
68
+ function branchConditionConceptRefsFollowingCriteria(c, table) {
69
+ if ((0, criterionExpansion_1.containsCriterionRef)(c) && (0, criterionExpansion_1.expandedSize)(c, table).status !== "ok") {
70
+ return branchConditionRefs(c);
71
+ }
72
+ const out = [];
73
+ const active = new Set();
74
+ const walk = (n) => {
75
+ if (n.type === "BranchConditionRef") {
76
+ out.push(n);
77
+ return;
78
+ }
79
+ if (n.type === "BranchConditionCriterionRef") {
80
+ const name = (0, types_1.getRefName)(n.ref);
81
+ const crit = table.get(name);
82
+ if (!crit || active.has(name))
83
+ return;
84
+ active.add(name);
85
+ walk(crit.condition);
86
+ active.delete(name);
87
+ return;
88
+ }
89
+ if (n.type === "BranchConditionNot") {
90
+ if (n.operand)
91
+ walk(n.operand);
92
+ return;
93
+ }
94
+ if (Array.isArray(n.operands))
95
+ n.operands.forEach(walk);
96
+ };
97
+ walk(c);
98
+ return out;
99
+ }
100
+ function branchConditionConceptRefsExpanded(c, table, where) {
101
+ const g = (0, criterionExpansion_1.expandGuardOrRecord)(c, table);
102
+ if (!g.ok)
103
+ return { refs: [], overflow: { status: g.status, detail: g.detail } };
104
+ return { refs: branchConditionConceptRefsStrict(g.cond, where) };
105
+ }
106
+ function containsNot(c) {
107
+ switch (c.type) {
108
+ case "BranchConditionNot":
109
+ return true;
110
+ case "BranchConditionRef":
111
+ case "BranchConditionCriterionRef":
112
+ return false;
113
+ case "BranchConditionAnd":
114
+ case "BranchConditionOr":
115
+ return c.operands.some(containsNot);
116
+ }
117
+ }
118
+ function toNNF(c) {
119
+ if (!containsNot(c) && !(0, criterionExpansion_1.containsCriterionRef)(c))
120
+ return c;
121
+ const nnf = (n, negated) => {
122
+ const withMarker = (out) => n.sourcedFromCriterion ? { ...out, sourcedFromCriterion: n.sourcedFromCriterion } : out;
123
+ switch (n.type) {
124
+ case "BranchConditionCriterionRef":
125
+ return unexpandedCriterion(n, "toNNF");
126
+ case "BranchConditionRef":
127
+ if (!negated)
128
+ return withMarker(n);
129
+ return withMarker({
130
+ type: "BranchConditionNot",
131
+ operand: { type: "BranchConditionRef", ref: n.ref, location: n.location },
132
+ location: n.location,
133
+ });
134
+ case "BranchConditionNot":
135
+ return withMarker(nnf(n.operand, !negated));
136
+ case "BranchConditionAnd":
137
+ case "BranchConditionOr": {
138
+ const flipTo = negated && n.type === "BranchConditionAnd"
139
+ ? "BranchConditionOr"
140
+ : negated && n.type === "BranchConditionOr"
141
+ ? "BranchConditionAnd"
142
+ : n.type;
143
+ return withMarker({
144
+ type: flipTo,
145
+ operands: n.operands.map((o) => nnf(o, negated)),
146
+ location: n.location,
147
+ });
148
+ }
149
+ }
150
+ };
151
+ return nnf(c, false);
152
+ }
153
+ function branchConditionDNF(c) {
154
+ const dnf = (n) => {
155
+ switch (n.type) {
156
+ case "BranchConditionRef":
157
+ return [[n]];
158
+ case "BranchConditionNot": {
159
+ if (n.operand.type !== "BranchConditionRef") {
160
+ throw new Error(`internal: branchConditionDNF saw a non-normalized negation over ${n.operand.type} — toNNF must run first`);
161
+ }
162
+ return [[n]];
163
+ }
164
+ case "BranchConditionCriterionRef":
165
+ return unexpandedCriterion(n, "branchConditionDNF");
166
+ case "BranchConditionOr":
167
+ return n.operands.flatMap((o) => dnf(o));
168
+ case "BranchConditionAnd": {
169
+ let arms = [[]];
170
+ for (const operand of n.operands) {
171
+ const opArms = dnf(operand);
172
+ const next = [];
173
+ for (const arm of arms)
174
+ for (const opArm of opArms)
175
+ next.push([...arm, ...opArm]);
176
+ arms = next;
177
+ }
178
+ return arms;
179
+ }
180
+ }
181
+ };
182
+ return dnf(toNNF(c));
183
+ }
184
+ function branchConditionArmCount(c, cap = 16) {
185
+ const ceiling = cap + 1;
186
+ const go = (n) => {
187
+ if (n.type === "BranchConditionRef")
188
+ return 1;
189
+ if (n.type === "BranchConditionNot")
190
+ return 1;
191
+ if (n.type === "BranchConditionCriterionRef")
192
+ return unexpandedCriterion(n, "branchConditionArmCount");
193
+ if (n.type === "BranchConditionOr") {
194
+ let sum = 0;
195
+ for (const o of n.operands) {
196
+ sum += go(o);
197
+ if (sum >= ceiling)
198
+ return ceiling;
199
+ }
200
+ return sum;
201
+ }
202
+ let product = 1;
203
+ for (const o of n.operands) {
204
+ product *= go(o);
205
+ if (product >= ceiling)
206
+ return ceiling;
207
+ }
208
+ return product;
209
+ };
210
+ return go(toNNF(c));
211
+ }
212
+ function assertWellFormedBranchCondition(c) {
213
+ const check = (n) => {
214
+ if (n.type === "BranchConditionRef" || n.type === "BranchConditionCriterionRef")
215
+ return;
216
+ if (n.type === "BranchConditionNot") {
217
+ check(n.operand);
218
+ return;
219
+ }
220
+ if (n.operands.length < 2) {
221
+ throw new Error(`${n.type} requires >= 2 operands, got ${n.operands.length}`);
222
+ }
223
+ n.operands.forEach(check);
224
+ };
225
+ check(c);
226
+ }
227
+ function soleRef(c) {
228
+ return c.type === "BranchConditionRef" ? c : null;
229
+ }
230
+ function describeBranchCondition(c, display, opts = {}) {
231
+ const markerAware = opts.markerAware ?? false;
232
+ const isNameLeaf = (n) => markerAware && n.sourcedFromCriterion !== undefined;
233
+ const go = (n, parentOp) => {
234
+ if (isNameLeaf(n))
235
+ return display(n.sourcedFromCriterion.name);
236
+ if (n.type === "BranchConditionRef" || n.type === "BranchConditionCriterionRef")
237
+ return display(n.ref);
238
+ if (n.type === "BranchConditionNot") {
239
+ const compound = !isNameLeaf(n.operand) &&
240
+ (n.operand.type === "BranchConditionAnd" || n.operand.type === "BranchConditionOr");
241
+ const inner = go(n.operand, null);
242
+ return `not ${compound ? `(${inner})` : inner}`;
243
+ }
244
+ const op = n.type === "BranchConditionAnd" ? "and" : "or";
245
+ const inner = n.operands.map((o) => go(o, op)).join(` ${op} `);
246
+ return parentOp !== null && parentOp !== op ? `(${inner})` : inner;
247
+ };
248
+ return go(c, null);
249
+ }
250
+ //# sourceMappingURL=branchCondition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branchCondition.js","sourceRoot":"","sources":["../../src/ast/branchCondition.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { ParserRuleContext } from "antlr4ts/ParserRuleContext";
2
2
  import { AbstractParseTreeVisitor } from "antlr4ts/tree/AbstractParseTreeVisitor";
3
- import { CrlContext, DecisionStatementContext, DecisionBodyContext, BranchItemContext, BlockBodyContext, ActionItemContext, ActionStatementContext, RecommendStatementContext, UseStatementContext, TerminologyStatementContext, TerminologyValuesetContext, ActivityStatementContext, ConceptStatementContext, ParameterStatementContext, LibraryStatementContext, IncludeStatementContext, DefinitionIsBodyContext, DefinedAsBodyContext, DefinedAsBareRefContext, DefinedAsCompositionContext, CompositionExpressionContext, SemOrContext, SemAndContext, SemNotContext, CompositionRefContext, CompositionGroupContext, NarrativeContext, NConceptRefContext, NQuantityContext, NWordContext, NArgGroupElementContext, QuantityContext, ArgGroupContext, ArgDisjunctionContext, ArgConjunctionContext, ArgSingletonContext, AVConceptRefContext, AVQuantityContext, AVNestedGroupContext, WhenWithBodyContext, WhenSingleActionContext, OtherwiseWithBodyContext, OtherwiseSingleActionContext } from "../grammar/generated/antlr/CRLParser";
3
+ import { CrlContext, DecisionStatementContext, CriterionStatementContext, DecisionBodyContext, BranchItemContext, BlockBodyContext, ActionItemContext, ActionStatementContext, RecommendStatementContext, UseStatementContext, TerminologyStatementContext, TerminologyValuesetContext, ActivityStatementContext, ConceptStatementContext, ParameterStatementContext, LibraryStatementContext, IncludeStatementContext, DefinitionIsBodyContext, DefinedAsBodyContext, DefinedAsBareRefContext, DefinedAsCompositionContext, CompositionExpressionContext, SemOrContext, SemAndContext, SemNotContext, CompositionRefContext, CompositionGroupContext, NarrativeContext, NConceptRefContext, NQuantityContext, NWordContext, NArgGroupElementContext, QuantityContext, ArgGroupContext, ArgDisjunctionContext, ArgConjunctionContext, ArgSingletonContext, AVConceptRefContext, AVQuantityContext, AVNestedGroupContext, WhenWithBodyContext, WhenSingleActionContext, OtherwiseWithBodyContext, OtherwiseSingleActionContext } from "../grammar/generated/antlr/CRLParser";
4
4
  import { CRLParserVisitor } from "../grammar/generated/antlr/CRLParserVisitor";
5
5
  import type { CRLError } from "../types/errors";
6
- import { ASTNode, Decision, DecisionBody, WhenBlock, OtherwiseBlock, BranchBlock, BlockBody, ActionStatement, RecommendActivity, UseDecision, Terminology, TerminologyValueset, TerminologySystem, TerminologyCode, Activity, ActivityBody, ActivityRequest, ActivityWith, ActivityBecause, Concept, Parameter, DefinedAsDefinition, DefinedAsBareRef, DefinedAsComposition, CompositionExpression, CompositionRef, CompositionGroup, DefinitionIsDefinition, NarrativeClause, NConceptRef, NWord, NDisjunction, NConjunction, Quantity } from "./types";
6
+ import { ASTNode, Decision, Criterion, DecisionBody, WhenBlock, OtherwiseBlock, BranchBlock, BlockBody, ActionStatement, RecommendActivity, UseDecision, Terminology, TerminologyValueset, TerminologySystem, TerminologyCode, Activity, ActivityBody, ActivityRequest, ActivityWith, ActivityBecause, Concept, Parameter, DefinedAsDefinition, DefinedAsBareRef, DefinedAsComposition, CompositionExpression, CompositionRef, CompositionGroup, DefinitionIsDefinition, NarrativeClause, NConceptRef, NWord, NDisjunction, NConjunction, Quantity } from "./types";
7
7
  import type { CRL, LibraryDeclaration, Include } from "./types";
8
8
  export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> implements CRLParserVisitor<ASTNode> {
9
9
  private readonly errors;
@@ -14,8 +14,11 @@ export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> imp
14
14
  visitLibraryStatement(ctx: LibraryStatementContext): LibraryDeclaration;
15
15
  visitIncludeStatement(ctx: IncludeStatementContext): Include;
16
16
  visitDecisionStatement(ctx: DecisionStatementContext): Decision;
17
+ visitCriterionStatement(ctx: CriterionStatementContext): Criterion;
17
18
  visitDecisionBody(ctx: DecisionBodyContext): DecisionBody;
18
19
  visitBranchItem(ctx: BranchItemContext): BranchBlock;
20
+ private branchConditionFrom;
21
+ private bcAtomToCondition;
19
22
  visitWhenWithBody(ctx: WhenWithBodyContext): WhenBlock;
20
23
  visitWhenSingleAction(ctx: WhenSingleActionContext): WhenBlock;
21
24
  visitOtherwiseWithBody(ctx: OtherwiseWithBodyContext): OtherwiseBlock;
@@ -36,7 +39,7 @@ export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> imp
36
39
  visitActivityWith(ctx: import("../grammar/generated/antlr/CRLParser").ActivityWithContext): ActivityWith;
37
40
  visitActivityBecause(ctx: import("../grammar/generated/antlr/CRLParser").ActivityBecauseContext): ActivityBecause;
38
41
  private parseConceptTypes;
39
- private parseMeta;
42
+ private metaFrom;
40
43
  private parseEvidence;
41
44
  private parseConceptDefinition;
42
45
  private buildCodedFrom;
@@ -95,9 +95,11 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
95
95
  }
96
96
  visitLibraryStatement(ctx) {
97
97
  const name = ctx.identifier().text.slice(1, -1);
98
+ const meta = this.metaFrom(ctx.metaLine());
98
99
  return {
99
100
  type: "LibraryDeclaration",
100
101
  name,
102
+ ...(meta.length > 0 ? { meta } : {}),
101
103
  location: getLocation(ctx),
102
104
  };
103
105
  }
@@ -114,8 +116,15 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
114
116
  }
115
117
  visitDecisionStatement(ctx) {
116
118
  const name = ctx.decisionIdentifier().text.slice(1, -1);
117
- const body = this.visit(ctx.decisionBody());
118
- return { type: "Decision", name, body, location: getLocation(ctx) };
119
+ const decisionBody = ctx.decisionBody();
120
+ const body = this.visit(decisionBody);
121
+ const meta = this.metaFrom(decisionBody.metaLine());
122
+ return { type: "Decision", name, body, ...(meta.length > 0 ? { meta } : {}), location: getLocation(ctx) };
123
+ }
124
+ visitCriterionStatement(ctx) {
125
+ const name = ctx.criterionIdentifier().text.slice(1, -1);
126
+ const condition = this.branchConditionFrom(ctx.branchCondition());
127
+ return { type: "Criterion", name, condition, location: getLocation(ctx) };
119
128
  }
120
129
  visitDecisionBody(ctx) {
121
130
  const qualifier = qualifierFrom(ctx.blockQualifier());
@@ -139,15 +148,65 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
139
148
  this.reportError("Unknown branchItem alternative", ctx);
140
149
  return null;
141
150
  }
151
+ branchConditionFrom(ctx) {
152
+ const atoms = ctx.bcAtom();
153
+ if (atoms.length === 0) {
154
+ this.reportError("a `when` guard must have at least one condition", ctx);
155
+ return { type: "BranchConditionRef", ref: "", location: getLocation(ctx) };
156
+ }
157
+ if (atoms.length === 1)
158
+ return this.bcAtomToCondition(atoms[0]);
159
+ const ands = ctx.AND();
160
+ const ors = ctx.OR();
161
+ if (ands.length > 0 && ors.length > 0) {
162
+ this.reportError("mixed 'and'/'or' in a `when` guard requires parentheses, e.g. `(A or B) and C`", ctx);
163
+ }
164
+ const operands = atoms.map((a) => this.bcAtomToCondition(a));
165
+ const location = getLocation(ctx);
166
+ return ors.length > 0 && ands.length === 0
167
+ ? { type: "BranchConditionOr", operands, location }
168
+ : { type: "BranchConditionAnd", operands, location };
169
+ }
170
+ bcAtomToCondition(ctx) {
171
+ if (ctx instanceof CRLParser_1.BcRefContext) {
172
+ const refCtx = ctx.conceptReference();
173
+ return {
174
+ type: "BranchConditionRef",
175
+ ref: refFromRefContext(refCtx),
176
+ location: getLocation(refCtx),
177
+ };
178
+ }
179
+ if (ctx instanceof CRLParser_1.BcGroupContext) {
180
+ return this.branchConditionFrom(ctx.branchCondition());
181
+ }
182
+ if (ctx instanceof CRLParser_1.BcNotContext) {
183
+ const inner = ctx.bcAtom();
184
+ if (!inner) {
185
+ this.reportError("`not` must be followed by a condition", ctx);
186
+ return {
187
+ type: "BranchConditionNot",
188
+ operand: { type: "BranchConditionRef", ref: "", location: getLocation(ctx) },
189
+ location: getLocation(ctx),
190
+ };
191
+ }
192
+ return {
193
+ type: "BranchConditionNot",
194
+ operand: this.bcAtomToCondition(inner),
195
+ location: getLocation(ctx),
196
+ };
197
+ }
198
+ this.reportError("Unknown bcAtom alternative", ctx);
199
+ return { type: "BranchConditionRef", ref: "", location: getLocation(ctx) };
200
+ }
142
201
  visitWhenWithBody(ctx) {
143
- const conceptName = refFromRefContext(ctx.conceptReference());
202
+ const condition = this.branchConditionFrom(ctx.branchCondition());
144
203
  const body = this.visit(ctx.blockBody());
145
- return { type: "WhenBlock", conceptName, body, location: getLocation(ctx) };
204
+ return { type: "WhenBlock", condition, body, location: getLocation(ctx) };
146
205
  }
147
206
  visitWhenSingleAction(ctx) {
148
- const conceptName = refFromRefContext(ctx.conceptReference());
207
+ const condition = this.branchConditionFrom(ctx.branchCondition());
149
208
  const action = this.visit(ctx.actionStatement());
150
- return { type: "WhenBlock", conceptName, body: action, location: getLocation(ctx) };
209
+ return { type: "WhenBlock", condition, body: action, location: getLocation(ctx) };
151
210
  }
152
211
  visitOtherwiseWithBody(ctx) {
153
212
  const body = this.visit(ctx.blockBody());
@@ -363,18 +422,20 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
363
422
  }
364
423
  return { conceptType, valueTypes };
365
424
  }
366
- parseMeta(bodyCtx) {
367
- const metaLines = bodyCtx.metaLine?.() ?? [];
425
+ metaFrom(metaLines) {
368
426
  const metas = [];
369
427
  for (const metaCtx of metaLines) {
370
- const backtickCtx = metaCtx?.backtickString?.();
428
+ if (!metaCtx)
429
+ continue;
430
+ const backtickCtx = metaCtx.backtickString?.();
431
+ const location = getLocation(metaCtx);
371
432
  if (backtickCtx?.text !== undefined) {
372
- metas.push(backtickCtx.text.slice(1, -1));
433
+ metas.push({ text: backtickCtx.text.slice(1, -1), location });
373
434
  }
374
435
  else if (backtickCtx?.BACKTICK_STRING) {
375
436
  const token = backtickCtx.BACKTICK_STRING();
376
437
  if (token?.text !== undefined) {
377
- metas.push(token.text.slice(1, -1));
438
+ metas.push({ text: token.text.slice(1, -1), location });
378
439
  }
379
440
  }
380
441
  }
@@ -534,7 +595,7 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
534
595
  }
535
596
  const types = this.parseConceptTypes(bodyCtx, ctx);
536
597
  const { conceptType, valueTypes } = types;
537
- const meta = this.parseMeta(bodyCtx);
598
+ const meta = this.metaFrom(bodyCtx.metaLine());
538
599
  const evidence = this.parseEvidence(bodyCtx);
539
600
  const code = this.parseCode(bodyCtx);
540
601
  const definition = this.parseConceptDefinition(bodyCtx, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/ast/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/ast/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { CRL } from "./types";
2
+ export declare function classifyCriterionRefs(ast: CRL): CRL;