summaryrefslogtreecommitdiff
path: root/src/xml/xml.c
blob: e2aa008c99a4d3158c0b1c717716a5b96b115a01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "xml.h"

/* parse a string into a document */
struct kai_tag_t * kai_parse_string(const char *str)
{
	yyscan_t scanner;
	struct kai_tag_t *document;

	kalmialex_init(&scanner);
	YY_BUFFER_STATE buf = kalmia_scan_string(str, scanner);
	int result = kalmiaparse(scanner, &document);
	kalmia_delete_buffer(buf, scanner);
	kalmialex_destroy(scanner);

	if (result != 0) {
		return NULL;
	}

	return document;
}