X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=xml-tree.hpp;fp=xml-tree.hpp;h=4ada586c05b4b243bd3c82a9567937ada66fae01;hb=daf6549ca274aaa8d9c0b3964c5502f0f0f08d7d;hp=aba316068a15747980a9c64ab4ab20c71c183de9;hpb=a48601dcbcddb424105024b41d85f724021ea787;p=SXSI%2FXMLTree.git diff --git a/xml-tree.hpp b/xml-tree.hpp index aba3160..4ada586 100644 --- a/xml-tree.hpp +++ b/xml-tree.hpp @@ -162,8 +162,28 @@ public: uint32_t postorder(node_t) const; //Tag functions + /** + * [tag(n)] returns the tag of node [n] which must be a valid node identifier + * (in particular not NIL) + * Runs in O(1) + */ inline tag_t tag(node_t) const; + + /** + * [get_tag_name_by_ref(t)] returns the string representation of tag [t] + * For elements, the string representation is the tag name itself + * Returns if [t] is not a proper tag identifier. + * Runs in O(1) + */ const char* get_tag_name_by_ref(tag_t) const; + + /** + * [register_tag(s)] returns the tag identifier for the tag represented + * by the string [s]. If no such tag exists in the document, return a + * fresh tag identifier [i]. Subsequent calls with the same [s] will return + * the same identifier. + * Runs in O(1) + */ tag_t register_tag(char *s); //Navigation functions