|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.cmu.cs.crystal.bridge.LatticeElementOps<LE>
public class LatticeElementOps<LE extends LatticeElement<LE>>
This class is not to be used in new Crystal analyses and is kept for
older projects only.
This class provides generic lattice operations for
LatticeElement
implementations.
This facilitates using classes implementing LatticeElement
in Crystal flow analyses.
Constructor Summary | |
---|---|
LatticeElementOps(LE bottom)
Use create(LatticeElement) for more compact syntax. |
Method Summary | ||
---|---|---|
boolean |
atLeastAsPrecise(LE info,
LE reference,
ASTNode node)
Compares analysis information for precision; more precisely, determines whether the first argument is at least as precise as the second. |
|
LE |
bottom()
Responsible for returning a lattice that represents no knowledge. |
|
LE |
copy(LE original)
Creates a new deep copy of the given analysis information. |
|
static
|
create(LE bottom)
Create lattice operations for a given bottom element. |
|
LE |
join(LE someInfo,
LE otherInfo,
ASTNode node)
Carries out a join on this lattice and another lattice. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public LatticeElementOps(LE bottom)
create(LatticeElement)
for more compact syntax.
Create lattice operations for a given bottom element.
bottom
- Bottom element to be returned by bottom()
.Method Detail |
---|
public static <LE extends LatticeElement<LE>> LatticeElementOps<LE> create(LE bottom)
LE
- Analysis knowledge implementation class.bottom
- Bottom element to be returned by bottom()
.
public boolean atLeastAsPrecise(LE info, LE reference, ASTNode node)
IAbstractLatticeOperations
atLeastAsPrecise
in interface IAbstractLatticeOperations<LE extends LatticeElement<LE>,ASTNode>
atLeastAsPrecise
in interface ILatticeOperations<LE extends LatticeElement<LE>>
info
- Analysis information to be compared against reference
reference
- the other LE to compare info
with.node
- ASTNode where the two paths were originally forked apart (e.g., if,
while, try, switch, etc.) or null
if this comparison occurs on a "dummy" node.
true
if the first argument is at least as precise as the
second; false
otherwise, including if the two arguments are incomparable.public LE bottom()
IAbstractLatticeOperations
bottom
in interface IAbstractLatticeOperations<LE extends LatticeElement<LE>,ASTNode>
bottom
in interface ILatticeOperations<LE extends LatticeElement<LE>>
public LE copy(LE original)
IAbstractLatticeOperations
copy
in interface IAbstractLatticeOperations<LE extends LatticeElement<LE>,ASTNode>
copy
in interface ILatticeOperations<LE extends LatticeElement<LE>>
original
- analysis information to be copied.
public LE join(LE someInfo, LE otherInfo, ASTNode node)
IAbstractLatticeOperations
join
in interface IAbstractLatticeOperations<LE extends LatticeElement<LE>,ASTNode>
join
in interface ILatticeOperations<LE extends LatticeElement<LE>>
someInfo
- LE to join with otherInfo
.otherInfo
- The other LE to join with, do not modify.node
- ASTNode where the two paths were originally forked apart (e.g., if,
while, try, switch, etc.) or null
if this join occurs on a "dummy" node.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |