Lab #6: Trees and More Get the various points in this lab checked off by a TA by the last lab of Tuesday, 23 October. It would be good, of course, to have them done the FIRST week! Part I: Some Progress on the Project. We suggest you strive to get this done during the week of 15 October. 1. If you haven't worked on Assertion.java and Question.java yet, get the NEW suggested templates from ~cs61b/hw/proj2, and fill them in. The tricky part is reconstructing the question or answer from the information in the Assertion or Question + the PuzzleParser it comes from (you need the latter to know what is a name, what is a color, what is an occupation). Really, the only one of the unfilled-in methods you are going to really is Question.formattedAnswer, but thinking about the others may be helpful. 2. Implement PuzzleLineSet. This just reads a bunch of words from a Reader, breaks them into groups that each end with a word that ends with '.' or '?', and then stores each group as a single String, with the words separated by single blanks (regardless of the original whitespace between them). 3. Set up some test cases for your Project #2. Part II: Tree manipulation. 4. On page 92 of the Data Structures book, there is a definition of eval on an expression tree. You will find a modified version in ~cs61b/hw/lab6/Expr0.java along with some supporting code. The definitions of toString and read are incomplete. Fill them in to make the code work (see the comment on the main program). Now we'll create a re-implementation of Expr0 called Expr, but this we'll do it "the object-oriented way". 5. Copy over the template ~cs61b/hw/lab6/Expr.java Modify it to do the same thing as Expr0. You will have to add new classes (either in Expr.java or in separate files). HOWEVER, do NOT add any more 'if', 'while', 'for', or 'switch' statements or any more ?: operators; just use object-oriented stuff. 6. Show your TA what you have done for these parts to be checked off.