summaryrefslogtreecommitdiff
path: root/include/libcss
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-05-01 16:36:27 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-05-01 16:36:27 +0000
commit72c39e3522c5781d1e7dc8abad77d96141c5d49b (patch)
treee16497caaa0bf20771ef34787de02fc95e5993bf /include/libcss
downloadlibcss-72c39e3522c5781d1e7dc8abad77d96141c5d49b.tar.gz
libcss-72c39e3522c5781d1e7dc8abad77d96141c5d49b.tar.bz2
Import beginnings of a CSS parsing library.
Currently comprises a lexer. svn path=/trunk/libcss/; revision=4112
Diffstat (limited to 'include/libcss')
-rw-r--r--include/libcss/errors.h31
-rw-r--r--include/libcss/functypes.h27
-rw-r--r--include/libcss/libcss.h23
-rw-r--r--include/libcss/types.h33
4 files changed, 114 insertions, 0 deletions
diff --git a/include/libcss/errors.h b/include/libcss/errors.h
new file mode 100644
index 0000000..f7eeba2
--- /dev/null
+++ b/include/libcss/errors.h
@@ -0,0 +1,31 @@
+/*
+ * This file is part of LibCSS.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org>
+ */
+
+#ifndef css_errors_h_
+#define css_errors_h_
+
+#include <stddef.h>
+
+typedef enum css_error {
+ CSS_OK = 0,
+
+ CSS_NOMEM = 1,
+ CSS_BADPARM = 2,
+ CSS_INVALID = 3,
+ CSS_FILENOTFOUND = 4,
+ CSS_NEEDDATA = 5,
+ CSS_BADCHARSET = 6,
+ CSS_EOF = 7,
+} css_error;
+
+/* Convert a libcss error value to a string */
+const char *css_error_to_string(css_error error);
+/* Convert a string to a libcss error value */
+css_error css_error_from_string(const char *str, size_t len);
+
+#endif
+
diff --git a/include/libcss/functypes.h b/include/libcss/functypes.h
new file mode 100644
index 0000000..22a48bf
--- /dev/null
+++ b/include/libcss/functypes.h
@@ -0,0 +1,27 @@
+/*
+ * This file is part of LibCSS.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2007-8 John-Mark Bell <jmb@netsurf-browser.org>
+ */
+
+#ifndef css_functypes_h_
+#define css_functypes_h_
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <libcss/types.h>
+
+/* Type of allocation function for libcss */
+typedef void *(*css_alloc)(void *ptr, size_t size, void *pw);
+
+/**
+ * Type of parse error handling function
+ */
+typedef void (*css_error_handler)(uint32_t line, uint32_t col,
+ const char *message, void *pw);
+
+#endif
+
diff --git a/include/libcss/libcss.h b/include/libcss/libcss.h
new file mode 100644
index 0000000..364a3eb
--- /dev/null
+++ b/include/libcss/libcss.h
@@ -0,0 +1,23 @@
+/*
+ * This file is part of LibCSS.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org>
+ */
+
+#ifndef css_h_
+#define css_h_
+
+#include <libcss/errors.h>
+#include <libcss/functypes.h>
+#include <libcss/types.h>
+
+/* Initialise the CSS library for use */
+css_error css_initialise(const char *aliases_file,
+ css_alloc alloc, void *pw);
+
+/* Clean up after LibCSS */
+css_error css_finalise(css_alloc alloc, void *pw);
+
+#endif
+
diff --git a/include/libcss/types.h b/include/libcss/types.h
new file mode 100644
index 0000000..b3e18dc
--- /dev/null
+++ b/include/libcss/types.h
@@ -0,0 +1,33 @@
+/*
+ * This file is part of LibCSS.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org>
+ */
+
+#ifndef css_types_h_
+#define css_types_h_
+
+#include <stdbool.h>
+#include <inttypes.h>
+
+/** Source of charset information, in order of importance
+ * A client-dictated charset will override all others.
+ * A document-specified charset will override autodetection or the default */
+typedef enum css_charset_source {
+ CSS_CHARSET_DEFAULT = 0, /**< Default setting */
+ CSS_CHARSET_REFERRED = 1, /**< From referring document */
+ CSS_CHARSET_METADATA = 2, /**< From linking metadata */
+ CSS_CHARSET_DOCUMENT = 3, /**< Defined in document */
+ CSS_CHARSET_DICTATED = 4, /**< Dictated by client */
+} css_charset_source;
+
+/**
+ * String type
+ */
+typedef struct css_string {
+ uint8_t *ptr; /**< Pointer to data */
+ size_t len; /**< Byte length of string */
+} css_string;
+
+#endif