This directory contains the code necessary to parse and evaluate
constraint and preference expressions.  The classes are not
dependent on any IDL definition; in fact, they're not dependent
on CORBA at all.

The information necessary for type checking is obtained via the 
PropertySchema interface.  When an expression is being evaluated,
the property values are obtained via the PropertySource interface.
Property values are represented by the Value class.

One side-effect of this design is that property values must be
translated into Value objects, incurring some performance overhead.

The Constraint class takes care of the parsing and evaluation of
constraint expressions.  The Preference class handles the parsing of
preference expressions as well as the execution of those operations.
