A learning project following the JetBrains MPS Calculator language tutorial — the classic introduction to language-oriented programming with the Meta Programming System.
This repository captures the early steps of the tutorial: a custom language jetbrains.mps.calculator is defined with a single rootable Calculator concept, a minimal projectional editor for it, and a sandbox model containing one Calculator instance. The structure, editor, behavior, constraints, typesystem, and generator aspects are scaffolded, along with the MPS-generated sources and classes.
.mps/ # MPS project metadata
languages/jetbrains.mps.calculator/
├── jetbrains.mps.calculator.mpl # Language module descriptor
├── models/
│ ├── structure.mps # Concept definitions (Calculator)
│ ├── editor.mps # Projectional editor cells
│ ├── behavior.mps # Behavior aspect (scaffold)
│ ├── constraints.mps # Constraints aspect (scaffold)
│ └── typesystem.mps # Typesystem aspect (scaffold)
├── generator/ # Generator templates and generated code
└── sandbox/ # Sandbox solution with a Calculator instance
- JetBrains MPS (built with the MPS 3.x line; recent MPS versions may require a project migration)
- Open the repository root as a project in JetBrains MPS.
- Explore the
jetbrains.mps.calculatorlanguage aspects (structure, editor, etc.). - Open the sandbox solution to see the
Calculatorinstance rendered in the projectional editor.
This is a legacy tutorial exercise from 2018, preserved as-is for reference. It implements only the initial steps of the MPS calculator tutorial and is not maintained.
