1/* struct::tree - critcl - layer 1 declarations 2 * (b) Node operations. 3 */ 4 5#ifndef _TN_H 6#define _TN_H 1 7 8#include "tcl.h" 9#include <ds.h> 10 11void tn_shimmer (Tcl_Obj* o, TNPtr n); 12TNPtr tn_get_node (TPtr t, Tcl_Obj* node, Tcl_Interp* interp, Tcl_Obj* tree); 13 14TNPtr tn_new (TPtr td, CONST char* name); 15TNPtr tn_dup (TPtr dst, TNPtr src); 16void tn_delete (TNPtr n); 17 18void tn_node (TNPtr n); 19void tn_notnode (TNPtr n); 20void tn_leaf (TNPtr n); 21void tn_notleaf (TNPtr n); 22void tn_structure (TNPtr n, int depth); 23 24void tn_detach (TNPtr n); 25TNPtr* tn_detachmany (TNPtr n, int len); 26TNPtr* tn_detachchildren (TNPtr n, int* nc); 27 28void tn_append (TNPtr p, TNPtr n); 29void tn_insert (TNPtr p, int at, TNPtr n); 30 31void tn_appendmany (TNPtr p, int nc, TNPtr* nv); 32void tn_insertmany (TNPtr p, int at, int nc, TNPtr* nv); 33 34void tn_cut (TNPtr n); 35 36int tn_depth (TNPtr n); 37int tn_height (TNPtr n); 38int tn_ndescendants (TNPtr n); 39Tcl_Obj** tn_getdescendants (TNPtr n, int* nc); 40Tcl_Obj** tn_getchildren (TNPtr n, int* nc); 41 42int tn_filternodes (int* nc, Tcl_Obj** nv, 43 int cmdc, Tcl_Obj** cmdv, 44 Tcl_Obj* tree, Tcl_Interp* interp); 45 46int tn_isancestorof (TNPtr a, TNPtr b); 47 48void tn_extend_attr (TNPtr n); 49void tn_set_attr (TNPtr n, Tcl_Interp* interp, Tcl_Obj* dict); 50Tcl_Obj* tn_get_attr (TNPtr n, Tcl_Obj* empty); 51 52int tn_serialize (TNPtr n, int listc, Tcl_Obj** listv, 53 int at, int parent, Tcl_Obj* empty); 54 55#endif /* _TN_H */ 56 57/* 58 * Local Variables: 59 * mode: c 60 * c-basic-offset: 4 61 * fill-column: 78 62 * End: 63 */ 64