Problem
1. What is the difference between a term and a factor? Why do we need both concepts?
2. Why does the expression evaluator use mutual recursion?
3. What happens if you try to evaluate the illegal expression 3+4*)5? Specifically, which method throws an exception?