**Class Summary** |

**Cases** |
An object of type Cases stores a list of "case values" that is generated
while an expression is being evaluated using the routine
Expression.getValuesWithCases(). |

**ConditionalExpression** |
A "conditional expression" is an expression using the ? operator. |

**Constant** |
A Constant is a Value that represents a constant real number. |

**ExpressionProgram** |
An ExprssionProgram represents a mathematical expression such as "3" or
"sin(x^2)", stored in the form of a program for a stack machine. |

**Fraction** |
An immutable class representing fractions as pairs of longs. |

**NumUtils** |
This class provides a few static functions for converting real numbers to
strings and strings to real numbers. |

**Parser** |
A Parser can take a string and compile it into an ExpressionProgram. |

**ParserContext** |
A ParserContext holds all the state data for a parsing operation, including
the string that is being parsed, a pointer to the current position in that
string, and the most recently parsed token from the string. |

**SimpleFunction** |
An object belonging to this class is a function of one or more variables. |

**StackOfDouble** |
A standard stack of values of type double, which can grow to arbitrary size. |

**StandardFunction** |
This class exists to associate standard functions, such as sin and abs, with
their names. |

**SymbolTable** |
A symbol table contains MathObjects, associating them with their names. |

**ValueMath** |
A ValueMath object is an easy way to create Value objects that are computed
from other Value objects. |

**Variable** |
A Variable is a Value object whose value can be changed. |