generalizing parser