change to infix parser & lexer