edu.vub.at.objects.grammar
Interface DefType


 DefType

The public interface to a type tag definition AG element. Example: deftype name where name is a valid symbol.
A type tag can have multiple supertypes: deftype c <: a, b where a and b must evaluate to type tags

Author:
tvcutsem

Method Summary
 Table parentTypeExpressions()
          A type can have zero, one or more parent types.
 Symbol typeName()
          The name of the type to be defined must be a literal symbol Example: `{ deftype foo }.statements[1].typeName == `foo
 
Methods inherited from interface edu.vub.at.objects.AbstractGrammar
freeVariables
 
Methods inherited from interface edu.vub.at.objects.Object
super
 

Method Detail

typeName

Symbol typeName()
The name of the type to be defined must be a literal symbol Example: `{ deftype foo }.statements[1].typeName == `foo

Returns:
the name of the type

parentTypeExpressions

Table parentTypeExpressions()
A type can have zero, one or more parent types. Example: `{ deftype foo <: bar, o.baz() }.statements[1].parentTypeExpressions == `[ bar, o.baz() ]

Returns:
a table with expressions that each must evaluate to a type