Generating a non-base langauge.

I want to define a meta language that helps me define my DSL.

For Example:

Car Definition Langauge

creates a

Car Langauge

creates a

Base Langauge

However, I'm rather new to MPS so no doubt making some stupid assumptions.

What I am trying to do is generate a 'jetbrains.mps.bootstrap.structureLangauge'. The idea being I can generate all the Concept definitions for the 'Car Langauge' from the 'Car Definition Langauge'.

However while I can define macro's (Ctrl-Shift-M) in the Base Langauge Editor, I can't do it on the Structured Langauge Editor.

So could you please tell me where I am making my dumb mistake

Thanks!

3 comments
Comment actions Permalink

I want to define a meta language that helps me define

my DSL.

very cool :-)

However while I can define macro's (Ctrl-Shift-M) in

the Base Langauge Editor, I can't do it on the

Structured Langauge Editor.

To edit a templates model (one with stereotype "templates") MPS loads specific editor.

That templates editor is generated using original editor as input and adds some layout features and cell actions (like ctrl-shift-M).

You can find templates editor in baseLanguage, but there is no such in structure language.

Its not difficult to create one for structure language. I can explain "how to..." in more details after new EAP build is out next week.

Igor.

0
Comment actions Permalink

OK Igor the new EAP build is out, time to spill the beans!

0
Comment actions Permalink

Hi

Unfortunately I wasn't able to do that in mps234 :-(

But even if it was possible... After more study of your idea I think that generating of dsl definition form some meta-dsl is not very practical (in mps).

First, mps currently doesn't explicitly support generation of models.

Second, if you (with certain tricks) have structure model generated, it wont be useful without editors. The moment you have developed editors, you can't just re-generate structure because generator doesn't preserve unique id of nodes and all references on concepts, property declarations etc. will be broken.

It seems that my first response was misleading, sorry.

Igor.

0

Please sign in to leave a comment.