The `calculator.eval` module defines an `Evaluator` visitor for the AST hierarchy.
The AST's class hierarchy is defined inside the `calculator.ast` module. An abstract visitor is defined inside the `calculator.ast.visit` package.