|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectpolyglot.ext.jl.types.TypeObject_c
jif.types.Label_c
jif.types.JoinLabel_c
An implementation of the JoinLabel
interface.
Field Summary |
Fields inherited from class polyglot.ext.jl.types.TypeObject_c |
position, ts |
Constructor Summary | |
protected |
JoinLabel_c()
|
|
JoinLabel_c(JifTypeSystem ts,
polyglot.util.Position pos,
java.util.Collection components)
|
Method Summary | |
Label |
bound(VarMap ub,
java.util.Set visited)
Gets the upper bound of this label. |
java.util.Collection |
components()
Retrieve the collection of components. |
JoinLabel |
components(java.util.Collection c)
|
java.lang.String |
componentString()
|
Label |
flatten()
|
Label |
fold(UID uid)
Substitutes any occurences of |
boolean |
hasVariables()
Does this label (or any of its components) contain any label variables? |
boolean |
isBottom()
Is this label equivalent to bottom? |
boolean |
isCanonical()
By default labels are canonical. |
boolean |
isComparable()
Is this label comparable to other labels? |
boolean |
isCovariant()
Is this label covariant? |
boolean |
isMeetable()
Can this label be used in a meet operation with another label? |
boolean |
isRuntimeRepresentable()
|
Label |
labelOf()
Gets labelOf this label. |
boolean |
leq_(Label L,
LabelEnv env)
Implementation of leq, should only be called by JifTypeSystem |
Label |
meet_(Label L,
PrincipalHierarchy ph)
Implementation of the meet operation, should only be called by JifTypeSystem |
Label |
minus(Label L)
Returns a copy of this Label, with the Label L removed from the components. |
Label |
simplify()
Returns a simplified copy of this Label. |
Label |
subst(LabelSubstitution substitution)
Accepts a LabelSubstitution and returns the result of substituting according to the given LabelSubstitution. |
Label |
subst(UID uid,
Label L)
Substitutes any occurences of |
void |
translate(polyglot.types.Resolver c,
polyglot.util.CodeWriter w)
|
java.util.Collection |
variables()
The collection of variables contained by this label (or any of its components). |
Methods inherited from class jif.types.Label_c |
description, description, isEnumerable, isInvariant, isSingleton, isTop, join, join, meet, singletonComponent, toJava, toString |
Methods inherited from class polyglot.ext.jl.types.TypeObject_c |
copy, equals, equalsImpl, position, typeSystem |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface jif.types.Label |
description, description, isEnumerable, isInvariant, isSingleton, isTop, join, join, meet, singletonComponent, toJava |
Methods inherited from interface polyglot.types.TypeObject |
equalsImpl, position, typeSystem |
Methods inherited from interface polyglot.util.Copy |
copy |
Constructor Detail |
protected JoinLabel_c()
public JoinLabel_c(JifTypeSystem ts, polyglot.util.Position pos, java.util.Collection components)
Method Detail |
public Label flatten()
flatten
in interface JoinLabel
public Label minus(Label L)
Label
minus
in interface Label
minus
in class Label_c
public boolean isBottom()
Label
For example, a JoinLabel with no components would return true for this method.
isBottom
in interface Label
isBottom
in class Label_c
public boolean isComparable()
Label
For example, an UnknownLabel is not comparable to others, neither is a VarLabel. Most other labels are.
isComparable
in interface Label
public boolean isMeetable()
Label
For example, UnknownLabel returns false. Most other Labels return true.
isMeetable
in interface Label
isMeetable
in class Label_c
public boolean isCanonical()
Label_c
isCanonical
in interface Param
isCanonical
in class Label_c
public boolean isCovariant()
Label
isCovariant
in interface Label
isCovariant
in class Label_c
public boolean hasVariables()
Label
hasVariables
in interface Label
hasVariables
in class Label_c
public java.util.Collection variables()
Label
variables
in interface Label
variables
in class Label_c
public boolean isRuntimeRepresentable()
isRuntimeRepresentable
in interface Param
isRuntimeRepresentable
in class Label_c
public Label labelOf()
Label
labelOf
in interface Label
labelOf
in class Label_c
public Label subst(LabelSubstitution substitution) throws polyglot.types.SemanticException
Label
subst
in interface Label
subst
in class Label_c
polyglot.types.SemanticException
public Label subst(UID uid, Label L)
Label
subst
in interface Label
subst
in class Label_c
public Label fold(UID uid)
Label
fold
in interface Label
fold
in class Label_c
public JoinLabel components(java.util.Collection c)
public java.util.Collection components()
Label
components
in interface Label
components
in class Label_c
public Label bound(VarMap ub, java.util.Set visited)
Label
bound
in interface Label
bound
in class Label_c
public boolean leq_(Label L, LabelEnv env)
Label
leq_
in interface Label
leq_
in class Label_c
public Label simplify()
Label
simplify
in interface Label
simplify
in class Label_c
public Label meet_(Label L, PrincipalHierarchy ph)
Label
meet_
in interface Label
meet_
in class Label_c
public java.lang.String componentString()
componentString
in interface Label
componentString
in class Label_c
public void translate(polyglot.types.Resolver c, polyglot.util.CodeWriter w)
translate
in interface Label
translate
in class Label_c
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |