implemented recursive disjuction parsing