I'm trying to create new languages in MPS that can be used instead of the core languages (found in jetbrains.mps.lang.*).
At the moment I have created a simple replacement for the structure language that allows for defining concepts. The language has a concept called Type that extends ConceptDeclaration, and another concept, Attribute, for defining properties of the Type. The Type concept seems to be working, but I have not found a way for my Attribute to be used instead of the PropertyDeclaration that is defined in MPS' AbstractConceptDeclaration.
If I define a concept with a property using my own structure language I end up with an error on the property: "Error: property 'name' is already declared in null". The error seems to originate from check_PropertyDeclaration that is part of jetbrains.mps.lang.structure's typesystem. If I have a collection of PropertyDeclaration in my structure language, how do I actually turn them into properties in the languages I define using my language?
Also, I wanted to experiment using the structure language that is found in MPS, but have not found any way to do this. All of the core languages seems to be read-only, and I haven't found a way to copy languages. Is there a way to copy languages in MPS?
Any tips on how to proceed are very much appreciated. Thanks!
Example project: MyBaseLanguages.zip (190KB)