SModel language Types
Types
SModel language has the following types:
node<ConceptType> - corresponds to an AST node (for example, node<IfStatement> myIf = ...)
nlist<ConceptType> - corresponds to a list of AST nodes (for example, 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, that is, the set of allowed targets for the reference
reference - corresponds to an AST node that represents a reference instance
association - represents a definition of a reference link
concept<Concept> - corresponds to the org.jetbrains.mps.openapi.language.SConcept concept that represents a concept (for example, concept<IfStatement> = concept/IfStatement/)
conceptNode<Concept> - (deprecated) corresponds to an AST node that represents a concept (for example, conceptNode<IfStatement> = conceptNode/IfStatement/)
enummember<Enum Data Type> - corresponds to an AST node that represents an enumeration member (for example, enummember<FocusPolicy> focus = ...)
Most of the SModel language operations are applicable to all of these types.