[BACK]Return to tree.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan / Kclass

Diff for /OpenXM/src/kan96xx/Kan/Kclass/tree.c between version 1.1 and 1.4

version 1.1, 2003/11/21 02:10:37 version 1.4, 2003/11/24 08:16:13
Line 1 
Line 1 
 /* $OpenXM$ */  /* $OpenXM: OpenXM/src/kan96xx/Kan/Kclass/tree.c,v 1.3 2003/11/24 06:50:16 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
 #include "../datatype.h"  #include "../datatype.h"
 #include "../stackm.h"  #include "../stackm.h"
Line 19  struct object KpoTree(struct object ob) {
Line 19  struct object KpoTree(struct object ob) {
   newobp = (struct object *) sGC_malloc(sizeof(struct object));    newobp = (struct object *) sGC_malloc(sizeof(struct object));
   if (newobp == NULL) errorKan1("%s\n","Kclass/indeterminate.c, no more memory.");    if (newobp == NULL) errorKan1("%s\n","Kclass/indeterminate.c, no more memory.");
   if (ob.tag != Sarray) {    if (ob.tag != Sarray) {
     errorKan1("%s\n","Kclass/indeterminate.c, only properly formatted list object can be transformed into tree. [name, cdname, arglist].");      errorKan1("%s\n","Kclass/indeterminate.c, only properly formatted list object can be transformed into tree. [name, attr-list, arglist].");
   }    }
   if (getoaSize(ob) < 3) {    if (getoaSize(ob) < 3) {
     errorKan1("%s\n","Kclass/indeterminate.c, the length must 3 or more than 3. [name, cdname, arglist].");      errorKan1("%s\n","Kclass/indeterminate.c, the length must 3 or more than 3. [name, attr-list, arglist].");
   }    }
   ob1 = getoa(ob,0); ob2 = getoa(ob,1); ob3 = getoa(ob,2);    ob1 = getoa(ob,0); ob2 = getoa(ob,1); ob3 = getoa(ob,2);
   if (ob1.tag != Sdollar || ob2.tag != Sarray || ob3.tag != Sarray) {    if (ob1.tag != Sdollar || ob2.tag != Sarray || ob3.tag != Sarray) {
     errorKan1("%s\n","Kclass/indeterminate.c, [string name, list attributes, list arglist].");      errorKan1("%s\n","Kclass/indeterminate.c, [string name, list attributes, list arglist].");
   }    }
   *newobp = ob;    *newobp = ob;   /* Add class-tag to the array */
   rob.rc.voidp = newobp;    rob.rc.voidp = newobp;
   return(rob);    return(rob);
 }  }
Line 108  struct object addTree(struct object ob1, struct object
Line 108  struct object addTree(struct object ob1, struct object
   return(KpoTree(rob));    return(KpoTree(rob));
 }  }
   
   /* XML DOM-like interfaces */
   struct object KtreeGetDocumentElement(struct object to) {
     struct object rob;
     struct object ob;
     if (to.tag != Sclass) errorKan1("%s\n","KtreeGetDocumentElement");
     if (ectag(to) != CLASSNAME_tree) errorKan1("%s\n","KtreeGetDocumentElement");
     ob = KopTree(to);
     if (ob.tag != Sarray) errorKan1("%s\n","KtreeGetDocumentElement: not an array.");
     if (getoaSize(ob) != 3) errorKan1("%s\n","KtreeGetDocumentElement: array is broken.");
     ob=getoa(ob,0);
     if (ob.tag != Sdollar) errorKan1("%s\n","KtreeGetDocumentElement: element must be a string");
     return ob;
   }
   
 /*------------------------------------------*/  struct object KtreeGetAttributes(struct object to) {
     struct object rob;
     struct object ob;
     if (to.tag != Sclass) errorKan1("%s\n","KtreeGetAttributes:");
     if (ectag(to) != CLASSNAME_tree) errorKan1("%s\n","KtreeGetAttributes:");
     ob = KopTree(to);
     if (ob.tag != Sarray) errorKan1("%s\n","KtreeGetAttributes: not an array.");
     if (getoaSize(ob) != 3) errorKan1("%s\n","KtreeGetAttributes: array is broken.");
     return getoa(ob,1);
   }
   
   struct object KtreeGetChildNodes(struct object to) {
     struct object rob;
     struct object ob;
     if (to.tag != Sclass) errorKan1("%s\n","KtreeGetChildNodes:");
     if (ectag(to) != CLASSNAME_tree) errorKan1("%s\n","KtreeGetChildNodes:");
     ob = KopTree(to);
     if (ob.tag != Sarray) errorKan1("%s\n","KtreeGetChildNodes: not an array.");
     if (getoaSize(ob) != 3) errorKan1("%s\n","KtreeGetChildNodes: array is broken.");
     return getoa(ob,2);
   }
   
   struct object KtreeCreateElement(struct object ostr) {
     struct object ob;
     if (ostr.tag != Sdollar) errorKan1("%s\n","KtreeCreateElement: not a string.");
     ob = newObjectArray(3);
     getoa(ob,0)=ostr;
     getoa(ob,1) = newObjectArray(0);
     getoa(ob,2) = newObjectArray(0);
     return KpoTree(ob);
   }
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>