Parser can read from files, can return single error string, fix expected EOL issue when extra whitespace is at the end of a file.