I built a function that backtracked the tokeniser a few lines, it seemed to work for dotted linq expressions etc