void test_regex( std::ostream & f ){ f << get_valid() << "\n" << get_wiki() << "\n" << get_parent_begin() << "\n" << get_parent_end() << "\n" << get_tag_begin() << "\n" << get_tag_end() << "\n" << get_allow_link() << "\n" << get_allow_global() << "\n" << get_table_key_begin() << "\n" << get_table_end() << "\n" << get_key_value() << "\n" << get_allow_type() << "\n" << std::endl; }
int getInfodDebugInfo(char *str, infod_debug_info_t *idbg) { char *ptr; if(!str || !idbg) return 0; ptr = str; char rootTag[128]; char tagContent[128]; char attrName[128]; char attrVal[128]; int end; int closeTag; int shortTag; ptr = get_tag_start(ptr, rootTag, &closeTag); if(!ptr) return 0; if(closeTag) return 0; if(strcmp(rootTag, ROOT_TAG) != 0) return 0; do { ptr = get_tag_attr(ptr, attrName, attrVal, &end); if(!ptr) return 0; add_idbg_attr(idbg, attrName, attrVal); } while(end == 0); ptr = get_tag_end(ptr,& shortTag); if(!ptr) return 0; // Getting the content of the tag ptr = get_upto_tag_start(ptr, tagContent); if(!ptr) return 0; int val; char *endptr; val = strtol(tagContent, &endptr, 10); if(val == 0 && *endptr != '\0') return 0; if(val < 0) return 0; idbg->uptimeSec = val; // Getting the end tag ptr = get_tag_start(ptr, rootTag, &closeTag); if(!ptr) return 0; if(strcmp(rootTag, ROOT_TAG) != 0) return 0; if(!closeTag) return 0; ptr = get_tag_end(ptr,& shortTag); if(!ptr) return 0; return 1; }