-// FirstChild(x): returns the first child of node x, assuming it exists. Very fast in BP.\r
-/*\r
-treeNode XMLTree::FirstChild(treeNode x) \r
- {\r
- NULLT_IF(x==NULLT);\r
- return fast_first_child(Par, x);\r
- }\r
-*/\r
-/*\r
-treeNode XMLTree::FirstElement(treeNode x) \r
- {\r
- NULLT_IF(x==NULLT);\r
- x = fast_first_child(Par, x);\r
- NULLT_IF(x == NULLT);\r
- switch (Tag(x)){\r
- \r
- case PCDATA_TAG_ID:\r
- x = x+2;\r
- return (fast_inspect(Par,x)==OP)? x : NULLT;\r
- \r
- case ATTRIBUTE_TAG_ID: \r
- x = fast_next_sibling(Par,x);\r
- if (x != NULLT && Tag(x) == PCDATA_TAG_ID){\r
- x = x+2;\r
- return (fast_inspect(Par,x)==OP)? x : NULLT;\r
- } \r
- else return x; \r
- default:\r
- return x;\r
- }\r
- }\r
-*//*\r
-treeNode XMLTree::NextElement(treeNode x) \r
-{\r
- NULLT_IF(x==NULLT);\r
- x = fast_next_sibling(Par, x);\r
- NULLT_IF(x == NULLT); \r
- if (Tag(x) == PCDATA_TAG_ID){\r
- x = x+2;\r
- return (fast_inspect(Par,x)==OP)? x : NULLT;\r
- }\r
- else return x; \r
- }*/\r
-\r
-// LastChild(x): returns the last child of node x.\r
-treeNode XMLTree::LastChild(treeNode x)\r
- {\r
- NULLT_IF(x == NULLT || fast_isleaf(Par,x));\r
- return find_open(Par, fast_find_close(Par, x)-1);\r
- }\r
-\r
-// NextSibling(x): returns the next sibling of node x, assuming it exists.\r
-/*treeNode XMLTree::NextSibling(treeNode x) \r
- {\r
- NULLT_IF(x==NULLT || x == Root() );\r
- x = fast_find_close(Par,x)+1;\r
- return (fast_inspect(Par,x) == CP ? NULLT : x);\r
- }\r
-*/\r
-\r
-// PrevSibling(x): returns the previous sibling of node x, assuming it exists.\r
-treeNode XMLTree::PrevSibling(treeNode x) \r
- {\r
- NULLT_IF(x==NULLT);\r
- return prev_sibling(Par, x);\r
- }\r