Parse binary expressions using precedence