generalized parse