At the moment we have three separate ways to define the language:
- YAML spec (aka v0)
- DSL v1
- DSL v2
Over the time, the definitions became slightly divergent, which is problematic since there are now different sources of truth. We plan to migrate to DSL v2 (#638, #637), however we need to settle on the final definition in the process. This issue should track any divergences and how we plan to resolve them.
It's worth noting that unifying the definition in a specific way (e.g. by re-introducing the List suffix for lists in DSL v2) does not prevent us from rolling back the unifying change for (all of the) language definition at some point; we only care about unification here.
The main goal is to agree on the unified, correct definition using the least amount of effort. Once we have that, we can proceed with #637, #638, and then be free to change or update the definition only once.
Known differences
These change the CST shape for our parser as shown in #650, so we should tackle most (if not all) of these until we can proceed with that PR.
Recent pull requests that have helped with this:
At the moment we have three separate ways to define the language:
Over the time, the definitions became slightly divergent, which is problematic since there are now different sources of truth. We plan to migrate to DSL v2 (#638, #637), however we need to settle on the final definition in the process. This issue should track any divergences and how we plan to resolve them.
It's worth noting that unifying the definition in a specific way (e.g. by re-introducing the
Listsuffix for lists in DSL v2) does not prevent us from rolling back the unifying change for (all of the) language definition at some point; we only care about unification here.The main goal is to agree on the unified, correct definition using the least amount of effort. Once we have that, we can proceed with #637, #638, and then be free to change or update the definition only once.
Known differences
(Yul)Statementordered choice definition is different (affects error recovery) (done in Fix some language definitions in DSL v1/v2 #653)Optional(NonEmpty(List))in v2 where we do in v1 #668Optionalinline:{Uint,Int,Fixed,Ufixed}Keywordfrom DSL v2 to v0/v1 #662{Error,Event}ParametersDeclarationdefined in v2 but not in v0/v1 (done in Fix some language definitions in DSL v1/v2 #653){Hex,Decimal}NumberExpressionfrom v2 into v0/v1 spec #657These change the CST shape for our parser as shown in #650, so we should tackle most (if not all) of these until we can proceed with that PR.
Recent pull requests that have helped with this: