void make_runparse(NODE *ndi) { NODE *rp_list; rp_list = runparse(ndi); ref(rp_list); /* I don't understand why this is necessary.*/ setobject(ndi, rp_list); settype(ndi, RUN_PARSE); }
NODE *lrunparse(NODE *args) { NODE *arg; arg = car(args); while (nodetype(arg) == ARRAY && NOT_THROWING) { setcar(args, err_logo(BAD_DATA, arg)); arg = car(args); } if (NOT_THROWING && !aggregate(arg)) arg = parser(arg, TRUE); if (NOT_THROWING) return runparse(arg); return UNBOUND; }