lexer now saves line and column to token