Comment on I had to design a simple general purpose language for university, so I tried creating "ZoomerScript" with Jetbrains MPS

<- View Parent
prof@infosec.pub ⁨8⁩ ⁨months⁩ ago

MPS uses projectional editing. Which means for the user that everything you do is free from concrete syntax, and you basically edit a graphical representation of that abstract syntax tree directly, while it looks like you’re in a textual editor.

So I define abstract nodes that may have certain relationships with each other and then give them a representation in the editor (which is what you see in the screenshot). These nodes may also have generators assigned to them, which use map/reduce operations to generate whatever source code I desire. It usually includes its own bit of code, and triggers code generation of its children as well.

I hope that was somehow clear 😄

source
Sort:hotnewtop