SCalc (simple|symbolic) calculator library

SCalc is a library that provides elements for symbolic calculus and (relatively) fast evaluation. It is meant to be a simple calculus language, with support for variables and user-defined functions. Typical entries that the parser understands look like:

    1 + 1
    x = 2
    1 + x
    sin(x)
    f : x -> x**2
    f(3)
    f(x)

Its main entry points are SCalc::Session, an object that holds a complete session, keeping track of defined variables, SCalc::ParserResult, the return value for an evaluation and its children, SCalc::Expression, SCalc::FuncDef and SCalc::SyntaxError.