|
||||||||||
| 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 JoinLabelpublic Label minus(Label L)
Label
minus in interface Labelminus in class Label_cpublic boolean isBottom()
LabelFor example, a JoinLabel with no components would return true for this method.
isBottom in interface LabelisBottom in class Label_cpublic boolean isComparable()
LabelFor example, an UnknownLabel is not comparable to others, neither is a VarLabel. Most other labels are.
isComparable in interface Labelpublic boolean isMeetable()
LabelFor example, UnknownLabel returns false. Most other Labels return true.
isMeetable in interface LabelisMeetable in class Label_cpublic boolean isCanonical()
Label_c
isCanonical in interface ParamisCanonical in class Label_cpublic boolean isCovariant()
Label
isCovariant in interface LabelisCovariant in class Label_cpublic boolean hasVariables()
Label
hasVariables in interface LabelhasVariables in class Label_cpublic java.util.Collection variables()
Label
variables in interface Labelvariables in class Label_cpublic boolean isRuntimeRepresentable()
isRuntimeRepresentable in interface ParamisRuntimeRepresentable in class Label_cpublic Label labelOf()
Label
labelOf in interface LabellabelOf in class Label_c
public Label subst(LabelSubstitution substitution)
throws polyglot.types.SemanticException
Label
subst in interface Labelsubst in class Label_cpolyglot.types.SemanticException
public Label subst(UID uid,
Label L)
Label
subst in interface Labelsubst in class Label_cpublic Label fold(UID uid)
Label
fold in interface Labelfold in class Label_cpublic JoinLabel components(java.util.Collection c)
public java.util.Collection components()
Label
components in interface Labelcomponents in class Label_c
public Label bound(VarMap ub,
java.util.Set visited)
Label
bound in interface Labelbound in class Label_c
public boolean leq_(Label L,
LabelEnv env)
Label
leq_ in interface Labelleq_ in class Label_cpublic Label simplify()
Label
simplify in interface Labelsimplify in class Label_c
public Label meet_(Label L,
PrincipalHierarchy ph)
Label
meet_ in interface Labelmeet_ in class Label_cpublic java.lang.String componentString()
componentString in interface LabelcomponentString in class Label_c
public void translate(polyglot.types.Resolver c,
polyglot.util.CodeWriter w)
translate in interface Labeltranslate in class Label_c
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||