diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2008-07-30 23:53:26 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2008-07-30 23:53:26 +0000 |
commit | e3afbca5b4a25d07d3cd32b16ecb0f7401c46109 (patch) | |
tree | 0d780e13075007acdc20306a6d79ea07080b01f3 /src/parse/parse.h | |
parent | 8e5933fc5491f95160e7a2417d575d12186c59a1 (diff) | |
download | libcss-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.h | 28 |
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, |