Name analysis for modern languages: a general solution. (13th March 2017)