libcss
Loading...
Searching...
No Matches
utils.h
Go to the documentation of this file.
1/*
2 * This file is part of LibCSS.
3 * Licensed under the MIT License,
4 * http://www.opensource.org/licenses/mit-license.php
5 * Copyright 2008 John-Mark Bell <jmb@netsurf-browser.org>
6 */
7
8#ifndef css_css__parse_properties_utils_h_
9#define css_css__parse_properties_utils_h_
10
11#include "parse/language.h"
12
13static inline bool is_css_inherit(css_language *c, const css_token *token)
14{
15 bool match;
16 return ((token->type == CSS_TOKEN_IDENT) &&
17 (lwc_string_caseless_isequal(
18 token->idata, c->strings[INHERIT],
19 &match) == lwc_error_ok && match));
20}
21
22static inline enum flag_value get_css_flag_value(
23 css_language *c,
24 const css_token *token)
25{
26 if (token->type == CSS_TOKEN_IDENT) {
27 bool match;
28
29 if (lwc_string_caseless_isequal(
30 token->idata, c->strings[INHERIT],
31 &match) == lwc_error_ok && match) {
32 return FLAG_VALUE_INHERIT;
33 } else if (lwc_string_caseless_isequal(
34 token->idata, c->strings[INITIAL],
35 &match) == lwc_error_ok && match) {
36 return FLAG_VALUE_INITIAL;
37 } else if (lwc_string_caseless_isequal(
38 token->idata, c->strings[REVERT],
39 &match) == lwc_error_ok && match) {
40 return FLAG_VALUE_REVERT;
41 } else if (lwc_string_caseless_isequal(
42 token->idata, c->strings[UNSET],
43 &match) == lwc_error_ok && match) {
44 return FLAG_VALUE_UNSET;
45 }
46 }
47
48 return FLAG_VALUE__NONE;
49}
50
52
69 const parserutils_vector *vector, int32_t *ctx,
70 css_style *result, enum border_side_e side);
71
88 const parserutils_vector *vector, int32_t *ctx,
89 css_style *result, enum css_properties_e op);
90
107 const parserutils_vector *vector, int32_t *ctx,
108 css_style *result, enum css_properties_e op);
109
110
127 const parserutils_vector *vector, int32_t *ctx,
128 css_style *result, enum css_properties_e op);
129
130
147 const parserutils_vector *vector, int32_t *ctx,
148 css_style *result, enum css_properties_e op);
149
150
166 const parserutils_vector *vector, int32_t *ctx,
167 css_style *result, enum css_properties_e op);
168
184 const parserutils_vector *vector, int32_t *ctx,
185 css_style *result, enum css_properties_e op);
186
187
188
189
190
191
192
194 const css_token *token, uint16_t *value);
195
197 const parserutils_vector *vector, int32_t *ctx,
198 uint16_t *value, uint32_t *result);
199
201 uint32_t *result);
202
203css_error css__parse_hash_colour(lwc_string *data, uint32_t *result);
204
206 const parserutils_vector *vector, int32_t *ctx,
207 uint32_t default_unit,
208 css_fixed *length, uint32_t *unit);
209
210css_error css__parse_unit_keyword(const char *ptr, size_t len,
211 uint32_t *unit);
212
214 const parserutils_vector *vector, int32_t *ctx,
215 bool (*reserved)(css_language *c, const css_token *ident),
216 lwc_string **result);
217
219 const parserutils_vector *vector, int32_t *ctx,
220 bool (*reserved)(css_language *c, const css_token *ident),
221 lwc_string **result);
222
224 const parserutils_vector *vector, int32_t *ctx,
225 bool (*reserved)(css_language *c, const css_token *ident),
226 css_code_t (*get_value)(css_language *c,
227 const css_token *token,
228 bool first),
229 css_style *result);
230
251 const parserutils_vector *vector, int *ctx,
252 css_style *result,
253 css_code_t OPV,
254 uint32_t unit);
255#endif
unit
Definition bytecode.h:49
flag_value
Definition bytecode.h:23
@ FLAG_VALUE_INHERIT
Definition bytecode.h:25
@ FLAG_VALUE_REVERT
Definition bytecode.h:27
@ FLAG_VALUE_INITIAL
Definition bytecode.h:26
@ FLAG_VALUE_UNSET
Definition bytecode.h:28
@ FLAG_VALUE__NONE
Definition bytecode.h:24
uint32_t css_code_t
Definition bytecode.h:19
css_error
Definition errors.h:18
int32_t css_fixed
Definition fpmath.h:23
css_properties_e
Definition properties.h:16
@ CSS_TOKEN_IDENT
Definition lex.h:39
css_error css__parse_padding_side(css_language *c, const parserutils_vector *vector, int32_t *ctx, css_style *result, enum css_properties_e op)
Definition autogenerated_padding_side.c:36
css_error css__parse_border_side(css_language *c, const parserutils_vector *vector, int32_t *ctx, css_style *result, enum border_side_e side)
Definition utils.c:128
css_error css__parse_hash_colour(lwc_string *data, uint32_t *result)
Definition utils.c:1287
css_error css__parse_unit_specifier(css_language *c, const parserutils_vector *vector, int32_t *ctx, uint32_t default_unit, css_fixed *length, uint32_t *unit)
Definition utils.c:1357
css_error css__comma_list_to_style(css_language *c, const parserutils_vector *vector, int32_t *ctx, bool(*reserved)(css_language *c, const css_token *ident), css_code_t(*get_value)(css_language *c, const css_token *token, bool first), css_style *result)
Definition utils.c:1673
css_error css__ident_list_to_string(css_language *c, const parserutils_vector *vector, int32_t *ctx, bool(*reserved)(css_language *c, const css_token *ident), lwc_string **result)
Definition utils.c:1585
css_error css__ident_list_or_string_to_string(css_language *c, const parserutils_vector *vector, int32_t *ctx, bool(*reserved)(css_language *c, const css_token *ident), lwc_string **result)
Definition utils.c:1547
css_error css__parse_border_side_color(css_language *c, const parserutils_vector *vector, int32_t *ctx, css_style *result, enum css_properties_e op)
Definition autogenerated_border_side_color.c:36
css_error css__parse_margin_side(css_language *c, const parserutils_vector *vector, int32_t *ctx, css_style *result, enum css_properties_e op)
Definition autogenerated_margin_side.c:36
css_error css__parse_colour_specifier(css_language *c, const parserutils_vector *vector, int32_t *ctx, uint16_t *value, uint32_t *result)
Definition utils.c:937
css_error css__parse_calc(css_language *c, const parserutils_vector *vector, int *ctx, css_style *result, css_code_t OPV, uint32_t unit)
Definition utils.c:2046
css_error css__parse_named_colour(css_language *c, lwc_string *data, uint32_t *result)
Definition utils.c:1065
css_error css__parse_list_style_type_value(css_language *c, const css_token *token, uint16_t *value)
Definition utils.c:29
border_side_e
Definition utils.h:51
@ BORDER_SIDE_TOP
Definition utils.h:51
@ BORDER_SIDE_RIGHT
Definition utils.h:51
@ BORDER_SIDE_BOTTOM
Definition utils.h:51
@ BORDER_SIDE_LEFT
Definition utils.h:51
css_error css__parse_side(css_language *c, const parserutils_vector *vector, int32_t *ctx, css_style *result, enum css_properties_e op)
Definition autogenerated_side.c:36
css_error css__parse_border_side_width(css_language *c, const parserutils_vector *vector, int32_t *ctx, css_style *result, enum css_properties_e op)
Definition autogenerated_border_side_width.c:36
css_error css__parse_unit_keyword(const char *ptr, size_t len, uint32_t *unit)
Definition utils.c:1453
css_error css__parse_border_side_style(css_language *c, const parserutils_vector *vector, int32_t *ctx, css_style *result, enum css_properties_e op)
Definition autogenerated_border_side_style.c:36
@ REVERT
Definition propstrings.h:108
@ INITIAL
Definition propstrings.h:108
@ INHERIT
Definition propstrings.h:75
@ UNSET
Definition propstrings.h:75
Definition language.h:32
lwc_string ** strings
Definition language.h:46
Definition stylesheet.h:29
Definition lex.h:55
lwc_string * idata
Definition lex.h:63
css_token_type type
Definition lex.h:56