generate some helper functions prior to extracting a new class
extract and contain parser class
refactor grammar-specific terminal stuf into a traits class so we can extract if from the parser
move parser to its own file
rename test class
move parser tests to their own file
rename parse_exception class
don't hard-code rule about ignoring spaces into parser; allow traits class to specify char to ignore
don't expose string iterator from the parser
add tests for ignore
unignore shouldn't try to rewind past the beginning of the string
remaining unignore tests
test parser::substr
test parser::error
rename test helper funtions to follow the naming convention for internal routines
minor formatting for consistency