summaryrefslogtreecommitdiff
path: root/src/parse/parse.h
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-07-30 23:53:26 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-07-30 23:53:26 +0000
commite3afbca5b4a25d07d3cd32b16ecb0f7401c46109 (patch)
tree0d780e13075007acdc20306a6d79ea07080b01f3 /src/parse/parse.h
parent8e5933fc5491f95160e7a2417d575d12186c59a1 (diff)
downloadlibcss-e3afbca5b4a25d07d3cd32b16ecb0f7401c46109.tar.gz
libcss-e3afbca5b4a25d07d3cd32b16ecb0f7401c46109.tar.bz2
Generate and emit events
svn path=/trunk/libcss/; revision=4828
Diffstat (limited to 'src/parse/parse.h')
-rw-r--r--src/parse/parse.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/parse/parse.h b/src/parse/parse.h
index d4ae3c4..c1b6830 100644
--- a/src/parse/parse.h
+++ b/src/parse/parse.h
@@ -8,16 +8,39 @@
#ifndef css_parse_parse_h_
#define css_parse_parse_h_
+#include <parserutils/utils/vector.h>
+
#include <libcss/functypes.h>
#include <libcss/types.h>
typedef struct css_parser css_parser;
/**
+ * Parser event types
+ */
+typedef enum css_parser_event {
+ CSS_PARSER_START_STYLESHEET,
+ CSS_PARSER_END_STYLESHEET,
+ CSS_PARSER_START_RULESET,
+ CSS_PARSER_END_RULESET,
+ CSS_PARSER_START_ATRULE,
+ CSS_PARSER_END_ATRULE,
+ CSS_PARSER_START_BLOCK,
+ CSS_PARSER_END_BLOCK,
+ CSS_PARSER_BLOCK_CONTENT,
+ CSS_PARSER_SELECTOR,
+ CSS_PARSER_DECLARATION,
+} css_parser_event;
+
+typedef bool (*css_parser_event_handler)(css_parser_event type,
+ const parserutils_vector *tokens, void *pw);
+
+/**
* Parser option types
*/
typedef enum css_parser_opttype {
CSS_PARSER_QUIRKS,
+ CSS_PARSER_EVENT_HANDLER,
} css_parser_opttype;
/**
@@ -25,6 +48,11 @@ typedef enum css_parser_opttype {
*/
typedef union css_parser_optparams {
bool quirks;
+
+ struct {
+ css_parser_event_handler handler;
+ void *pw;
+ } event_handler;
} css_parser_optparams;
css_parser *css_parser_create(css_stylesheet *sheet, const char *charset,