Package edu.cmu.cs.crystal.util

Several utilities that other analysis writers have found useful.

See:
          Description

Interface Summary
CollectionMethods.Mapping<I,O> Interface used for the method in a map call.
Copyable<C extends Copyable<C>>  
ExtendedIterator<T> This interface extends regular iterators with the ability to replace the last element seen, using ExtendedIterator.replace(Object).
Freezable<T> An interface for mutable objects that can be made immutable by freezing them.
Lambda<I,O> A 'lambda,' or first-class function, that takes one argument and returns one argument.
Lambda2<I1,I2,O> A 'lambda,' or first-class function, that takes two arguments and returns one argument.
Lambda3<T1,T2,T3,O> A lambda with three arguments.
SimpleMap<K,V> That's right, a really simple map interface.
TypeHierarchy  
 

Class Summary
Box<T> Holds a boxed value.
CollectionMethods  
ConsList<T> An immutable cons list.
Option<T>  
Pair<A,B>  
Triple<F,S,T> A n-tuple where n is three.
Utilities Assorted utility methods
VOID An uninhabitable type
 

Package edu.cmu.cs.crystal.util Description

Several utilities that other analysis writers have found useful. Static analyses are functional in nature, which can make them difficult to write in an object-oriented setting (especially if you have formalized your system as inference rules). This package provides classes that may make it easier.