And how do you decide, given two versions of a source file, if the token was renamed or it was a new one?
This looks "trivial" for trivial cases, but I can imagine lots of difficult corner cases there. Depending on how you define what constitutes a "rename", this may even be undecidable.