Merge pull request #1857 from cleishm/2.0-merge-1.9-maint

2.0 merge 1.9 maint
Replace InputToken with InputPosition

And only track start, not entire range