Lexer changes

Mostly minor things that rebasing is becoming painful.
"Index {} and/or {} does not lie on char boundary in `{}`"