modified lexer