textgen error: 'No textgen for jetbrains.mps.lang.smodel.structure.*'


I have migrated my languages to MPS 2017.2.1. However, I have a problem to build one them because of following class/function:

I am getting following error:

textgen error: 'No textgen for jetbrains.mps.lang.smodel.structure.SConceptType' in [type] SConceptType 

textgen error: 'No textgen for jetbrains.mps.lang.smodel.structure.Concept_IsSubConceptOfOperation' in [operation] Concept_IsSubConceptOfOperation 

textgen error: 'No textgen for jetbrains.mps.lang.smodel.structure.Concept_IsExactlyOperation' in [operation] Concept_IsExactlyOperation 

Failed to generate text for ExpressionRestrictions.java

And this is how the generated text looks like:

Any suggestions?

Comment actions Permalink

I copied the class to constraints aspect and it works now. I am not sure why, in MPS 2017.1 it was working also outside constraints.

Comment actions Permalink

In 2017.2, we employ Generation Plans for some of our aspects. These plans list exact set of languages and generators to apply to a given model. For structure aspect (my guess is ExpressionRestrictions class resides in structure aspect), there's no lang.smodel in the plan, therefore, constructs of the language are not reduced and get right to the very end, and TextGen has no idea what to do with them. We didn't expect smodel code inside a structure model (generally, it's a bad idea), therefore, we didn't include lang.smodel into structure's aspect plan. For constrains aspect, however, we do expect use of lang.smodel and the language is in the plan for constraints aspect, that's why the class works if moved to another aspect.


Please sign in to leave a comment.