💻 Lab: designing and implementing the Dialogue DSL concrete syntax

In this lab we will design a concrete syntax for the Dialogue DSL. The proposed specifications of this DSL is available on a dedicated page: 🗒️ Resource: Dialogue DSL specifications.

We will continue the simulated iterative process for the DSL design and implementation, hence the specifications describe different versions of the DSL. To make sure you can progress on different versions in parallel, you will have to continue working on separate Langium projects for each version.

1. Concrete syntax for the Dialogue DSL V1

In this first part we focus on the V1 of the Dialogue DSL.

1.1. Concrete syntax design

  • Propose an concrete syntax design for this DSL using a mockup.

  • Identify token types in your mockup.

  • Create annotated mockups for each part of your design.

1.2. Concrete syntax implementation

In the dialogue-dsl-v1 project:

  1. Implement your concrete syntax in packages/language/src/dialogue-dsl-v1.langium,

  2. Call the Langium Generator and compile the project.

1.2.1. Testing the concrete syntax

TODO

2. Concrete syntax for the Dialogue DSL V2

In this first part we focus on the V2 of the Dialogue DSL.

2.1. Concrete syntax design

Using the concrete syntax design prepared for the V1 of the Dialogue DSL as a starting point, propose an concrete syntax design for the V2.

2.2. Concrete syntax implementation

In the dialogue-dsl-v2 project:

Using the implementation of the concrete syntax of the V1 of the Dialogue DSL as a starting point, implement the concrete syntax of the V2.

2.2.1. Testing the concrete syntax by manually constructing ASTs

TODO