Fixed parsing the tokens so it actually worked. Only headers are
currently implemented, but header nodes are now properly parsed and
everything else is properly ignored.
- Get the input filename from the command line
- Added in a bunch of checks to avoid segfaults
- Added some more debug info in places
The GCC version installed on Unix does not support `-Wpedantic`, so this
has been replaced with `-pedantic`. The version installed on Unix is
4.0.0.
`.PHONY` has been removed as this has no special meaning on Unix.
Instead, make thought it was a target which made it build, run, then
immediately delete the executable. This is obviously not desired.
Unix make also doesn't support the `$^` automatic variable. This has
been replaced with the object list variable instead.