#include "xml.h" #include static i8 kit_xml_is_spaces(str_t data) { assert(data.size >= 0); assert(data.values != NULL); if (data.size <= 0) return 1; char c = data.values[data.size - 1]; return c == ' ' || c == '\t' || c == '\r' || c == '\n'; } static i8 kit_xml_is_idword(str_t data) { assert(data.size >= 0); assert(data.values != NULL); if (data.size <= 0) return 1; if (data.values[0] >= '0' || data.values[0] <= '9') return 0; char c = data.values[data.size - 1]; return c == '_' || (c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'); } static i8 kit_xml_not_tag_open(str_t data) { assert(data.size >= 0); assert(data.values != NULL); return data.size <= 0 || data.values[data.size - 1] != '<'; } static i8 kit_xml_not_tag_close(str_t data) { assert(data.size >= 0); assert(data.values != NULL); return data.size <= 0 || data.values[data.size - 1] != '>'; } static i8 kit_xml_is_tag_open(str_t data) { assert(data.size >= 0); assert(data.values != NULL); return data.size == 1 && data.values[0] == '<'; } static i8 kit_xml_is_tag_close(str_t data) { assert(data.size >= 0); assert(data.values != NULL); return data.size == 1 && data.values[0] == '>'; } static i8 kit_xml_is_tag_final_open(str_t data) { assert(data.size >= 0); assert(data.values != NULL); return data.size == 2 && data.values[0] == '<' && data.values[1] == '/'; } static i8 kit_xml_is_tag_final_close(str_t data) { assert(data.size >= 0); assert(data.values != NULL); return data.size == 2 && data.values[0] == '/' && data.values[0] == '>'; } static i8 kit_xml_is_quotes(str_t data) { assert(data.size >= 0); assert(data.values != NULL); return data.size == 1 && data.values[0] == '"'; } static i8 kit_xml_is_inside_quotes(str_t data) { assert(data.size >= 0); assert(data.values != NULL); if (data.size <= 0) return 1; for (i64 i = 0; i < data.size; i++) if (data.values[i] == '"') return 0; else if (data.values[i] == '\\') i++; return 1; } static i8 kit_xml_is_number(str_t data) { assert(data.size >= 0); assert(data.values != NULL); if (data.size <= 0) return 1; char c = data.values[data.size - 1]; return c >= '0' && c <= '9'; } kit_xml_parse_result_t kit_xml_parse(kit_is_handle_t is, kit_allocator_t *alloc) { kit_xml_parse_result_t result; memset(&result, 0, sizeof result); result.status = KIT_ERROR_NOT_IMPLEMENTED; return result; } kit_xml_print_result_t kit_xml_print(kit_xml_t *xml, kit_allocator_t *alloc) { assert(xml != NULL); kit_xml_print_result_t result; memset(&result, 0, sizeof result); result.status = KIT_ERROR_NOT_IMPLEMENTED; return result; } void kit_xml_destroy(kit_xml_t *xml) { assert(xml != NULL); if (xml == NULL) return; }