@smile-digital-health/crl 1.2.1 → 4.92.1

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 (547) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +50 -24
  3. package/dist/ast/builder.d.ts +38 -18
  4. package/dist/ast/builder.js +369 -149
  5. package/dist/ast/builder.js.map +1 -1
  6. package/dist/ast/decisionArms.d.ts +5 -0
  7. package/dist/ast/decisionArms.js +91 -0
  8. package/dist/ast/decisionArms.js.map +1 -0
  9. package/dist/ast/decisionResolver.d.ts +12 -0
  10. package/dist/ast/decisionResolver.js +33 -0
  11. package/dist/ast/decisionResolver.js.map +1 -0
  12. package/dist/ast/decisionSpine.d.ts +18 -0
  13. package/dist/ast/decisionSpine.js +57 -0
  14. package/dist/ast/decisionSpine.js.map +1 -0
  15. package/dist/ast/inferenceWalk.d.ts +10 -0
  16. package/dist/ast/inferenceWalk.js +65 -0
  17. package/dist/ast/inferenceWalk.js.map +1 -0
  18. package/dist/ast/types.d.ts +151 -35
  19. package/dist/ast/types.js +24 -0
  20. package/dist/ast/types.js.map +1 -1
  21. package/dist/authoring-kit/index.d.ts +11 -0
  22. package/dist/authoring-kit/index.js +797 -0
  23. package/dist/authoring-kit/index.js.map +1 -0
  24. package/dist/authoring-kit/reference.d.ts +11 -0
  25. package/dist/authoring-kit/reference.js +563 -0
  26. package/dist/authoring-kit/reference.js.map +1 -0
  27. package/dist/authoring-kit/types.d.ts +130 -0
  28. package/dist/{parser/tests/index.test.js → authoring-kit/types.js} +1 -2
  29. package/dist/authoring-kit/types.js.map +1 -0
  30. package/dist/cel/ast/builder.d.ts +77 -0
  31. package/dist/cel/ast/builder.js +340 -0
  32. package/dist/cel/ast/builder.js.map +1 -0
  33. package/dist/cel/ast/caseId.d.ts +5 -0
  34. package/dist/cel/ast/caseId.js +14 -0
  35. package/dist/cel/ast/caseId.js.map +1 -0
  36. package/dist/cel/ast/types.d.ts +174 -0
  37. package/dist/cel/ast/types.js +3 -0
  38. package/dist/cel/ast/types.js.map +1 -0
  39. package/dist/cel/definedByResolve.d.ts +9 -0
  40. package/dist/cel/definedByResolve.js +32 -0
  41. package/dist/cel/definedByResolve.js.map +1 -0
  42. package/dist/cel/emitter/emitFhir.d.ts +3 -0
  43. package/dist/cel/emitter/emitFhir.js +546 -0
  44. package/dist/cel/emitter/emitFhir.js.map +1 -0
  45. package/dist/cel/emitter/index.d.ts +3 -0
  46. package/dist/cel/emitter/index.js +8 -0
  47. package/dist/cel/emitter/index.js.map +1 -0
  48. package/dist/cel/emitter/types.d.ts +30 -0
  49. package/dist/cel/emitter/types.js +3 -0
  50. package/dist/cel/emitter/types.js.map +1 -0
  51. package/dist/cel/emitter/writer.d.ts +2 -0
  52. package/dist/cel/emitter/writer.js +52 -0
  53. package/dist/cel/emitter/writer.js.map +1 -0
  54. package/dist/cel/imports/index.d.ts +3 -0
  55. package/dist/cel/imports/index.js +6 -0
  56. package/dist/cel/imports/index.js.map +1 -0
  57. package/dist/cel/imports/resolver.d.ts +5 -0
  58. package/dist/cel/imports/resolver.js +63 -0
  59. package/dist/cel/imports/resolver.js.map +1 -0
  60. package/dist/cel/imports/types.d.ts +34 -0
  61. package/dist/cel/imports/types.js +3 -0
  62. package/dist/cel/imports/types.js.map +1 -0
  63. package/dist/cel/index.d.ts +19 -0
  64. package/dist/cel/index.js +120 -0
  65. package/dist/cel/index.js.map +1 -0
  66. package/dist/cel/lexer/CELLexerErrorListener.d.ts +8 -0
  67. package/dist/cel/lexer/CELLexerErrorListener.js +35 -0
  68. package/dist/cel/lexer/CELLexerErrorListener.js.map +1 -0
  69. package/dist/cel/lexer/createLexer.d.ts +6 -0
  70. package/dist/cel/lexer/createLexer.js +14 -0
  71. package/dist/cel/lexer/createLexer.js.map +1 -0
  72. package/dist/cel/parser/CELParserErrorListener.d.ts +8 -0
  73. package/dist/cel/parser/CELParserErrorListener.js +33 -0
  74. package/dist/cel/parser/CELParserErrorListener.js.map +1 -0
  75. package/dist/cel/parser/createParser.d.ts +7 -0
  76. package/dist/cel/parser/createParser.js +17 -0
  77. package/dist/cel/parser/createParser.js.map +1 -0
  78. package/dist/cel/validator/index.d.ts +2 -0
  79. package/dist/cel/validator/index.js +7 -0
  80. package/dist/cel/validator/index.js.map +1 -0
  81. package/dist/cel/validator/types.d.ts +16 -0
  82. package/dist/cel/validator/types.js +3 -0
  83. package/dist/cel/validator/types.js.map +1 -0
  84. package/dist/cel/validator/validator.d.ts +8 -0
  85. package/dist/cel/validator/validator.js +306 -0
  86. package/dist/cel/validator/validator.js.map +1 -0
  87. package/dist/cli/run-ast.d.ts +1 -0
  88. package/dist/cli/run-ast.js +2 -1
  89. package/dist/cli/run-ast.js.map +1 -1
  90. package/dist/cli/run-canonicalize-source.d.ts +2 -0
  91. package/dist/cli/run-canonicalize-source.js +60 -0
  92. package/dist/cli/run-canonicalize-source.js.map +1 -0
  93. package/dist/cli/run-emitter.d.ts +2 -0
  94. package/dist/cli/run-emitter.js +325 -0
  95. package/dist/cli/run-emitter.js.map +1 -0
  96. package/dist/cli/run-generate-provenance.d.ts +2 -0
  97. package/dist/cli/run-generate-provenance.js +113 -0
  98. package/dist/cli/run-generate-provenance.js.map +1 -0
  99. package/dist/cli/run-lexer.d.ts +1 -0
  100. package/dist/cli/run-lexer.js +2 -1
  101. package/dist/cli/run-lexer.js.map +1 -1
  102. package/dist/cli/run-mcp-server.d.ts +2 -0
  103. package/dist/cli/run-mcp-server.js +15 -0
  104. package/dist/cli/run-mcp-server.js.map +1 -0
  105. package/dist/cli/run-parser.d.ts +1 -0
  106. package/dist/cli/run-parser.js +2 -1
  107. package/dist/cli/run-parser.js.map +1 -1
  108. package/dist/cli/run-template-match.d.ts +2 -0
  109. package/dist/cli/run-template-match.js +59 -0
  110. package/dist/cli/run-template-match.js.map +1 -0
  111. package/dist/cli/run-transformer-fsh-to-crl.js +1 -1
  112. package/dist/cli/run-transformer-fsh-to-crl.js.map +1 -1
  113. package/dist/cli/run-validate-provenance.d.ts +2 -0
  114. package/dist/cli/run-validate-provenance.js +78 -0
  115. package/dist/cli/run-validate-provenance.js.map +1 -0
  116. package/dist/cli/run-validator.d.ts +1 -0
  117. package/dist/cli/run-validator.js +111 -28
  118. package/dist/cli/run-validator.js.map +1 -1
  119. package/dist/cql-emitter/catalog/CRLCommon.cql +597 -0
  120. package/dist/cql-emitter/catalog/CaseFeatureCommon.cql +112 -0
  121. package/dist/cql-emitter/catalog/FHIRHelpers.cql +520 -0
  122. package/dist/cql-emitter/catalog/loadCatalog.d.ts +11 -0
  123. package/dist/cql-emitter/catalog/loadCatalog.js +59 -0
  124. package/dist/cql-emitter/catalog/loadCatalog.js.map +1 -0
  125. package/dist/cql-emitter/cqlStrings.d.ts +2 -0
  126. package/dist/cql-emitter/cqlStrings.js +17 -0
  127. package/dist/cql-emitter/cqlStrings.js.map +1 -0
  128. package/dist/cql-emitter/emitCQL.d.ts +46 -0
  129. package/dist/cql-emitter/emitCQL.js +802 -0
  130. package/dist/cql-emitter/emitCQL.js.map +1 -0
  131. package/dist/cql-emitter/index.d.ts +2 -0
  132. package/dist/cql-emitter/index.js +7 -0
  133. package/dist/cql-emitter/index.js.map +1 -0
  134. package/dist/cql-emitter/layeredEmit.d.ts +35 -0
  135. package/dist/cql-emitter/layeredEmit.js +528 -0
  136. package/dist/cql-emitter/layeredEmit.js.map +1 -0
  137. package/dist/cql-emitter/lowerLocalCodes.d.ts +19 -0
  138. package/dist/cql-emitter/lowerLocalCodes.js +280 -0
  139. package/dist/cql-emitter/lowerLocalCodes.js.map +1 -0
  140. package/dist/cre/decisionResolver.d.ts +1 -0
  141. package/dist/cre/decisionResolver.js +7 -0
  142. package/dist/cre/decisionResolver.js.map +1 -0
  143. package/dist/cre/index.d.ts +4 -0
  144. package/dist/cre/index.js +9 -0
  145. package/dist/cre/index.js.map +1 -0
  146. package/dist/cre/run.d.ts +62 -0
  147. package/dist/cre/run.js +432 -0
  148. package/dist/cre/run.js.map +1 -0
  149. package/dist/cre/viewModel.d.ts +114 -0
  150. package/dist/cre/viewModel.js +337 -0
  151. package/dist/cre/viewModel.js.map +1 -0
  152. package/dist/dispositions/categories.d.ts +9 -0
  153. package/dist/dispositions/categories.js +38 -0
  154. package/dist/dispositions/categories.js.map +1 -0
  155. package/dist/dispositions/config.d.ts +5 -0
  156. package/dist/dispositions/config.js +212 -0
  157. package/dist/dispositions/config.js.map +1 -0
  158. package/dist/dispositions/displayName.d.ts +8 -0
  159. package/dist/dispositions/displayName.js +25 -0
  160. package/dist/dispositions/displayName.js.map +1 -0
  161. package/dist/dispositions/index.d.ts +5 -0
  162. package/dist/dispositions/index.js +36 -0
  163. package/dist/dispositions/index.js.map +1 -0
  164. package/dist/dispositions/types.d.ts +49 -0
  165. package/dist/dispositions/types.js +3 -0
  166. package/dist/dispositions/types.js.map +1 -0
  167. package/dist/emit-two-lane.d.ts +20 -0
  168. package/dist/emit-two-lane.js +42 -0
  169. package/dist/emit-two-lane.js.map +1 -0
  170. package/dist/fhir-emitter/activity.d.ts +16 -0
  171. package/dist/fhir-emitter/activity.js +283 -0
  172. package/dist/fhir-emitter/activity.js.map +1 -0
  173. package/dist/fhir-emitter/caseFeatureCollection.d.ts +6 -0
  174. package/dist/fhir-emitter/caseFeatureCollection.js +22 -0
  175. package/dist/fhir-emitter/caseFeatureCollection.js.map +1 -0
  176. package/dist/fhir-emitter/closureOrchestrator.d.ts +35 -0
  177. package/dist/fhir-emitter/closureOrchestrator.js +968 -0
  178. package/dist/fhir-emitter/closureOrchestrator.js.map +1 -0
  179. package/dist/fhir-emitter/codeSystem.d.ts +11 -0
  180. package/dist/fhir-emitter/codeSystem.js +89 -0
  181. package/dist/fhir-emitter/codeSystem.js.map +1 -0
  182. package/dist/fhir-emitter/cpgActivityProfiles.d.ts +13 -0
  183. package/dist/fhir-emitter/cpgActivityProfiles.js +113 -0
  184. package/dist/fhir-emitter/cpgActivityProfiles.js.map +1 -0
  185. package/dist/fhir-emitter/decision.d.ts +22 -0
  186. package/dist/fhir-emitter/decision.js +464 -0
  187. package/dist/fhir-emitter/decision.js.map +1 -0
  188. package/dist/fhir-emitter/index.d.ts +13 -0
  189. package/dist/fhir-emitter/index.js +43 -0
  190. package/dist/fhir-emitter/index.js.map +1 -0
  191. package/dist/fhir-emitter/library.d.ts +20 -0
  192. package/dist/fhir-emitter/library.js +183 -0
  193. package/dist/fhir-emitter/library.js.map +1 -0
  194. package/dist/fhir-emitter/metadata.d.ts +13 -0
  195. package/dist/fhir-emitter/metadata.js +379 -0
  196. package/dist/fhir-emitter/metadata.js.map +1 -0
  197. package/dist/fhir-emitter/recommendation.d.ts +14 -0
  198. package/dist/fhir-emitter/recommendation.js +147 -0
  199. package/dist/fhir-emitter/recommendation.js.map +1 -0
  200. package/dist/fhir-emitter/reproDate.d.ts +6 -0
  201. package/dist/fhir-emitter/reproDate.js +58 -0
  202. package/dist/fhir-emitter/reproDate.js.map +1 -0
  203. package/dist/fhir-emitter/slug.d.ts +12 -0
  204. package/dist/fhir-emitter/slug.js +74 -0
  205. package/dist/fhir-emitter/slug.js.map +1 -0
  206. package/dist/fhir-emitter/structureDefinition.d.ts +8 -0
  207. package/dist/fhir-emitter/structureDefinition.js +153 -0
  208. package/dist/fhir-emitter/structureDefinition.js.map +1 -0
  209. package/dist/fhir-emitter/tarjan.d.ts +1 -0
  210. package/dist/fhir-emitter/tarjan.js +43 -0
  211. package/dist/fhir-emitter/tarjan.js.map +1 -0
  212. package/dist/fhir-emitter/types.d.ts +86 -0
  213. package/dist/fhir-emitter/types.js +83 -0
  214. package/dist/fhir-emitter/types.js.map +1 -0
  215. package/dist/fhir-emitter/valueSet.d.ts +13 -0
  216. package/dist/fhir-emitter/valueSet.js +155 -0
  217. package/dist/fhir-emitter/valueSet.js.map +1 -0
  218. package/dist/fhir-emitter/writer.d.ts +2 -0
  219. package/dist/fhir-emitter/writer.js +21 -0
  220. package/dist/fhir-emitter/writer.js.map +1 -0
  221. package/dist/flags/buildFlagDraft.d.ts +12 -0
  222. package/dist/flags/buildFlagDraft.js +70 -0
  223. package/dist/flags/buildFlagDraft.js.map +1 -0
  224. package/dist/flags/flagVocab.d.ts +46 -0
  225. package/dist/flags/flagVocab.js +130 -0
  226. package/dist/flags/flagVocab.js.map +1 -0
  227. package/dist/flags/mvFlag.d.ts +30 -0
  228. package/dist/flags/mvFlag.js +70 -0
  229. package/dist/flags/mvFlag.js.map +1 -0
  230. package/dist/flags/mvFlagAnchor.d.ts +24 -0
  231. package/dist/flags/mvFlagAnchor.js +38 -0
  232. package/dist/flags/mvFlagAnchor.js.map +1 -0
  233. package/dist/flags/mvFlagStore.d.ts +9 -0
  234. package/dist/flags/mvFlagStore.js +72 -0
  235. package/dist/flags/mvFlagStore.js.map +1 -0
  236. package/dist/flags/occurrenceKey.d.ts +27 -0
  237. package/dist/flags/occurrenceKey.js +73 -0
  238. package/dist/flags/occurrenceKey.js.map +1 -0
  239. package/dist/grammar/generated/antlr/CELLexer.d.ts +79 -0
  240. package/dist/grammar/generated/antlr/CELLexer.js +463 -0
  241. package/dist/grammar/generated/antlr/CELLexer.js.map +1 -0
  242. package/dist/grammar/generated/antlr/CELParser.d.ts +566 -0
  243. package/dist/grammar/generated/antlr/CELParser.js +2971 -0
  244. package/dist/grammar/generated/antlr/CELParser.js.map +1 -0
  245. package/dist/grammar/generated/antlr/CELParserListener.d.ts +138 -0
  246. package/dist/grammar/generated/antlr/CELParserListener.js +3 -0
  247. package/dist/grammar/generated/antlr/CELParserListener.js.map +1 -0
  248. package/dist/grammar/generated/antlr/CELParserVisitor.d.ts +93 -0
  249. package/dist/grammar/generated/antlr/CELParserVisitor.js +3 -0
  250. package/dist/grammar/generated/antlr/CELParserVisitor.js.map +1 -0
  251. package/dist/grammar/generated/antlr/CRLLexer.d.ts +74 -49
  252. package/dist/grammar/generated/antlr/CRLLexer.js +582 -324
  253. package/dist/grammar/generated/antlr/CRLLexer.js.map +1 -1
  254. package/dist/grammar/generated/antlr/CRLParser.d.ts +508 -212
  255. package/dist/grammar/generated/antlr/CRLParser.js +3062 -1361
  256. package/dist/grammar/generated/antlr/CRLParser.js.map +1 -1
  257. package/dist/grammar/generated/antlr/CRLParserListener.d.ts +129 -57
  258. package/dist/grammar/generated/antlr/CRLParserVisitor.d.ts +86 -38
  259. package/dist/grammar/generated/types/activityTypes.json +3 -3
  260. package/dist/grammar/generated/types/conceptTypes.json +7 -1
  261. package/dist/grammar/generated/types/parameterTypes.json +46 -0
  262. package/dist/grammar/parameterTypes.d.ts +2 -0
  263. package/dist/grammar/parameterTypes.js +9 -0
  264. package/dist/grammar/parameterTypes.js.map +1 -0
  265. package/dist/imports/computeEmitClosure.d.ts +14 -0
  266. package/dist/imports/computeEmitClosure.js +281 -0
  267. package/dist/imports/computeEmitClosure.js.map +1 -0
  268. package/dist/imports/emit.d.ts +37 -0
  269. package/dist/imports/emit.js +427 -0
  270. package/dist/imports/emit.js.map +1 -0
  271. package/dist/imports/index.d.ts +11 -0
  272. package/dist/imports/index.js +132 -0
  273. package/dist/imports/index.js.map +1 -0
  274. package/dist/imports/namespace.d.ts +5 -0
  275. package/dist/imports/namespace.js +42 -0
  276. package/dist/imports/namespace.js.map +1 -0
  277. package/dist/imports/paths.d.ts +1 -0
  278. package/dist/imports/paths.js +45 -0
  279. package/dist/imports/paths.js.map +1 -0
  280. package/dist/imports/registry.d.ts +20 -0
  281. package/dist/imports/registry.js +355 -0
  282. package/dist/imports/registry.js.map +1 -0
  283. package/dist/imports/resolver.d.ts +5 -0
  284. package/dist/imports/resolver.js +88 -0
  285. package/dist/imports/resolver.js.map +1 -0
  286. package/dist/imports/safeOutputFilename.d.ts +1 -0
  287. package/dist/imports/safeOutputFilename.js +11 -0
  288. package/dist/imports/safeOutputFilename.js.map +1 -0
  289. package/dist/imports/scopes.d.ts +30 -0
  290. package/dist/imports/scopes.js +113 -0
  291. package/dist/imports/scopes.js.map +1 -0
  292. package/dist/imports/types.d.ts +104 -0
  293. package/dist/imports/types.js +13 -0
  294. package/dist/imports/types.js.map +1 -0
  295. package/dist/imports/validate.d.ts +14 -0
  296. package/dist/imports/validate.js +76 -0
  297. package/dist/imports/validate.js.map +1 -0
  298. package/dist/index.d.ts +52 -1
  299. package/dist/index.js +177 -5
  300. package/dist/index.js.map +1 -1
  301. package/dist/language-services/catalog.d.ts +16 -0
  302. package/dist/language-services/catalog.js +181 -0
  303. package/dist/language-services/catalog.js.map +1 -0
  304. package/dist/language-services/celCompletion.d.ts +11 -0
  305. package/dist/language-services/celCompletion.js +74 -0
  306. package/dist/language-services/celCompletion.js.map +1 -0
  307. package/dist/language-services/celContextDetect.d.ts +18 -0
  308. package/dist/language-services/celContextDetect.js +28 -0
  309. package/dist/language-services/celContextDetect.js.map +1 -0
  310. package/dist/language-services/celDiagnostics.d.ts +10 -0
  311. package/dist/language-services/celDiagnostics.js +23 -0
  312. package/dist/language-services/celDiagnostics.js.map +1 -0
  313. package/dist/language-services/celHover.d.ts +12 -0
  314. package/dist/language-services/celHover.js +73 -0
  315. package/dist/language-services/celHover.js.map +1 -0
  316. package/dist/language-services/celNavigation.d.ts +13 -0
  317. package/dist/language-services/celNavigation.js +92 -0
  318. package/dist/language-services/celNavigation.js.map +1 -0
  319. package/dist/language-services/celSymbols.d.ts +4 -0
  320. package/dist/language-services/celSymbols.js +82 -0
  321. package/dist/language-services/celSymbols.js.map +1 -0
  322. package/dist/language-services/completion.d.ts +9 -0
  323. package/dist/language-services/completion.js +178 -0
  324. package/dist/language-services/completion.js.map +1 -0
  325. package/dist/language-services/completionHelpers.d.ts +15 -0
  326. package/dist/language-services/completionHelpers.js +59 -0
  327. package/dist/language-services/completionHelpers.js.map +1 -0
  328. package/dist/language-services/concepts.d.ts +12 -0
  329. package/dist/language-services/concepts.js +64 -0
  330. package/dist/language-services/concepts.js.map +1 -0
  331. package/dist/language-services/contextDetect.d.ts +4 -0
  332. package/dist/language-services/contextDetect.js +55 -0
  333. package/dist/language-services/contextDetect.js.map +1 -0
  334. package/dist/language-services/contracts.d.ts +78 -0
  335. package/dist/language-services/contracts.js +13 -0
  336. package/dist/language-services/contracts.js.map +1 -0
  337. package/dist/language-services/diagnostics.d.ts +41 -0
  338. package/dist/language-services/diagnostics.js +213 -0
  339. package/dist/language-services/diagnostics.js.map +1 -0
  340. package/dist/language-services/findDeclaration.d.ts +18 -0
  341. package/dist/language-services/findDeclaration.js +42 -0
  342. package/dist/language-services/findDeclaration.js.map +1 -0
  343. package/dist/language-services/highlight.d.ts +27 -0
  344. package/dist/language-services/highlight.js +84 -0
  345. package/dist/language-services/highlight.js.map +1 -0
  346. package/dist/language-services/host.d.ts +22 -0
  347. package/dist/language-services/host.js +61 -0
  348. package/dist/language-services/host.js.map +1 -0
  349. package/dist/language-services/hover.d.ts +24 -0
  350. package/dist/language-services/hover.js +174 -0
  351. package/dist/language-services/hover.js.map +1 -0
  352. package/dist/language-services/index.d.ts +20 -0
  353. package/dist/language-services/index.js +37 -0
  354. package/dist/language-services/index.js.map +1 -0
  355. package/dist/language-services/navigation.d.ts +9 -0
  356. package/dist/language-services/navigation.js +227 -0
  357. package/dist/language-services/navigation.js.map +1 -0
  358. package/dist/language-services/paths.d.ts +1 -0
  359. package/dist/language-services/paths.js +45 -0
  360. package/dist/language-services/paths.js.map +1 -0
  361. package/dist/language-services/projectIndex.d.ts +67 -0
  362. package/dist/language-services/projectIndex.js +749 -0
  363. package/dist/language-services/projectIndex.js.map +1 -0
  364. package/dist/lexer/CRLLexerErrorListener.d.ts +1 -0
  365. package/dist/lexer/CRLLexerErrorListener.js +20 -0
  366. package/dist/lexer/CRLLexerErrorListener.js.map +1 -1
  367. package/dist/mcp/index.d.ts +1 -0
  368. package/dist/mcp/index.js +18 -0
  369. package/dist/mcp/index.js.map +1 -0
  370. package/dist/mcp/server.d.ts +4 -0
  371. package/dist/mcp/server.js +1147 -0
  372. package/dist/mcp/server.js.map +1 -0
  373. package/dist/meta/generated/registry.generated.d.ts +322 -0
  374. package/dist/meta/generated/registry.generated.js +398 -0
  375. package/dist/meta/generated/registry.generated.js.map +1 -0
  376. package/dist/meta/parseMetaTag.d.ts +15 -0
  377. package/dist/meta/parseMetaTag.js +33 -0
  378. package/dist/meta/parseMetaTag.js.map +1 -0
  379. package/dist/meta/registry.d.ts +13 -0
  380. package/dist/meta/registry.js +62 -0
  381. package/dist/meta/registry.js.map +1 -0
  382. package/dist/provenance/artifact.d.ts +111 -0
  383. package/dist/provenance/artifact.js +5 -0
  384. package/dist/provenance/artifact.js.map +1 -0
  385. package/dist/provenance/canonicalize.d.ts +63 -0
  386. package/dist/provenance/canonicalize.js +545 -0
  387. package/dist/provenance/canonicalize.js.map +1 -0
  388. package/dist/provenance/caseIdJoin.d.ts +7 -0
  389. package/dist/provenance/caseIdJoin.js +33 -0
  390. package/dist/provenance/caseIdJoin.js.map +1 -0
  391. package/dist/provenance/cockpitModel.d.ts +24 -0
  392. package/dist/provenance/cockpitModel.js +41 -0
  393. package/dist/provenance/cockpitModel.js.map +1 -0
  394. package/dist/provenance/conceptContainment.d.ts +6 -0
  395. package/dist/provenance/conceptContainment.js +43 -0
  396. package/dist/provenance/conceptContainment.js.map +1 -0
  397. package/dist/provenance/conceptShape.d.ts +13 -0
  398. package/dist/provenance/conceptShape.js +100 -0
  399. package/dist/provenance/conceptShape.js.map +1 -0
  400. package/dist/provenance/correspondence.d.ts +120 -0
  401. package/dist/provenance/correspondence.js +314 -0
  402. package/dist/provenance/correspondence.js.map +1 -0
  403. package/dist/provenance/correspondenceCheck.d.ts +19 -0
  404. package/dist/provenance/correspondenceCheck.js +126 -0
  405. package/dist/provenance/correspondenceCheck.js.map +1 -0
  406. package/dist/provenance/coverage.d.ts +23 -0
  407. package/dist/provenance/coverage.js +156 -0
  408. package/dist/provenance/coverage.js.map +1 -0
  409. package/dist/provenance/crlConceptLayer.d.ts +29 -0
  410. package/dist/provenance/crlConceptLayer.js +68 -0
  411. package/dist/provenance/crlConceptLayer.js.map +1 -0
  412. package/dist/provenance/crlStructure.d.ts +27 -0
  413. package/dist/provenance/crlStructure.js +92 -0
  414. package/dist/provenance/crlStructure.js.map +1 -0
  415. package/dist/provenance/definedAsExpr.d.ts +61 -0
  416. package/dist/provenance/definedAsExpr.js +175 -0
  417. package/dist/provenance/definedAsExpr.js.map +1 -0
  418. package/dist/provenance/failedCriteria.d.ts +68 -0
  419. package/dist/provenance/failedCriteria.js +135 -0
  420. package/dist/provenance/failedCriteria.js.map +1 -0
  421. package/dist/provenance/generate.d.ts +40 -0
  422. package/dist/provenance/generate.js +926 -0
  423. package/dist/provenance/generate.js.map +1 -0
  424. package/dist/provenance/generateFiles.d.ts +15 -0
  425. package/dist/provenance/generateFiles.js +66 -0
  426. package/dist/provenance/generateFiles.js.map +1 -0
  427. package/dist/provenance/index.d.ts +40 -0
  428. package/dist/provenance/index.js +86 -0
  429. package/dist/provenance/index.js.map +1 -0
  430. package/dist/provenance/indexer.d.ts +77 -0
  431. package/dist/provenance/indexer.js +387 -0
  432. package/dist/provenance/indexer.js.map +1 -0
  433. package/dist/provenance/policyLayout.d.ts +1 -0
  434. package/dist/provenance/policyLayout.js +17 -0
  435. package/dist/provenance/policyLayout.js.map +1 -0
  436. package/dist/provenance/revealMaps.d.ts +44 -0
  437. package/dist/provenance/revealMaps.js +303 -0
  438. package/dist/provenance/revealMaps.js.map +1 -0
  439. package/dist/provenance/runPath.d.ts +33 -0
  440. package/dist/provenance/runPath.js +76 -0
  441. package/dist/provenance/runPath.js.map +1 -0
  442. package/dist/provenance/validateFiles.d.ts +41 -0
  443. package/dist/provenance/validateFiles.js +117 -0
  444. package/dist/provenance/validateFiles.js.map +1 -0
  445. package/dist/provenance/validators.d.ts +28 -0
  446. package/dist/provenance/validators.js +525 -0
  447. package/dist/provenance/validators.js.map +1 -0
  448. package/dist/template-match/canonicalTypes.d.ts +41 -0
  449. package/dist/template-match/canonicalTypes.js +3 -0
  450. package/dist/template-match/canonicalTypes.js.map +1 -0
  451. package/dist/template-match/index.d.ts +2 -0
  452. package/dist/template-match/index.js +6 -0
  453. package/dist/template-match/index.js.map +1 -0
  454. package/dist/template-match/matcher.d.ts +3 -0
  455. package/dist/template-match/matcher.js +854 -0
  456. package/dist/template-match/matcher.js.map +1 -0
  457. package/dist/types/errors.d.ts +2 -1
  458. package/dist/validator/cycleDetector.d.ts +20 -10
  459. package/dist/validator/cycleDetector.js +276 -51
  460. package/dist/validator/cycleDetector.js.map +1 -1
  461. package/dist/validator/decisionShapeValidator.d.ts +9 -0
  462. package/dist/validator/decisionShapeValidator.js +95 -0
  463. package/dist/validator/decisionShapeValidator.js.map +1 -0
  464. package/dist/validator/dispositionValidator.d.ts +13 -0
  465. package/dist/validator/dispositionValidator.js +135 -0
  466. package/dist/validator/dispositionValidator.js.map +1 -0
  467. package/dist/validator/metaTagValidator.d.ts +10 -0
  468. package/dist/validator/metaTagValidator.js +97 -0
  469. package/dist/validator/metaTagValidator.js.map +1 -0
  470. package/dist/validator/nameUniquenessValidator.d.ts +5 -1
  471. package/dist/validator/nameUniquenessValidator.js +82 -74
  472. package/dist/validator/nameUniquenessValidator.js.map +1 -1
  473. package/dist/validator/referenceResolver.d.ts +22 -0
  474. package/dist/validator/referenceResolver.js +367 -0
  475. package/dist/validator/referenceResolver.js.map +1 -0
  476. package/dist/validator/validator.d.ts +69 -4
  477. package/dist/validator/validator.js +0 -0
  478. package/dist/validator/validator.js.map +1 -1
  479. package/package.json +56 -20
  480. package/dist/ast/tests/activity-structure.test.d.ts +0 -1
  481. package/dist/ast/tests/activity-structure.test.js +0 -63
  482. package/dist/ast/tests/activity-structure.test.js.map +0 -1
  483. package/dist/ast/tests/builder.test.d.ts +0 -1
  484. package/dist/ast/tests/builder.test.js +0 -588
  485. package/dist/ast/tests/builder.test.js.map +0 -1
  486. package/dist/ast/tests/concept-structure.test.d.ts +0 -1
  487. package/dist/ast/tests/concept-structure.test.js +0 -127
  488. package/dist/ast/tests/concept-structure.test.js.map +0 -1
  489. package/dist/ast/tests/decision-structure.test.d.ts +0 -1
  490. package/dist/ast/tests/decision-structure.test.js +0 -267
  491. package/dist/ast/tests/decision-structure.test.js.map +0 -1
  492. package/dist/ast/tests/index.test.d.ts +0 -5
  493. package/dist/ast/tests/index.test.js +0 -8
  494. package/dist/ast/tests/index.test.js.map +0 -1
  495. package/dist/ast/tests/parseInput.d.ts +0 -2
  496. package/dist/ast/tests/parseInput.js +0 -16
  497. package/dist/ast/tests/parseInput.js.map +0 -1
  498. package/dist/ast/tests/terminology-structure.test.d.ts +0 -1
  499. package/dist/ast/tests/terminology-structure.test.js +0 -36
  500. package/dist/ast/tests/terminology-structure.test.js.map +0 -1
  501. package/dist/lexer/tests/basic-tokens.test.d.ts +0 -1
  502. package/dist/lexer/tests/basic-tokens.test.js +0 -483
  503. package/dist/lexer/tests/basic-tokens.test.js.map +0 -1
  504. package/dist/lexer/tests/comments.test.d.ts +0 -1
  505. package/dist/lexer/tests/comments.test.js +0 -166
  506. package/dist/lexer/tests/comments.test.js.map +0 -1
  507. package/dist/lexer/tests/error-handling.test.d.ts +0 -1
  508. package/dist/lexer/tests/error-handling.test.js +0 -218
  509. package/dist/lexer/tests/error-handling.test.js.map +0 -1
  510. package/dist/lexer/tests/error-listener.test.d.ts +0 -1
  511. package/dist/lexer/tests/error-listener.test.js +0 -147
  512. package/dist/lexer/tests/error-listener.test.js.map +0 -1
  513. package/dist/lexer/tests/fhir-types.helpers.d.ts +0 -3
  514. package/dist/lexer/tests/fhir-types.helpers.js +0 -16
  515. package/dist/lexer/tests/fhir-types.helpers.js.map +0 -1
  516. package/dist/lexer/tests/fhir-types.test.d.ts +0 -1
  517. package/dist/lexer/tests/fhir-types.test.js +0 -112
  518. package/dist/lexer/tests/fhir-types.test.js.map +0 -1
  519. package/dist/lexer/tests/helpers.d.ts +0 -12
  520. package/dist/lexer/tests/helpers.js +0 -41
  521. package/dist/lexer/tests/helpers.js.map +0 -1
  522. package/dist/lexer/tests/index.test.d.ts +0 -13
  523. package/dist/lexer/tests/index.test.js +0 -35
  524. package/dist/lexer/tests/index.test.js.map +0 -1
  525. package/dist/lexer/tests/integration.test.d.ts +0 -1
  526. package/dist/lexer/tests/integration.test.js +0 -470
  527. package/dist/lexer/tests/integration.test.js.map +0 -1
  528. package/dist/lexer/tests/lexer-test-utils.d.ts +0 -3
  529. package/dist/lexer/tests/lexer-test-utils.js +0 -19
  530. package/dist/lexer/tests/lexer-test-utils.js.map +0 -1
  531. package/dist/lexer/tests/structures.test.d.ts +0 -1
  532. package/dist/lexer/tests/structures.test.js +0 -251
  533. package/dist/lexer/tests/structures.test.js.map +0 -1
  534. package/dist/lexer/tests/whitespace.test.d.ts +0 -1
  535. package/dist/lexer/tests/whitespace.test.js +0 -203
  536. package/dist/lexer/tests/whitespace.test.js.map +0 -1
  537. package/dist/parser/tests/createParser.test.d.ts +0 -1
  538. package/dist/parser/tests/createParser.test.js +0 -30
  539. package/dist/parser/tests/createParser.test.js.map +0 -1
  540. package/dist/parser/tests/index.test.d.ts +0 -1
  541. package/dist/parser/tests/index.test.js.map +0 -1
  542. package/dist/validator/actionUniquenessValidator.d.ts +0 -2
  543. package/dist/validator/actionUniquenessValidator.js +0 -7
  544. package/dist/validator/actionUniquenessValidator.js.map +0 -1
  545. package/dist/validator/unusedDeclarationsValidator.d.ts +0 -2
  546. package/dist/validator/unusedDeclarationsValidator.js +0 -7
  547. package/dist/validator/unusedDeclarationsValidator.js.map +0 -1
