Port UnlessElse to Parser