update all the time?

Hey there..

we're trying to build a solution in mps, where the syntax is like this (very short)

expr ::= 'd'+expr

  |  expr # expr

  |  n

(and so on)

we have started by making a super node called expression, and then creating a concept which extends expression, for each way to make an expr. Dice ('d'+expr) and numer ( n ).

the expression_editor is like : %Expr% and links to itself.

the Dice_editor is like: 'd'+%a link to the Expression_concept%..

when we try it in the solution, we're able to select either Dice or Number, but when we choose one (Dice).. we have to update All java classes before a 'd' appears.. and then again we can choose (for instans a number) but then again have to update all java classes.. this isn't exactly agile! ;-)

any comments about this?.. are we doing it all wrong ?

is there an code example of something implementing a syntax??

Thanks in advance.. ;-)

Christian

ps. if you don't understand.. plz tell. and I'll try to explain in more details..

2 comments
Comment actions Permalink

Hello, Christian,

Christian Svarrer wrote:

Hey there..

we're trying to build a solution in mps, where the syntax is like

this (very short)

expr ::= 'd'+expr |  expr # expr |  n (and so on)

we have started by making a super node called expression, and then

creating a concept which extends expression, for each way to make an

expr. Dice ('d'+expr) and numer ( n ). the expression_editor is like

: %Expr% and links to itself. the Dice_editor is like: 'd'+%a link to

the Expression_concept%.. when we try it in the solution, we're able

to select either Dice or Number, but when we choose one (Dice).. we

have to update All java classes before a 'd' appears.. and then again

we can choose (for instans a number) but then again have to update

all java classes.. this isn't exactly agile! ;-)

It looks like a bug in editor. Could you please send me you project and

I will look is it really wrong. BTW if editor after you action isn't

updated you can try to press F5 instead of reloading classes.

any comments about this?.. are we doing it all wrong ? is there an

code example of something implementing a syntax??

You can look at agreement language in %MPS_HOME%/projects directory. It

uses formulaLanguage which is common expression language for DSLs like

you. May be it will work well.

Konstantin.

0
Comment actions Permalink

Thank you Christian,

but

it's quite mysteriously... I tried do do the same thing using the same build, it worked just fine... Maybe you'll send please your project to Cyril.Konopko at jetbrains dot com, I'll look and see what's wrong either with MPS or with your project.

0

Please sign in to leave a comment.