I'm extending BaseVariableDeclaration from baseLanguag ein my DSL. I'd like to have some scoping logic that allows me to limit the possible types the user of my DSL can select as a type.
I was surprised to see that "type" is defined as a child of BaseVariableDeclaration, and not a reference. What is the reasoning behind it?
What way do you suggest to implement some domain-specific scoping in my concept for the type child. As I see it, I cannot really use the MPS scoping mechanisms since this works for references only.
I was thinking using a "node substitution action" to achieve it, but I'm reluctant since I read that 3.4 marks this kind of action as deprecated and replaces it with the new Transformation Menu Language, which at least sounds to me has different goals than what I'm trying to do...?