| version 1.3, 2003/11/24 06:50:16 |
version 1.5, 2003/12/05 13:51:32 |
|
|
| /* $OpenXM: OpenXM/src/kan96xx/Kan/Kclass/tree.c,v 1.2 2003/11/24 02:13:40 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/kan96xx/Kan/Kclass/tree.c,v 1.4 2003/11/24 08:16:13 takayama Exp $ */ |
| #include <stdio.h> |
#include <stdio.h> |
| #include "../datatype.h" |
#include "../datatype.h" |
| #include "../stackm.h" |
#include "../stackm.h" |
| Line 67 struct object addTree(struct object ob1, struct object |
|
| Line 67 struct object addTree(struct object ob1, struct object |
|
| { |
{ |
| struct object rob,aob; |
struct object rob,aob; |
| struct object ob3,ob4; |
struct object ob3,ob4; |
| |
struct object attr; |
| |
struct object keyValue; |
| int i; |
int i; |
| if (isTreeAdd(ob1) && !isTreeAdd(ob2)) { |
if (isTreeAdd(ob1) && !isTreeAdd(ob2)) { |
| ob1 = KopTree(ob1); |
ob1 = KopTree(ob1); |
| Line 101 struct object addTree(struct object ob1, struct object |
|
| Line 103 struct object addTree(struct object ob1, struct object |
|
| putoa(aob,0,ob1); |
putoa(aob,0,ob1); |
| putoa(aob,1,ob2); |
putoa(aob,1,ob2); |
| } |
} |
| |
attr = newObjectArray(1); |
| |
keyValue = newObjectArray(2); |
| |
putoa(keyValue,0,KpoString("arith1")); |
| |
putoa(keyValue,1,KpoString("plus")); |
| |
putoa(attr,0,keyValue); |
| rob = newObjectArray(3); |
rob = newObjectArray(3); |
| putoa(rob,0,KpoString("add")); |
putoa(rob,0,KpoString("add")); |
| putoa(rob,1,KpoString("basic")); |
putoa(rob,1,attr); |
| putoa(rob,2,aob); |
putoa(rob,2,aob); |
| return(KpoTree(rob)); |
return(KpoTree(rob)); |
| } |
} |
| Line 115 struct object KtreeGetDocumentElement(struct object to |
|
| Line 122 struct object KtreeGetDocumentElement(struct object to |
|
| if (to.tag != Sclass) errorKan1("%s\n","KtreeGetDocumentElement"); |
if (to.tag != Sclass) errorKan1("%s\n","KtreeGetDocumentElement"); |
| if (ectag(to) != CLASSNAME_tree) errorKan1("%s\n","KtreeGetDocumentElement"); |
if (ectag(to) != CLASSNAME_tree) errorKan1("%s\n","KtreeGetDocumentElement"); |
| ob = KopTree(to); |
ob = KopTree(to); |
| if (ob.tag != Sdollar) errorKan1("%s\n","KtreeGetDocumentElement: element name is not a string."); |
if (ob.tag != Sarray) errorKan1("%s\n","KtreeGetDocumentElement: not an array."); |
| return getoa(ob,0); |
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 KtreeGetAttributes(struct object to) { |
| Line 126 struct object KtreeGetAttributes(struct object to) { |
|
| Line 136 struct object KtreeGetAttributes(struct object to) { |
|
| if (ectag(to) != CLASSNAME_tree) errorKan1("%s\n","KtreeGetAttributes:"); |
if (ectag(to) != CLASSNAME_tree) errorKan1("%s\n","KtreeGetAttributes:"); |
| ob = KopTree(to); |
ob = KopTree(to); |
| if (ob.tag != Sarray) errorKan1("%s\n","KtreeGetAttributes: not an array."); |
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); |
return getoa(ob,1); |
| } |
} |
| |
|
| Line 136 struct object KtreeGetChildNodes(struct object to) { |
|
| Line 147 struct object KtreeGetChildNodes(struct object to) { |
|
| if (ectag(to) != CLASSNAME_tree) errorKan1("%s\n","KtreeGetChildNodes:"); |
if (ectag(to) != CLASSNAME_tree) errorKan1("%s\n","KtreeGetChildNodes:"); |
| ob = KopTree(to); |
ob = KopTree(to); |
| if (ob.tag != Sarray) errorKan1("%s\n","KtreeGetChildNodes: not an array."); |
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); |
return getoa(ob,2); |
| } |
} |
| |
|