Made command line parser file-string representation much more efficient. Token lexemes simply point to the argv[n] buffers containing file names, rather than copying them into an a large fix-sized allocated buffer.
Wrote a short function that checks if a pointer is mallod'd. This is only necessary for freeing tokens where there's a mixture of lexemes stored in allocated and auto-scoped memory. Unfortunately this is platform dependent and the current version relies on apple's malloc_zone implementation. It is protected with preprocessor directives for other operating systems.
The parser appears to be working correctly now. It's been test from gcc, but most importantly from Xcode (since the Xcode target is in a different directory, it needs to find the files in the home directory.