Refactor location, filename, and klabel attributes

**please review**
Again about `filename` being File and not String.
In this case you are completely ignoring the fact that the AST produced by this parser could have location information. Don't underestimate the importance of good error messages. It can save huge amounts of time.