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.