added lexer code