added lexer for practice.