Skip to content

Unify language definitions #652

@Xanewok

Description

@Xanewok

At the moment we have three separate ways to define the language:

  1. YAML spec (aka v0)
  2. DSL v1
  3. 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:

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions