Conversation
…e branch) (#1637) Fixes for AST classes. Add parse tree and AST inspectors.
|
Formatting check succeeded! |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1640 +/- ##
============================================
- Coverage 65.91% 65.65% -0.27%
Complexity 1645 1645
============================================
Files 478 480 +2
Lines 27664 27776 +112
Branches 5499 5523 +24
============================================
Hits 18235 18235
- Misses 7104 7216 +112
Partials 2325 2325 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
I don't have any comments on the code (haven't looked at it), but I'm curious -- what's the motivation/vision for this CQL AST? |
Thanks for additional insight. That's helpful. It's been a while since I've written any significant CQL-to-ELM code (probably nearing a decade). I didn't realize the ELM model itself caused so much complexity -- I assumed it was mainly the type inference, function resolution, and other various CQL magic, but it sounds like that stuff is just shifting to the AST generator now. That said, ELM was based on Health e-Decisions, so I shouldn't be surprised that conforming to that schema might introduce additional complications. There's not much to argue with here: better separation of concerns, better testing, better consistency across versions, better IDE tools, and easier translation into other target formats. I like it. One small note: I wanted to see what the AST looks like, so I built it and ran the CQL playground. In the process of doing that, I found that the CQL-to-ELM UI README needs to be updated. It currently says to browse to http://localhost:3000/cql-to-elm-ui, but that should be http://localhost:3000/clinical_quality_language/playground now. |
|
Hi @cmoesel, sorry the README got outdated after we deployed the UI to cqframework.org. Now it's fixed. |
Is that "I like the idea" or "I like the AST implementation?" |
I like the idea. I haven't looked at the implementation closely enough to comment on that. Is there any documentation that lists all of the possible AST nodes and their relationships? |
|
|
@cmoesel - Docs updated. A few key ones: |
|
I don't disagree with the AST approach here, there are some good arguments there, but I disagree with the premise of number 3, where are you seeing that "CQL has begun to evolve independently of ELM"? I don't think that's true at all, Every change that has been proposed in CQL 2.0 has a corresponding change in the ELM representation. I don't think it changes the thrust of the arguments, but I want to clarify the statement. |
|
@brynrhodes - I don't see that in the AST docs anywhere? Was there some particular statement that needed to be clarified? |
|
It's not in the docs so far as I know, I was referring to the comment thread above (#1640 (comment)) |
|


SystemModelInfoProvider.FilesToStringsTaskGradle task with codegen enabling file contents to be inlined at compile time and used as strings (useful for e.g. inliningsystem-modelinfo.xmlforSystemModelInfoProvider-in-JS).LoadTestResourcesTaskGradle task with multiplatform codegen enabling access to test resources in commonTest.