Project 2 Posted: March 03, 2020

Project 2 continues the work on improving the design of srcFacts:

Tag “v2a” Implement and close all issues from Project 1. When you finish fixing an issue, create a tag for that commit in the form issueN tag where N is the issue number, e.g., when you complete issue1, create the tag issue1.

Tag “v2b” Create the class XMLParser in files XMLParser.hpp and XMLParser.cpp where the methods call the free functions from xml_parser.hpp. For this step, do not use any fields/data members, i.e., your method parameters should be very similar to the free function parameters.

Tab “‘v2c’” Eliminate any parameters in the XMLParser methods that you can, replacing them with field/data members in the class. Do this one field/data member at a time.

Tab “v2d” Inline the calls to the xml_parser free functions into your XMLParser methods. Do this one free function call at a time. At the end, your XMLParser.cpp should have no calls to xml_parser functions, and will not need to include xml_parser.hpp.

Tag “v2e” Use inversion of control on the while loop/nested-if in srcFacts so that the entire loop is inside of XMLParser.

All parts of Project 2 are Due Tuesday, Mar 17 Tuesday, April 7.

At every commit, make sure the project compiles, builds, and produces the correct answer.