From a324baae03e4018c2c1aa8e4692505f8fcbe7172 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Wed, 30 Jul 2008 20:05:15 +0000 Subject: Implement the first-stage parser. Things missing: 1) Recovery after parse errors 2) Event emission (the locations of DEBUG_EVENTS are about right for this) 3) A second-stage parser 4) Any kind of testsuite svn path=/trunk/libcss/; revision=4825 --- src/parse/parse.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/parse/parse.h (limited to 'src/parse/parse.h') diff --git a/src/parse/parse.h b/src/parse/parse.h new file mode 100644 index 0000000..d4ae3c4 --- /dev/null +++ b/src/parse/parse.h @@ -0,0 +1,45 @@ +/* + * This file is part of LibCSS. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2008 John-Mark Bell + */ + +#ifndef css_parse_parse_h_ +#define css_parse_parse_h_ + +#include +#include + +typedef struct css_parser css_parser; + +/** + * Parser option types + */ +typedef enum css_parser_opttype { + CSS_PARSER_QUIRKS, +} css_parser_opttype; + +/** + * Parser option parameters + */ +typedef union css_parser_optparams { + bool quirks; +} css_parser_optparams; + +css_parser *css_parser_create(css_stylesheet *sheet, const char *charset, + css_charset_source cs_source, css_alloc alloc, void *pw); +void css_parser_destroy(css_parser *parser); + +css_error css_parser_setopt(css_parser *parser, css_parser_opttype type, + css_parser_optparams *params); + +css_error css_parser_parse_chunk(css_parser *parser, const uint8_t *data, + size_t len); +css_error css_parser_completed(css_parser *parser); + +const char *css_parser_read_charset(css_parser *parser, + css_charset_source *source); + +#endif + -- cgit v1.2.3