**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, such as "(x > 0)? x : -x"
or "x <> 3 ? 1 / (x - 3)". |

**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. |

**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. |