updated lexer and test cases