MPS 2021.2 Help

SModel language Types

Types

SModel language has the following types:

  • node<ConceptType> - corresponds to an AST node (e.g. node<IfStatement> myIf = ...)

  • nlist<ConceptType> - corresponds to a list of AST nodes (e.g. nlist<Statement> body = ...)

  • node-ptr<ConceptType> - represents a pointer to a node, can be resolved into a node<ConceptType> when provided a repository

  • model - corresponds to an instance of the MPS model

  • model-ptr - represents a pointer to a model, can be resolved into a model when provided a repository

  • search scope - corresponds to a search scope of a node's reference, i.e. the set of allowed targets for the reference

  • reference - corresponds to an AST node that represents reference instance

  • concept<Concept> - corresponds to the org.jetbrains.mps.openapi.language.SConcept concept that represents a concept (e.g. concept<IfStatement> = concept/IfStatement/)

  • conceptNode<Concept> - (deprecated) corresponds to an AST node that represents a concept (e.g. conceptNode<IfStatement> = conceptNode/IfStatement/)

  • enummember<Enum Data Type> - corresponds to an AST node that represents an enumeration member (e.g. enummember<FocusPolicy> focus = ...)

Most of the SModel language operations are applicable to all of these types.

Last modified: 23 March 2021