Also, the locations are of tokens, not of characters in the source string. So skipping over characters that aren't used doesn't really affect the locations.