break;			;
break;
makeWAISQueryDocs(terms)query_term** terms;/* given a list of terms in the form given above, convert them to    DocObjs. */{  query_term* docTerm = NULL;  query_term* fragmentTerm = NULL;  DocObj** docs = NULL;  DocObj* doc = NULL;  long docNum,termNum;  docNum = termNum = 0;    docs = (DocObj**)s_malloc((size_t)(sizeof(DocObj*) * 1));  docs[docNum] = NULL;  /* translate the terms into DocObjs */  while (true)    {	            query_term* typeTerm = NULL;      char* type = NULL;      long startTermOffset;      docTerm = terms[termNum];           if (docTerm == NULL)	break;			/* we're done converting */;      typeTerm = terms[termNum + 1]; /* get the lead Term if it exists */      if (strcmp(typeTerm->Use,DATA_TYPE) == 0)	/* we do have a type */       { startTermOffset = 3;		 type = anyToString(typeTerm->Term);       }      else 				   	/* no type */       { startTermOffset = 1;	 typeTerm = NULL;	 type = NULL;       }      /* grow the doc list */      docs = (DocObj**)s_realloc((char*)docs,(size_t)(sizeof(DocObj*) * 						      (docNum + 1 + 1)));      /* figure out what kind of docObj to build - and build it */      fragmentTerm = terms[termNum + startTermOffset];      if (fragmentTerm != NULL && fragmentTerm->TermType == TT_Attribute)	{			/* build a document fragment */	  query_term* startTerm = fragmentTerm;	  query_term* endTerm = terms[termNum + startTermOffset + 2]; 	  if (strcmp(startTerm->Use,BYTE) == 0){ /* a byte chunk */	    doc = makeDocObjUsingBytes(duplicateAny(docTerm->Term),				       type,				       anyToLong(startTerm->Term),				       anyToLong(endTerm->Term));           log_write("byte");	  }else if (strcmp(startTerm->Use,LINE) == 0){ /* a line chunk */	    doc = makeDocObjUsingLines(duplicateAny(docTerm->Term),				       type,				       anyToLong(startTerm->Term),				       anyToLong(endTerm->Term));            log_write("line");	  }else{	log_write("chunk");			/* a paragraph chunk */	    doc = makeDocObjUsingParagraphs(duplicateAny(docTerm->Term),					    type,					    duplicateAny(startTerm->Term),					    duplicateAny(endTerm->Term));}	  termNum += (startTermOffset + 4);	/* point to next term */	}      else			/* build a full document */	{ 	  doc = makeDocObjUsingWholeDocument(duplicateAny(docTerm->Term),					     type);log_write("whole doc");	  termNum += startTermOffset;	/* point to next term */	}           docs[docNum++] = doc;	/* insert the new document */	       docs[docNum] = NULL;	/* keep the doc list terminated */	       if (terms[termNum] != NULL)	termNum++; /* skip the OR operator it necessary */      else	break; /* we are done */    }  return(docs);}