Notes on the parser solution set The parser solution set is actually a solution set for the interpreter, with all the 'interpret' code removed. If you wish to use this solution set in building your interpreter, you get (for free!) the necessary changes to the symbol table. You also get exceptions declared as thrown in exactly those functions which (in the interpreter solution set) actually threw them. In other words, the "header" of an interpret() method tells you exactly what exceptions are thrown in the body of that method, even though we've removed the body of the method. The solution code uses BigIntegers to handle arbitrary-length integers, a feature which is optional.