In my dev work I've shaved some bytes off of Token. I removed the filename from Location, as we don't assume the input is a file anymore, and I've changed to tracking line and column numbers as uint instead of size_t.
I don't know what kind of number I _should_ be aiming for, but I'd imagine I'm not gonna get it that small.