TeamShadow/shadow — pull request #12 by Brinsky (2014-11-20 20:07:08+00:00)
Title: Redesign of command line and configuration management

I have reworked the overall configuration system for the compiler to make it cleaner, more logical in structure, and better at finding configuration files.

Changes include the following:
-Created a new Job class to represent compile-specific information. The separation is logical, but also important when testing (because Maven does not restart the program between jobs and therefore does not re-instantiate Configuration).
-Moved parsing code into Configuration and eliminated ConfigParser. This is a bit ugly at the moment, but I hope to improve it later.
-Encapsulated command line reading and interpretation into an Arguments class. This class also stores all of known command line flags and option definitions.
-Improved the search routine in Configuration to (hopefully) always find config files when testing, regardless of platform

All of these changes, although meritable in their own right, will hopefully help me rewrite the Main class to be clearer and more maintainable.