summaryrefslogtreecommitdiff
path: root/examples/c89.c
diff options
context:
space:
mode:
authorsteven-vd <steven@vandorp.lu>2026-08-16 15:00:32 +0200
committersteven-vd <steven@vandorp.lu>2026-08-17 09:31:42 +0200
commitee081ca70322cd01d0642fdb1860e6bfbfb48e85 (patch)
tree295fdba93b08b24562c6d49e971bbf3425eac50c /examples/c89.c
Initial commitHEAD0.1.0master
Diffstat (limited to 'examples/c89.c')
-rw-r--r--examples/c89.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/examples/c89.c b/examples/c89.c
new file mode 100644
index 0000000..4b0eaf6
--- /dev/null
+++ b/examples/c89.c
@@ -0,0 +1,33 @@
+#include <assert.h>
+#include <stdio.h>
+#define ASSERT assert
+#define IMXML_SIMD_DEFAULT SSE2
+#define IMXML_IMPLEMENTATION
+#include "imxml.h"
+
+int main (void) {
+ ImxmlString s, from, to, msg;
+ XmlContent content;
+ ImxmlCharSequence const xml = "<msg from=\"John\" to=\"Jane\">Hello, World!</msg>"IMXML_LIT_PAD;
+ XmlParser p = {0};
+ p.head = xml;
+
+ imxml_strlit89(s, "msg");
+ assert(xml_tag_expect_str(&p, s));
+ imxml_strlit89(s, "from");
+ assert(xml_attr_expect_str(&p, s));
+ from = xml_value(&p);
+ imxml_strlit89(s, "to");
+ assert(xml_attr_expect_str(&p, s));
+ to = xml_value(&p);
+
+ content = xml_content(&p);
+ assert(content.type == XML_CONTENT_TEXT);
+ msg = content.data;
+ assert(xml_content(&p).type == XML_CONTENT_TAG);
+
+ printf("%.*s->%.*s: '%.*s'\n", (int)from.count, from.items, (int)to.count, to.items, (int)msg.count, msg.items);
+
+ return 0;
+}
+