From 05498860e8f7b1e8bb27880bc7526de026694804 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Fri, 26 Mar 2021 21:55:50 +0100 Subject: Renamed libs Cleaner and more flexible. --- libs/libtxt/xml.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 libs/libtxt/xml.h (limited to 'libs/libtxt/xml.h') diff --git a/libs/libtxt/xml.h b/libs/libtxt/xml.h new file mode 100644 index 0000000..43a8005 --- /dev/null +++ b/libs/libtxt/xml.h @@ -0,0 +1,51 @@ +// Inspired by sxml (capmar) +// MIT License, Copyright (c) 2020 Marvin Borner + +#ifndef XML_H +#define XML_H + +#include + +enum xml_error { + XML_ERROR_INVALID = -1, + XML_SUCCESS = 0, + XML_ERROR_BUFFERDRY = 1, + XML_ERROR_TOKENSFULL = 2 +}; + +struct xml_token { + u16 type; + u16 size; + u32 start_pos; + u32 end_pos; +}; + +struct xml_args { + const char *buffer; + u32 buffer_length; + struct xml_token *tokens; + u32 num_tokens; +}; + +enum xml_type { + XML_START_TAG, + XML_END_TAG, + XML_CHARACTER, + XML_CDATA, + XML_INSTRUCTION, + XML_DOCTYPE, + XML_COMMENT +}; + +struct xml { + u32 buffer_pos; + u32 ntokens; + u32 tag_level; +}; + +enum xml_error xml_parse(struct xml *parser, const char *buffer, u32 buffer_length, + struct xml_token *tokens, u32 num_tokens); + +void xml_init(struct xml *parser); + +#endif -- cgit v1.2.3