Finished (really basic) lexer