package/LICENSE CHANGED
@@ -198,4 +198,4 @@ Apache License
198
198
  distributed under the License is distributed on an "AS IS" BASIS,
199
199
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
200
  See the License for the specific language governing permissions and
201
- limitations under the License.
201
+ limitations under the License.
package/README.md CHANGED
@@ -6,10 +6,14 @@ Clinical Reasoning Language (CRL) provides a structured way to model clinical de
6
6
 
7
7
  ## Overview
8
8
 
9
- See the [User Guide](./USER_GUIDE.md) for a comprehensive introduction to the CRL language, syntax, and authoring best practices.
9
+ See the [User Guide](./USER_GUIDE.md) for a comprehensive introduction to the CRL language, syntax, and authoring best practices. For the **CLI and MCP tool reference** (emit, validate, the 7 MCP tools — for both CRL and CEL), see [TOOLING.md](./TOOLING.md).
10
10
 
11
11
  CRL is a domain-specific language designed for expressing clinical practice guidelines in a structured and machine-readable format. The language is implemented in TypeScript and provides a comprehensive set of tools for processing CRL documents.
12
12
 
13
+ ## Metadata annotations
14
+
15
+ CRL concepts can carry typed metadata via an `@tag` convention on `meta` lines (e.g. `@description`, `@ke-feedback`, `@kg-concept`) — for descriptions, knowledge-engineer feedback, plain-language logic, external-store hints, and extraction provenance. See the [metadata model](./spec/metadata-model.md) and the canonical [tag registry](./spec/metadata-registry.json). *(Draft: the convention parses today; Validator enforcement is forthcoming.)*
16
+
13
17
  ## Installation
