From 13f918ea838c1cb971daf12b54fe68f39f798ba2 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Wed, 22 Oct 2008 11:50:57 +0000 Subject: Parse common part of declarations. Stub out handlers for properties. svn path=/trunk/libcss/; revision=5620 --- build/mkprops.pl | 73 +++ src/parse/css21.c | 202 +++++- src/parse/css21props.c | 1610 ++++++++++++++++++++++++++++++++++++++++++++++++ src/stylesheet.h | 9 +- 4 files changed, 1888 insertions(+), 6 deletions(-) create mode 100755 build/mkprops.pl create mode 100644 src/parse/css21props.c diff --git a/build/mkprops.pl b/build/mkprops.pl new file mode 100755 index 0000000..5464053 --- /dev/null +++ b/build/mkprops.pl @@ -0,0 +1,73 @@ +#!/usr/bin/perl + +use warnings; +use strict; + +# Auto-generate stub handlers for CSS properties. + +my @PROPS = split(/ /, "azimuth background_attachment background_color background_image background_position background_repeat border_bottom_color border_bottom_style border_bottom_width border_collapse border_left_color border_left_style border_left_width border_right_color border_right_style border_right_width border_spacing border_top_color border_top_style border_top_width bottom caption_side clear clip color content counter_increment counter_reset cue_after cue_before cursor direction display elevation empty_cells float font_family font_size font_style font_variant font_weight height left letter_spacing line_height list_style_image list_style_position list_style_type margin_bottom margin_left margin_right margin_top max_height max_width min_height min_width orphans outline_color outline_style outline_width overflow padding_bottom padding_left padding_right padding_top page_break_after page_break_before page_break_inside pause_after pause_before pitch_range pitch play_during position quotes richness right speak_header speak_numeral speak_punctuation speak speech_rate stress table_layout text_align text_decoration text_indent text_transform top unicode_bidi vertical_align visibility voice_family volume white_space widows width word_spacing z_index"); + +print < + */ + +#ifndef css_parse_css21props_c_ +#define css_parse_css21props_c_ + +EOF +; + +foreach my $prop (@PROPS) { +print <context, (void *) &entry); if (perror != PARSERUTILS_OK) { css_stylesheet_rule_destroy(c->sheet, rule); @@ -475,19 +606,46 @@ css_error handleBlockContent(css_css21 *c, const parserutils_vector *vector) css_error handleDeclaration(css_css21 *c, const parserutils_vector *vector) { - UNUSED(c); - UNUSED(vector); + css_error error; + const css_token *token, *ident; + int ctx = 0; + context_entry *entry; + css_rule *rule; /* Locations where declarations are permitted: * * + In @page * + In ruleset */ + entry = parserutils_stack_get_current(c->context); + if (entry == NULL || (entry->type != CSS_PARSER_START_RULESET && + entry->type != CSS_PARSER_START_ATRULE)) + return CSS_INVALID; + + rule = entry->data; + if (rule == NULL || (rule->type != CSS_RULE_SELECTOR && + rule->type != CSS_RULE_PAGE)) + return CSS_INVALID; /* IDENT ws ':' ws value * * In CSS 2.1, value is any1, so '{' or ATKEYWORD => parse error */ + ident = parserutils_vector_iterate(vector, &ctx); + if (ident == NULL || ident->type != CSS_TOKEN_IDENT) + return CSS_INVALID; + + consumeWhitespace(vector, &ctx); + + token = parserutils_vector_iterate(vector, &ctx); + if (token == NULL || tokenIsChar(token, ':') == false) + return CSS_INVALID; + + consumeWhitespace(vector, &ctx); + + error = parseProperty(c, ident, vector, &ctx, rule); + if (error != CSS_OK) + return error; return CSS_OK; } @@ -897,6 +1055,44 @@ css_error parseSelectorList(css_css21 *c, const parserutils_vector *vector, return CSS_OK; } +/****************************************************************************** + * Property parsing functions * + ******************************************************************************/ + +#include "css21props.c" + +css_error parseProperty(css_css21 *c, const css_token *property, + const parserutils_vector *vector, int *ctx, css_rule *rule) +{ + css_error error; + css_prop_handler handler = NULL; + int i = 0; + css_style *style; + + /* Find property index */ + /** \todo improve on this linear search */ + for (i = FIRST_PROP; i < LAST_KNOWN; i++) { + if (property->lower.ptr == c->strings[i]) + break; + } + if (i == LAST_KNOWN) + return CSS_INVALID; + + /* Get handler */ + handler = property_handlers[i - FIRST_PROP]; + assert(handler != NULL); + + /* Call it */ + error = handler(c, vector, ctx, &style); + if (error != CSS_OK) + return error; + + /** \todo append style to rule */ + UNUSED(rule); + + return CSS_OK; +} + /****************************************************************************** * Helper functions * ******************************************************************************/ diff --git a/src/parse/css21props.c b/src/parse/css21props.c new file mode 100644 index 0000000..b115ce8 --- /dev/null +++ b/src/parse/css21props.c @@ -0,0 +1,1610 @@ +/* + * 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_css21props_c_ +#define css_parse_css21props_c_ + +static css_error parse_azimuth(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_background_attachment(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_background_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_background_image(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_background_position(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_background_repeat(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_bottom_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_bottom_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_bottom_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_collapse(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_left_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_left_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_left_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_right_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_right_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_right_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_spacing(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_top_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_top_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_border_top_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_bottom(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_caption_side(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_clear(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_clip(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_content(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_counter_increment(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_counter_reset(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_cue_after(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_cue_before(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_cursor(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_direction(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_display(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_elevation(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_empty_cells(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_float(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_font_family(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_font_size(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_font_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_font_variant(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_font_weight(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_height(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_left(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_letter_spacing(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_line_height(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_list_style_image(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_list_style_position(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_list_style_type(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_margin_bottom(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_margin_left(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_margin_right(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_margin_top(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_max_height(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_max_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_min_height(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_min_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_orphans(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_outline_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_outline_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_outline_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_overflow(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_padding_bottom(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_padding_left(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_padding_right(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_padding_top(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_page_break_after(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_page_break_before(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_page_break_inside(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_pause_after(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_pause_before(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_pitch_range(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_pitch(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_play_during(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_position(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_quotes(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_richness(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_right(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_speak_header(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_speak_numeral(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_speak_punctuation(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_speak(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_speech_rate(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_stress(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_table_layout(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_text_align(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_text_decoration(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_text_indent(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_text_transform(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_top(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_unicode_bidi(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_vertical_align(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_visibility(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_voice_family(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_volume(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_white_space(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_widows(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_word_spacing(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); +static css_error parse_z_index(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); + +/** + * Type of property handler function + */ +typedef css_error (*css_prop_handler)(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result); + +/** + * Dispatch table of property handlers, indexed by property enum + */ +static const css_prop_handler property_handlers[LAST_KNOWN - FIRST_PROP] = +{ + parse_azimuth, + parse_background_attachment, + parse_background_color, + parse_background_image, + parse_background_position, + parse_background_repeat, + parse_border_bottom_color, + parse_border_bottom_style, + parse_border_bottom_width, + parse_border_collapse, + parse_border_left_color, + parse_border_left_style, + parse_border_left_width, + parse_border_right_color, + parse_border_right_style, + parse_border_right_width, + parse_border_spacing, + parse_border_top_color, + parse_border_top_style, + parse_border_top_width, + parse_bottom, + parse_caption_side, + parse_clear, + parse_clip, + parse_color, + parse_content, + parse_counter_increment, + parse_counter_reset, + parse_cue_after, + parse_cue_before, + parse_cursor, + parse_direction, + parse_display, + parse_elevation, + parse_empty_cells, + parse_float, + parse_font_family, + parse_font_size, + parse_font_style, + parse_font_variant, + parse_font_weight, + parse_height, + parse_left, + parse_letter_spacing, + parse_line_height, + parse_list_style_image, + parse_list_style_position, + parse_list_style_type, + parse_margin_bottom, + parse_margin_left, + parse_margin_right, + parse_margin_top, + parse_max_height, + parse_max_width, + parse_min_height, + parse_min_width, + parse_orphans, + parse_outline_color, + parse_outline_style, + parse_outline_width, + parse_overflow, + parse_padding_bottom, + parse_padding_left, + parse_padding_right, + parse_padding_top, + parse_page_break_after, + parse_page_break_before, + parse_page_break_inside, + parse_pause_after, + parse_pause_before, + parse_pitch_range, + parse_pitch, + parse_play_during, + parse_position, + parse_quotes, + parse_richness, + parse_right, + parse_speak_header, + parse_speak_numeral, + parse_speak_punctuation, + parse_speak, + parse_speech_rate, + parse_stress, + parse_table_layout, + parse_text_align, + parse_text_decoration, + parse_text_indent, + parse_text_transform, + parse_top, + parse_unicode_bidi, + parse_vertical_align, + parse_visibility, + parse_voice_family, + parse_volume, + parse_white_space, + parse_widows, + parse_width, + parse_word_spacing, + parse_z_index, +}; + +css_error parse_azimuth(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_background_attachment(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_background_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_background_image(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_background_position(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_background_repeat(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_bottom_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_bottom_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_bottom_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_collapse(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_left_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_left_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_left_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_right_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_right_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_right_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_spacing(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_top_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_top_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_border_top_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_bottom(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_caption_side(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_clear(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_clip(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_content(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_counter_increment(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_counter_reset(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_cue_after(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_cue_before(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_cursor(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_direction(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_display(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_elevation(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_empty_cells(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_float(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_font_family(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_font_size(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_font_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_font_variant(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_font_weight(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_height(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_left(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_letter_spacing(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_line_height(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_list_style_image(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_list_style_position(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_list_style_type(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_margin_bottom(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_margin_left(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_margin_right(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_margin_top(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_max_height(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_max_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_min_height(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_min_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_orphans(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_outline_color(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_outline_style(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_outline_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_overflow(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_padding_bottom(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_padding_left(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_padding_right(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_padding_top(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_page_break_after(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_page_break_before(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_page_break_inside(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_pause_after(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_pause_before(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_pitch_range(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_pitch(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_play_during(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_position(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_quotes(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_richness(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_right(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_speak_header(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_speak_numeral(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_speak_punctuation(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_speak(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_speech_rate(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_stress(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_table_layout(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_text_align(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_text_decoration(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_text_indent(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_text_transform(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_top(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_unicode_bidi(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_vertical_align(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_visibility(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_voice_family(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_volume(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_white_space(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_widows(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_width(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_word_spacing(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +css_error parse_z_index(css_css21 *c, + const parserutils_vector *vector, int *ctx, + css_style **result) +{ + UNUSED(c); + UNUSED(vector); + UNUSED(ctx); + UNUSED(result); + + return CSS_OK; +} + +#endif diff --git a/src/stylesheet.h b/src/stylesheet.h index 6c014e5..99af643 100644 --- a/src/stylesheet.h +++ b/src/stylesheet.h @@ -20,7 +20,11 @@ typedef struct css_rule css_rule; typedef struct css_selector css_selector; -typedef struct css_style css_style; + +typedef struct css_style { + uint32_t length; /**< Length, in bytes, of bytecode */ + void *bytecode; /**< Pointer to bytecode */ +} css_style; typedef enum css_selector_type { CSS_SELECTOR_ELEMENT, @@ -160,14 +164,13 @@ css_error css_stylesheet_selector_append_specific(css_stylesheet *sheet, css_error css_stylesheet_selector_combine(css_stylesheet *sheet, css_combinator type, css_selector *a, css_selector *b); -/** \todo something about adding style declarations to a selector */ - css_rule *css_stylesheet_rule_create(css_stylesheet *sheet, css_rule_type type); void css_stylesheet_rule_destroy(css_stylesheet *sheet, css_rule *rule); css_error css_stylesheet_rule_add_selector(css_stylesheet *sheet, css_rule *rule, css_selector *selector); +/** \todo something about adding style declarations to a rule */ /** \todo registering other rule-type data with css_rules */ css_error css_stylesheet_add_rule(css_stylesheet *sheet, css_rule *rule); -- cgit v1.2.3