/*! @file * This is interface for the value parser. It is intended to be used * only internally inside of the CSS engine. */ #ifndef EL__DOCUMENT_CSS_VALUE_H #define EL__DOCUMENT_CSS_VALUE_H #include "document/css/property.h" #include "document/css/scanner.h" #ifdef __cplusplus extern "C" { #endif /** This function takes a value of a specified type from the given * scanner and converts it to a reasonable struct css_property-ready * form. * * It returns positive integer upon success, zero upon parse error, * and moves the string pointer to the byte after the value end. */ int css_parse_value(struct css_property_info *propinfo, union css_property_value *value, struct scanner *scanner); /* Here come the css_property_value_parsers provided. */ /*! Takes no parser_data. */ int css_parse_background_value(struct css_property_info *propinfo, union css_property_value *value, struct scanner *scanner); /*! Takes no parser_data. */ int css_parse_color_value(struct css_property_info *propinfo, union css_property_value *value, struct scanner *scanner); /*! Takes no parser_data. */ int css_parse_display_value(struct css_property_info *propinfo, union css_property_value *value, struct scanner *scanner); /*! Takes no parser_data. */ int css_parse_text_decoration_value(struct css_property_info *propinfo, union css_property_value *value, struct scanner *scanner); /*! Takes no parser_data. */ int css_parse_font_style_value(struct css_property_info *propinfo, union css_property_value *value, struct scanner *scanner); /*! Takes no parser_data. */ int css_parse_font_weight_value(struct css_property_info *propinfo, union css_property_value *value, struct scanner *scanner); /*! Takes no parser_data. */ int css_parse_list_style_value(struct css_property_info *propinfo, union css_property_value *value, struct scanner *scanner); /*! Takes no parser_data. */ int css_parse_text_align_value(struct css_property_info *propinfo, union css_property_value *value, struct scanner *scanner); /*! Takes no parser_data. */ int css_parse_white_space_value(struct css_property_info *propinfo, union css_property_value *value, struct scanner *scanner); #ifdef __cplusplus } #endif #endif