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 2009 John-Mark Bell <jmb@netsurf-browser.org>
6  */
7 
8 #ifndef css_css__parse_properties_properties_h_
9 #define css_css__parse_properties_properties_h_
10 
11 #include "stylesheet.h"
12 #include "lex/lex.h"
13 #include "parse/language.h"
14 #include "parse/propstrings.h"
15 
16 /**
17  * Type of property handler function
18  */
19 typedef css_error (*css_prop_handler)(css_language *c,
20 		const parserutils_vector *vector, int *ctx,
21 		css_style *result);
22 
23 extern const css_prop_handler property_handlers[LAST_PROP + 1 - FIRST_PROP];
24 
25 css_error css__parse_align_content(css_language *c,
26 		const parserutils_vector *vector, int *ctx,
27 		css_style *result);
28 css_error css__parse_align_items(css_language *c,
29 		const parserutils_vector *vector, int *ctx,
30 		css_style *result);
31 css_error css__parse_align_self(css_language *c,
32 		const parserutils_vector *vector, int *ctx,
33 		css_style *result);
34 css_error css__parse_azimuth(css_language *c,
35 		const parserutils_vector *vector, int *ctx,
36 		css_style *result);
37 css_error css__parse_background(css_language *c,
38 		const parserutils_vector *vector, int *ctx,
39 		css_style *result);
40 css_error css__parse_background_attachment(css_language *c,
41 		const parserutils_vector *vector, int *ctx,
42 		css_style *result);
43 css_error css__parse_background_color(css_language *c,
44 		const parserutils_vector *vector, int *ctx,
45 		css_style *result);
46 css_error css__parse_background_image(css_language *c,
47 		const parserutils_vector *vector, int *ctx,
48 		css_style *result);
49 css_error css__parse_background_position(css_language *c,
50 		const parserutils_vector *vector, int *ctx,
51 		css_style *result);
52 css_error css__parse_background_repeat(css_language *c,
53 		const parserutils_vector *vector, int *ctx,
54 		css_style *result);
55 css_error css__parse_border(css_language *c,
56 		const parserutils_vector *vector, int *ctx,
57 		css_style *result);
58 css_error css__parse_border_bottom(css_language *c,
59 		const parserutils_vector *vector, int *ctx,
60 		css_style *result);
61 css_error css__parse_border_bottom_color(css_language *c,
62 		const parserutils_vector *vector, int *ctx,
63 		css_style *result);
64 css_error css__parse_border_bottom_style(css_language *c,
65 		const parserutils_vector *vector, int *ctx,
66 		css_style *result);
67 css_error css__parse_border_bottom_width(css_language *c,
68 		const parserutils_vector *vector, int *ctx,
69 		css_style *result);
70 css_error css__parse_border_color(css_language *c,
71 		const parserutils_vector *vector, int *ctx,
72 		css_style *result);
73 css_error css__parse_border_collapse(css_language *c,
74 		const parserutils_vector *vector, int *ctx,
75 		css_style *result);
76 css_error css__parse_border_left(css_language *c,
77 		const parserutils_vector *vector, int *ctx,
78 		css_style *result);
79 css_error css__parse_border_left_color(css_language *c,
80 		const parserutils_vector *vector, int *ctx,
81 		css_style *result);
82 css_error css__parse_border_left_style(css_language *c,
83 		const parserutils_vector *vector, int *ctx,
84 		css_style *result);
85 css_error css__parse_border_left_width(css_language *c,
86 		const parserutils_vector *vector, int *ctx,
87 		css_style *result);
88 css_error css__parse_border_right(css_language *c,
89 		const parserutils_vector *vector, int *ctx,
90 		css_style *result);
91 css_error css__parse_border_right_color(css_language *c,
92 		const parserutils_vector *vector, int *ctx,
93 		css_style *result);
94 css_error css__parse_border_right_style(css_language *c,
95 		const parserutils_vector *vector, int *ctx,
96 		css_style *result);
97 css_error css__parse_border_right_width(css_language *c,
98 		const parserutils_vector *vector, int *ctx,
99 		css_style *result);
100 css_error css__parse_border_spacing(css_language *c,
101 		const parserutils_vector *vector, int *ctx,
102 		css_style *result);
103 css_error css__parse_border_style(css_language *c,
104 		const parserutils_vector *vector, int *ctx,
105 		css_style *result);
106 css_error css__parse_border_top(css_language *c,
107 		const parserutils_vector *vector, int *ctx,
108 		css_style *result);
109 css_error css__parse_border_top_color(css_language *c,
110 		const parserutils_vector *vector, int *ctx,
111 		css_style *result);
112 css_error css__parse_border_top_style(css_language *c,
113 		const parserutils_vector *vector, int *ctx,
114 		css_style *result);
115 css_error css__parse_border_top_width(css_language *c,
116 		const parserutils_vector *vector, int *ctx,
117 		css_style *result);
118 css_error css__parse_border_width(css_language *c,
119 		const parserutils_vector *vector, int *ctx,
120 		css_style *result);
121 css_error css__parse_bottom(css_language *c,
122 		const parserutils_vector *vector, int *ctx,
123 		css_style *result);
124 css_error css__parse_box_sizing(css_language *c,
125 		const parserutils_vector *vector, int *ctx,
126 		css_style *result);
127 css_error css__parse_break_after(css_language *c,
128 		const parserutils_vector *vector, int *ctx,
129 		css_style *result);
130 css_error css__parse_break_before(css_language *c,
131 		const parserutils_vector *vector, int *ctx,
132 		css_style *result);
133 css_error css__parse_break_inside(css_language *c,
134 		const parserutils_vector *vector, int *ctx,
135 		css_style *result);
136 css_error css__parse_caption_side(css_language *c,
137 		const parserutils_vector *vector, int *ctx,
138 		css_style *result);
139 css_error css__parse_clear(css_language *c,
140 		const parserutils_vector *vector, int *ctx,
141 		css_style *result);
142 css_error css__parse_clip(css_language *c,
143 		const parserutils_vector *vector, int *ctx,
144 		css_style *result);
145 css_error css__parse_color(css_language *c,
146 		const parserutils_vector *vector, int *ctx,
147 		css_style *result);
148 css_error css__parse_columns(css_language *c,
149 		const parserutils_vector *vector, int *ctx,
150 		css_style *result);
151 css_error css__parse_column_count(css_language *c,
152 		const parserutils_vector *vector, int *ctx,
153 		css_style *result);
154 css_error css__parse_column_fill(css_language *c,
155 		const parserutils_vector *vector, int *ctx,
156 		css_style *result);
157 css_error css__parse_column_gap(css_language *c,
158 		const parserutils_vector *vector, int *ctx,
159 		css_style *result);
160 css_error css__parse_column_rule(css_language *c,
161 		const parserutils_vector *vector, int *ctx,
162 		css_style *result);
163 css_error css__parse_column_rule_color(css_language *c,
164 		const parserutils_vector *vector, int *ctx,
165 		css_style *result);
166 css_error css__parse_column_rule_style(css_language *c,
167 		const parserutils_vector *vector, int *ctx,
168 		css_style *result);
169 css_error css__parse_column_rule_width(css_language *c,
170 		const parserutils_vector *vector, int *ctx,
171 		css_style *result);
172 css_error css__parse_column_span(css_language *c,
173 		const parserutils_vector *vector, int *ctx,
174 		css_style *result);
175 css_error css__parse_column_width(css_language *c,
176 		const parserutils_vector *vector, int *ctx,
177 		css_style *result);
178 css_error css__parse_content(css_language *c,
179 		const parserutils_vector *vector, int *ctx,
180 		css_style *result);
181 css_error css__parse_counter_increment(css_language *c,
182 		const parserutils_vector *vector, int *ctx,
183 		css_style *result);
184 css_error css__parse_counter_reset(css_language *c,
185 		const parserutils_vector *vector, int *ctx,
186 		css_style *result);
187 css_error css__parse_cue(css_language *c,
188 		const parserutils_vector *vector, int *ctx,
189 		css_style *result);
190 css_error css__parse_cue_after(css_language *c,
191 		const parserutils_vector *vector, int *ctx,
192 		css_style *result);
193 css_error css__parse_cue_before(css_language *c,
194 		const parserutils_vector *vector, int *ctx,
195 		css_style *result);
196 css_error css__parse_cursor(css_language *c,
197 		const parserutils_vector *vector, int *ctx,
198 		css_style *result);
199 css_error css__parse_direction(css_language *c,
200 		const parserutils_vector *vector, int *ctx,
201 		css_style *result);
202 css_error css__parse_display(css_language *c,
203 		const parserutils_vector *vector, int *ctx,
204 		css_style *result);
205 css_error css__parse_elevation(css_language *c,
206 		const parserutils_vector *vector, int *ctx,
207 		css_style *result);
208 css_error css__parse_empty_cells(css_language *c,
209 		const parserutils_vector *vector, int *ctx,
210 		css_style *result);
211 css_error css__parse_flex(css_language *c,
212 		const parserutils_vector *vector, int *ctx,
213 		css_style *result);
214 css_error css__parse_flex_basis(css_language *c,
215 		const parserutils_vector *vector, int *ctx,
216 		css_style *result);
217 css_error css__parse_flex_direction(css_language *c,
218 		const parserutils_vector *vector, int *ctx,
219 		css_style *result);
220 css_error css__parse_flex_flow(css_language *c,
221 		const parserutils_vector *vector, int *ctx,
222 		css_style *result);
223 css_error css__parse_flex_grow(css_language *c,
224 		const parserutils_vector *vector, int *ctx,
225 		css_style *result);
226 css_error css__parse_flex_shrink(css_language *c,
227 		const parserutils_vector *vector, int *ctx,
228 		css_style *result);
229 css_error css__parse_flex_wrap(css_language *c,
230 		const parserutils_vector *vector, int *ctx,
231 		css_style *result);
232 css_error css__parse_float(css_language *c,
233 		const parserutils_vector *vector, int *ctx,
234 		css_style *result);
235 css_error css__parse_font(css_language *c,
236 		const parserutils_vector *vector, int *ctx,
237 		css_style *result);
238 css_error css__parse_font_family(css_language *c,
239 		const parserutils_vector *vector, int *ctx,
240 		css_style *result);
241 css_error css__parse_font_size(css_language *c,
242 		const parserutils_vector *vector, int *ctx,
243 		css_style *result);
244 css_error css__parse_font_style(css_language *c,
245 		const parserutils_vector *vector, int *ctx,
246 		css_style *result);
247 css_error css__parse_font_variant(css_language *c,
248 		const parserutils_vector *vector, int *ctx,
249 		css_style *result);
250 css_error css__parse_font_weight(css_language *c,
251 		const parserutils_vector *vector, int *ctx,
252 		css_style *result);
253 css_error css__parse_height(css_language *c,
254 		const parserutils_vector *vector, int *ctx,
255 		css_style *result);
256 css_error css__parse_justify_content(css_language *c,
257 		const parserutils_vector *vector, int *ctx,
258 		css_style *result);
259 css_error css__parse_left(css_language *c,
260 		const parserutils_vector *vector, int *ctx,
261 		css_style *result);
262 css_error css__parse_letter_spacing(css_language *c,
263 		const parserutils_vector *vector, int *ctx,
264 		css_style *result);
265 css_error css__parse_line_height(css_language *c,
266 		const parserutils_vector *vector, int *ctx,
267 		css_style *result);
268 css_error css__parse_list_style(css_language *c,
269 		const parserutils_vector *vector, int *ctx,
270 		css_style *result);
271 css_error css__parse_list_style_image(css_language *c,
272 		const parserutils_vector *vector, int *ctx,
273 		css_style *result);
274 css_error css__parse_list_style_position(css_language *c,
275 		const parserutils_vector *vector, int *ctx,
276 		css_style *result);
277 css_error css__parse_list_style_type(css_language *c,
278 		const parserutils_vector *vector, int *ctx,
279 		css_style *result);
280 css_error css__parse_margin(css_language *c,
281 		const parserutils_vector *vector, int *ctx,
282 		css_style *result);
283 css_error css__parse_margin_bottom(css_language *c,
284 		const parserutils_vector *vector, int *ctx,
285 		css_style *result);
286 css_error css__parse_margin_left(css_language *c,
287 		const parserutils_vector *vector, int *ctx,
288 		css_style *result);
289 css_error css__parse_margin_right(css_language *c,
290 		const parserutils_vector *vector, int *ctx,
291 		css_style *result);
292 css_error css__parse_margin_top(css_language *c,
293 		const parserutils_vector *vector, int *ctx,
294 		css_style *result);
295 css_error css__parse_max_height(css_language *c,
296 		const parserutils_vector *vector, int *ctx,
297 		css_style *result);
298 css_error css__parse_max_width(css_language *c,
299 		const parserutils_vector *vector, int *ctx,
300 		css_style *result);
301 css_error css__parse_min_height(css_language *c,
302 		const parserutils_vector *vector, int *ctx,
303 		css_style *result);
304 css_error css__parse_min_width(css_language *c,
305 		const parserutils_vector *vector, int *ctx,
306 		css_style *result);
307 css_error css__parse_opacity(css_language *c,
308 		const parserutils_vector *vector, int *ctx,
309 		css_style *result);
310 css_error css__parse_order(css_language *c,
311 		const parserutils_vector *vector, int *ctx,
312 		css_style *result);
313 css_error css__parse_orphans(css_language *c,
314 		const parserutils_vector *vector, int *ctx,
315 		css_style *result);
316 css_error css__parse_outline(css_language *c,
317 		const parserutils_vector *vector, int *ctx,
318 		css_style *result);
319 css_error css__parse_outline_color(css_language *c,
320 		const parserutils_vector *vector, int *ctx,
321 		css_style *result);
322 css_error css__parse_outline_style(css_language *c,
323 		const parserutils_vector *vector, int *ctx,
324 		css_style *result);
325 css_error css__parse_outline_width(css_language *c,
326 		const parserutils_vector *vector, int *ctx,
327 		css_style *result);
328 css_error css__parse_overflow(css_language *c,
329 		const parserutils_vector *vector, int *ctx,
330 		css_style *result);
331 css_error css__parse_overflow_x(css_language *c,
332 		const parserutils_vector *vector, int *ctx,
333 		css_style *result);
334 css_error css__parse_overflow_y(css_language *c,
335 		const parserutils_vector *vector, int *ctx,
336 		css_style *result);
337 css_error css__parse_padding(css_language *c,
338 		const parserutils_vector *vector, int *ctx,
339 		css_style *result);
340 css_error css__parse_padding_bottom(css_language *c,
341 		const parserutils_vector *vector, int *ctx,
342 		css_style *result);
343 css_error css__parse_padding_left(css_language *c,
344 		const parserutils_vector *vector, int *ctx,
345 		css_style *result);
346 css_error css__parse_padding_right(css_language *c,
347 		const parserutils_vector *vector, int *ctx,
348 		css_style *result);
349 css_error css__parse_padding_top(css_language *c,
350 		const parserutils_vector *vector, int *ctx,
351 		css_style *result);
352 css_error css__parse_page_break_after(css_language *c,
353 		const parserutils_vector *vector, int *ctx,
354 		css_style *result);
355 css_error css__parse_page_break_before(css_language *c,
356 		const parserutils_vector *vector, int *ctx,
357 		css_style *result);
358 css_error css__parse_page_break_inside(css_language *c,
359 		const parserutils_vector *vector, int *ctx,
360 		css_style *result);
361 css_error css__parse_pause(css_language *c,
362 		const parserutils_vector *vector, int *ctx,
363 		css_style *result);
364 css_error css__parse_pause_after(css_language *c,
365 		const parserutils_vector *vector, int *ctx,
366 		css_style *result);
367 css_error css__parse_pause_before(css_language *c,
368 		const parserutils_vector *vector, int *ctx,
369 		css_style *result);
370 css_error css__parse_pitch_range(css_language *c,
371 		const parserutils_vector *vector, int *ctx,
372 		css_style *result);
373 css_error css__parse_pitch(css_language *c,
374 		const parserutils_vector *vector, int *ctx,
375 		css_style *result);
376 css_error css__parse_play_during(css_language *c,
377 		const parserutils_vector *vector, int *ctx,
378 		css_style *result);
379 css_error css__parse_position(css_language *c,
380 		const parserutils_vector *vector, int *ctx,
381 		css_style *result);
382 css_error css__parse_quotes(css_language *c,
383 		const parserutils_vector *vector, int *ctx,
384 		css_style *result);
385 css_error css__parse_richness(css_language *c,
386 		const parserutils_vector *vector, int *ctx,
387 		css_style *result);
388 css_error css__parse_right(css_language *c,
389 		const parserutils_vector *vector, int *ctx,
390 		css_style *result);
391 css_error css__parse_speak_header(css_language *c,
392 		const parserutils_vector *vector, int *ctx,
393 		css_style *result);
394 css_error css__parse_speak_numeral(css_language *c,
395 		const parserutils_vector *vector, int *ctx,
396 		css_style *result);
397 css_error css__parse_speak_punctuation(css_language *c,
398 		const parserutils_vector *vector, int *ctx,
399 		css_style *result);
400 css_error css__parse_speak(css_language *c,
401 		const parserutils_vector *vector, int *ctx,
402 		css_style *result);
403 css_error css__parse_speech_rate(css_language *c,
404 		const parserutils_vector *vector, int *ctx,
405 		css_style *result);
406 css_error css__parse_stress(css_language *c,
407 		const parserutils_vector *vector, int *ctx,
408 		css_style *result);
409 css_error css__parse_table_layout(css_language *c,
410 		const parserutils_vector *vector, int *ctx,
411 		css_style *result);
412 css_error css__parse_text_align(css_language *c,
413 		const parserutils_vector *vector, int *ctx,
414 		css_style *result);
415 css_error css__parse_text_decoration(css_language *c,
416 		const parserutils_vector *vector, int *ctx,
417 		css_style *result);
418 css_error css__parse_text_indent(css_language *c,
419 		const parserutils_vector *vector, int *ctx,
420 		css_style *result);
421 css_error css__parse_text_transform(css_language *c,
422 		const parserutils_vector *vector, int *ctx,
423 		css_style *result);
424 css_error css__parse_top(css_language *c,
425 		const parserutils_vector *vector, int *ctx,
426 		css_style *result);
427 css_error css__parse_unicode_bidi(css_language *c,
428 		const parserutils_vector *vector, int *ctx,
429 		css_style *result);
430 css_error css__parse_vertical_align(css_language *c,
431 		const parserutils_vector *vector, int *ctx,
432 		css_style *result);
433 css_error css__parse_visibility(css_language *c,
434 		const parserutils_vector *vector, int *ctx,
435 		css_style *result);
436 css_error css__parse_voice_family(css_language *c,
437 		const parserutils_vector *vector, int *ctx,
438 		css_style *result);
439 css_error css__parse_volume(css_language *c,
440 		const parserutils_vector *vector, int *ctx,
441 		css_style *result);
442 css_error css__parse_white_space(css_language *c,
443 		const parserutils_vector *vector, int *ctx,
444 		css_style *result);
445 css_error css__parse_widows(css_language *c,
446 		const parserutils_vector *vector, int *ctx,
447 		css_style *result);
448 css_error css__parse_width(css_language *c,
449 		const parserutils_vector *vector, int *ctx,
450 		css_style *result);
451 css_error css__parse_word_spacing(css_language *c,
452 		const parserutils_vector *vector, int *ctx,
453 		css_style *result);
454 css_error css__parse_writing_mode(css_language *c,
455 		const parserutils_vector *vector, int *ctx,
456 		css_style *result);
457 css_error css__parse_z_index(css_language *c,
458 		const parserutils_vector *vector, int *ctx,
459 		css_style *result);
460 
461 #endif
462