14
18
 
15
19
  This is a private package. To install it, you need:
@@ -66,12 +70,31 @@ npm pack
66
70
  tar -ztvf <package-name>.tgz
67
71
  ```
68
72
 
73
+ #### Cutting a release (build both artifacts + upload to GitHub)
74
+
75
+ Releases ship two artifacts side-by-side: the npm tarball (`smile-digital-health-crl-<version>.tgz`) and the VS Code extension VSIX (`crl-language-support-<version>.vsix`).
76
+
77
+ **Heads-up (Windows):** if you have VS Code open with the CRL extension active, its bundled MCP server keeps `dist/` files open and both `npm pack` and `npm run package` will fail with `EPERM` on `dist/`. Close VS Code (or just disable the CRL extension) before running the build commands below.
78
+
79
+ ```bash
80
+ # 1. Close VS Code (or disable the CRL extension) so the MCP server releases any lock on dist/.
81
+ # 2. From the repo root, build the npm tarball for the core package:
82
+ npm pack -w @smile-digital-health/crl
83
+
84
+ # 3. Build the extension VSIX (also from the repo root):
85
+ npm run package -w crl-language-support
86
+
87
+ # 4. Upload the resulting .tgz and .vsix to the corresponding GitHub release.
88
+ ```
89
+
90
+ Both artifacts are produced at the version declared in their respective `package.json` files. Bump those (and tag the commit `v<version>`) before running the steps above so the produced filenames match the release tag.
91
+
69
92
  ## Features
70
93
 
71
94
  ### Language Features
72
95
 
73
96
  * Decision blocks with nested conditions
74
- * Concept definitions with type and optional value specifications
97
+ * Concept definitions with type and value specifications
75
98
  * Activity statements with perform types
76
99
  * Terminology statements with valueset, system/code, and unknown definitions
77
100
  * FHIR resource type support
@@ -176,6 +199,18 @@ npm run cli:lexer
176
199
 
177
200
  Replace `<module>` with the desired CLI module name (e.g., `lexer`, `parser`, etc.).
178
201
 
202
+ ## FHIR Definition Emit (v2.4.0)
203
+
204
+ CRL emits CPG-IG-conformant FHIR Definition resources (ValueSet, Library, ActivityDefinition, PlanDefinition) alongside the existing CQL emit.
205
+
206
+ ```bash
207
+ crl-emit --path <root.crl> --out-dir <project-root> --target fhir-def
208
+ ```
209
+
210
+ Output lands at `<project-root>/fhir/<ResourceType>/<id>.json`. CQL emit (the existing `--target cql` / default behavior) lands at `<project-root>/cql/<library-name>.cql`. Library content references the CQL file via the relative path `../../cql/<library-name>.cql`.
211
+
212
+ For semantic rules, layout details, deliberate spec deviations, and the MCP `emit_crl_fhir` tool, see [`USER_GUIDE.md` §"Emitting FHIR Definition resources"](USER_GUIDE.md#emitting-fhir-definition-resources).
213
+
179
214
  ## API Usage & Reference
180
215
 
181
216
  **All API functions return a `ParseResult` object. If there are any lexical or syntax errors, these are collected and returned in the `errors` array (not just printed to the console). You should always check `result.success` and handle errors accordingly.**
@@ -304,7 +339,7 @@ The comparison includes:
304
339
 
305
340
  ### FSH-to-CRL Example Data
306
341
 
307
- The example FSH files and CRL outputs in `examples/fsh/who/smart-example-immz/` and `examples/crl/who/smart-example-immz/` are derived from the [WHO SMART Guidelines - Example IG for Measles Immunization](https://github.com/WorldHealthOrganization/smart-example-immz).
342
+ The example FSH files and CRL outputs in `src/examples/fsh/who/smart-example-immz/` and `src/examples/crl/who/smart-example-immz/` are derived from the [WHO SMART Guidelines - Example IG for Measles Immunization](https://github.com/WorldHealthOrganization/smart-example-immz).
308
343
 
309
344
  - **Source repository:** [WorldHealthOrganization/smart-example-immz](https://github.com/WorldHealthOrganization/smart-example-immz)
310
345
  - **License:** [CC BY-IGO 3.0](https://github.com/WorldHealthOrganization/smart-example-immz/blob/main/LICENSE.md)
@@ -370,8 +405,8 @@ npm test
370
405
  # Run tests with coverage
371
406
  npm run test:coverage
372
407
 
373
- # Run specific test files
374
- 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
375
410
 
376
411
  # Run tests in watch mode (useful during development)
377
412
  npm run test:watch
@@ -476,7 +511,7 @@ Note: This project uses a custom AST implementation that uses ANTLR's visitor pa
476
511
  >
477
512
  > The authoritative release checklist and instructions are maintained in a single location:
478
513
  >
479
- > **[.github/PULL_REQUEST_TEMPLATE/release.md](.github/PULL_REQUEST_TEMPLATE/release.md)**
514
+ > **[.github/PULL_REQUEST_TEMPLATE/release.md](../../.github/PULL_REQUEST_TEMPLATE/release.md)**
480
515
  >
481
516
  > Always follow the steps in this file when preparing a new release. This ensures consistency and reduces maintenance overhead. If you need to update the release process, update the PR template only.
482
517
 
@@ -490,7 +525,7 @@ Note: This project uses a custom AST implementation that uses ANTLR's visitor pa
490
525
  - **Generated Files:** Auto-generated files (e.g., ANTLR outputs, grammar-driven types) are ignored by git and should never be edited manually. Always use the provided scripts to regenerate them.
491
526
  - **Documentation:** Keep all documentation referencing the release checklist up-to-date by linking to the PR template.
492
527
 
493
- For more details, see the [release PR template](.github/PULL_REQUEST_TEMPLATE/release.md) and the automation scripts in `.github/scripts/`.
528
+ For more details, see the [release PR template](../../.github/PULL_REQUEST_TEMPLATE/release.md) and the automation scripts in `.github/scripts/`.
494
529
 
495
530
  ### Error Handling Strategy
496
531
 
@@ -521,23 +556,9 @@ This project implements robust, layered error handling across all stages of the
521
556
  }
522
557
  ```
