/* Parse incoming url constraints, if any, to check for syntactic correctness */ NCerror parsedapconstraints(NCDAPCOMMON* dapcomm, char* constraints, DCEconstraint* dceconstraint) { NCerror ncstat = NC_NOERR; char* errmsg; ASSERT(dceconstraint != NULL); nclistclear(dceconstraint->projections); nclistclear(dceconstraint->selections); ncstat = dapceparse(constraints,dceconstraint,&errmsg); if(ncstat) { nclog(NCLOGWARN,"DCE constraint parse failure: %s",errmsg); nullfree(errmsg); nclistclear(dceconstraint->projections); nclistclear(dceconstraint->selections); } else { #ifdef IGNORE int i; #ifdef DEBUG NClist* allnodes; fprintf(stderr,"constraint: %s",dumpconstraint(dceconstraint)); #endif /* Go thru each node and add annotation */ allnodes = dceallnodes((DCEnode*)dceconstraint,CES_NIL); for(i=0;i<nclistlength(allnodes);i++) { DCEnode* node = (DCEnode*)nclistget(allnodes,i); } #endif } return ncstat; }
/* Remove all CDFnode* references from constraint */ void dereference3(DCEconstraint* constraint) { int i; NClist* allnodes = dceallnodes((DCEnode*)constraint,CES_NIL); for(i=0;i<nclistlength(allnodes);i++) { DCEnode* node = (DCEnode*)nclistget(allnodes,i); switch(node->sort) { case CES_SEGMENT: ((DCEsegment*)node)->cdfnode = NULL; break; case CES_VAR: ((DCEvar*)node)->cdfnode = NULL; ((DCEvar*)node)->cdfleaf = NULL; break; default: break; /* ignore */ } } nclistfree(allnodes); }