abstract class SemanticType extends SemanticObject
A Scala-level type to be used in a RealizedType
See also SemanticOperator
SemanticType's are closed under subtypes and quotients by using valid and normalform. In other words, the triple (U, valid, normalform) forms a partial equivalence relation on a Scala type U.
For technical reasons, U is fixed as the type Any (Scala cannot type check enough to make the overhead worthwhile.) Instead, type-safety-supporting syntax is offered wherever reasonable, see also RSemanticType.
- Source
- SemanticType.scala
- Alphabetic
- By Inheritance
- SemanticType
- SemanticObject
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new SemanticType()
Abstract Value Members
-
abstract
def
asString: String
string representation of this type (should be toString, but we want to force people to implement this)
-
abstract
def
fromString(s: String): Any
converts strings into values; pre: s == toString(u) for some u with valid(u) == true
-
abstract
def
toString(u: Any): String
converts values into strings; pre: valid(u) == true
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def =>:(args: List[SemanticType]): SemOpType
-
def
=>:(arg: SemanticType): SemOpType
enables the notation (a,b) =>: c for function types
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
embed(into: SemanticType): Option[Unary]
returns a canonical embedding from this type into some other type only the identity of this type by default, override as needed
-
def
enumerate: Option[Iterator[Any]]
- returns
a fresh iterator over values of this type
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
escapedLiteral(begin: String, end: String): Some[AsymmetricEscapeLexer]
convenience method to construct a lexer for this type
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
id: Unary
the identify function of this type
-
def
init: Unit
errors in Java initializers are hard to debug; therefore, objects should put initialization code here, which will be called by MMT empty by default, may throw errors
errors in Java initializers are hard to debug; therefore, objects should put initialization code here, which will be called by MMT empty by default, may throw errors
- Definition Classes
- SemanticObject
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
lex: Option[LexFunction]
- returns
a LexerExtension that is to be used when this type is in scope
-
lazy val
mpath: MPath
the MMT URI of this object, derived from its Scala name: scala://package?name
the MMT URI of this object, derived from its Scala name: scala://package?name
- Definition Classes
- SemanticObject
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
normalform(u: Any): Any
the equivalence relation (given as a normal form conversion) on the semantic type used to obtain quotient types pre: valid(u) == true identity by default
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
quotedLiteral(key: String): Some[AsymmetricEscapeLexer]
convenience method to construct a lexer for this type
-
def
subtype(of: SemanticType): Boolean
subtype relation only reflexivity by default, override as needed invariant: if true, embed must return identity
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- SemanticType → AnyRef → Any
-
def
valid(u: Any): Boolean
the predicate on the semantic type used to obtain subtypes
the predicate on the semantic type used to obtain subtypes
true by default
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()