523
558
 
524
- #### Clean Test Output: Suppressing Console Errors in Jest
559
+ #### Test Output and Console Errors
525
560
 
526
- 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`:
527
-
528
- ```js
529
- beforeAll(() => {
530
- jest.spyOn(console, 'error').mockImplementation(() => {});
531
- });
532
- ```
533
-
534
- And registering it in `jest.config.js`:
535
-
536
- ```js
537
- setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
538
- ```
539
-
540
- 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.
541
562
 
542
563
  ## Editor Support: VS Code Extension
543
564
 
@@ -547,4 +568,9 @@ We provide a Visual Studio Code extension for CRL files:
547
568
  - Comment support
548
569
  - Language basics for a better editing experience
549
570
 
550
- For installation instructions and full details, see [extension/README.md](./extension/README.md)
571
+ For installation instructions and full details, see [crl-vscode/README.md](../crl-vscode/README.md)
572
+
573
+ ## License
574
+
575
+ This project is licensed under the Apache License 2.0.
576
+ See the LICENSE file for details.
@@ -1,26 +1,28 @@
1
1
  import { ParserRuleContext } from "antlr4ts/ParserRuleContext";
2
2
  import { AbstractParseTreeVisitor } from "antlr4ts/tree/AbstractParseTreeVisitor";
3
- import { CrlContext, DecisionStatementContext, DecisionBodyContext, WhenBlockContext, BlockBodyContext, ActionStatementContext, RecommendStatementContext, UseStatementContext, TerminologyStatementContext, TerminologyValuesetContext, ActivityStatementContext, ConceptStatementContext, InferredFromBodyContext, InferredFromExpressionContext, InformalOrContext, InformalAndContext, InformalNotContext, AtomContext, WhenWithBodyContext, WhenSingleActionContext, NestedWhenBlockContext, BlockActionContext, BlockStatementContext } from "../grammar/generated/antlr/CRLParser";
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";
4
4
  import { CRLParserVisitor } from "../grammar/generated/antlr/CRLParserVisitor";
5
5
  import type { CRLError } from "../types/errors";
6
- import { ASTNode, Decision, DecisionBody, WhenBlock, BlockBody, ActionStatement, RecommendActivity, UseDecision, Terminology, TerminologyValueset, TerminologySystem, TerminologyCode, Activity, ActivityBody, ActivityRequest, ActivityWith, ActivityBecause, Concept, ConceptReference, InformalAnd, InformalOr, NotExpression, GroupExpression, InferredFromConcept } from "./types";
7
- import type { CRL } from "./types";
8
- type InformalNode = GroupExpression | ConceptReference | InformalAnd | NotExpression | InformalOr;
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";
7
+ import type { CRL, LibraryDeclaration, Include } from "./types";
9
8
  export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> implements CRLParserVisitor<ASTNode> {
10
9
  private readonly errors;
11
10
  protected defaultResult(): ASTNode;
12
11
  getErrors(): CRLError[];
13
12
  protected reportError(message: string, ctx: ParserRuleContext, details?: Record<string, unknown>): void;
14
13
  visitCrl(ctx: CrlContext): CRL;
14
+ visitLibraryStatement(ctx: LibraryStatementContext): LibraryDeclaration;
15
+ visitIncludeStatement(ctx: IncludeStatementContext): Include;
15
16
  visitDecisionStatement(ctx: DecisionStatementContext): Decision;
16
17
  visitDecisionBody(ctx: DecisionBodyContext): DecisionBody;
17
- visitWhenBlock(ctx: WhenBlockContext): WhenBlock;
18
+ visitBranchItem(ctx: BranchItemContext): BranchBlock;
18
19
  visitWhenWithBody(ctx: WhenWithBodyContext): WhenBlock;
19
20
  visitWhenSingleAction(ctx: WhenSingleActionContext): WhenBlock;
20
- visitNestedWhenBlock(ctx: NestedWhenBlockContext): WhenBlock;
21
- visitBlockStatement(ctx: BlockStatementContext): WhenBlock | ActionStatement;
21
+ visitOtherwiseWithBody(ctx: OtherwiseWithBodyContext): OtherwiseBlock;
22
+ visitOtherwiseSingleAction(ctx: OtherwiseSingleActionContext): OtherwiseBlock;
22
23
  visitBlockBody(ctx: BlockBodyContext): BlockBody;
23
- visitBlockAction(ctx: BlockActionContext): ActionStatement;
24
+ visitActionItem(ctx: ActionItemContext): ActionStatement;
25
+ private buildActionGuard;
24
26
  visitActionStatement(ctx: ActionStatementContext): ActionStatement;
25
27
  visitRecommendStatement(ctx: RecommendStatementContext): RecommendActivity;
26
28
  visitUseStatement(ctx: UseStatementContext): UseDecision;
@@ -34,17 +36,35 @@ export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> imp
34
36
  visitActivityWith(ctx: import("../grammar/generated/antlr/CRLParser").ActivityWithContext): ActivityWith;
35
37
  visitActivityBecause(ctx: import("../grammar/generated/antlr/CRLParser").ActivityBecauseContext): ActivityBecause;
36
38
  private parseConceptTypes;
37
- private parseMeta;
39
+ private metaFrom;
38
40
  private parseEvidence;
39
41
  private parseConceptDefinition;
42
+ private buildCodedFrom;
43
+ private parseCode;
44
+ private parseRepresentations;
45
+ visitParameterStatement(ctx: ParameterStatementContext): Parameter;
40
46
  visitConceptStatement(ctx: ConceptStatementContext): Concept;
41
- visitDefinitionConcept(ctx: InferredFromBodyContext): InferredFromConcept;
42
- visitDefinitionLogic(ctx: InferredFromBodyContext): GroupExpression | InferredFromConcept;
43
- visitInferredFromExpression(ctx: InferredFromExpressionContext): InformalNode;
44
- visitInformalOr(ctx: InformalOrContext): InformalOr;
45
- visitInformalAnd(ctx: InformalAndContext): InformalAnd | NotExpression | GroupExpression | ConceptReference;
46
- visitInformalNot(ctx: InformalNotContext): import("./types").InferredFromExpression;
47
- visitConceptAtom(ctx: AtomContext): ConceptReference;
48
- visitGroupExpression(ctx: AtomContext): GroupExpression;
47
+ visitDefinedAsBareRef(ctx: DefinedAsBareRefContext): DefinedAsBareRef;
48
+ visitDefinedAsComposition(ctx: DefinedAsCompositionContext): DefinedAsComposition;
49
+ visitCompositionExpression(ctx: CompositionExpressionContext): CompositionExpression;
50
+ visitSemOr(ctx: SemOrContext): CompositionExpression;
51
+ visitSemAnd(ctx: SemAndContext): CompositionExpression;
52
+ visitSemNot(ctx: SemNotContext): CompositionExpression;
53
+ visitCompositionRef(ctx: CompositionRefContext): CompositionRef;
54
+ visitCompositionGroup(ctx: CompositionGroupContext): CompositionGroup;
55
+ visitDefinedAsBody(ctx: DefinedAsBodyContext): DefinedAsDefinition;
56
+ visitDefinitionIsBody(ctx: DefinitionIsBodyContext): DefinitionIsDefinition;
57
+ visitNarrative(ctx: NarrativeContext): NarrativeClause;
58
+ visitNConceptRef(ctx: NConceptRefContext): NConceptRef;
59
+ visitNQuantity(ctx: NQuantityContext): Quantity;
60
+ visitNWord(ctx: NWordContext): NWord;
61
+ visitNArgGroupElement(ctx: NArgGroupElementContext): NDisjunction | NConjunction | NConceptRef | Quantity;
62
+ visitQuantity(ctx: QuantityContext): Quantity;
63
+ visitArgGroup(ctx: ArgGroupContext): NDisjunction | NConjunction | NConceptRef | Quantity;
64
+ visitArgDisjunction(ctx: ArgDisjunctionContext): NDisjunction;
65
+ visitArgConjunction(ctx: ArgConjunctionContext): NConjunction;
66
+ visitArgSingleton(ctx: ArgSingletonContext): NConceptRef | Quantity | NDisjunction | NConjunction;
67
+ visitAVConceptRef(ctx: AVConceptRefContext): NConceptRef;
68
+ visitAVQuantity(ctx: AVQuantityContext): Quantity;
69
+ visitAVNestedGroup(ctx: AVNestedGroupContext): NDisjunction | NConjunction | NConceptRef | Quantity;
49
70
  }
50
- export {};