PageRenderTime 18ms CodeModel.GetById 13ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/cssed-0.4.0/libcroco/parser/cr-selector.h

#
C++ Header | 95 lines | 30 code | 20 blank | 45 comment | 0 complexity | b15e52b33dde10430b051918901af411 MD5 | raw file
 1/* -*- Mode: C; indent-tabs-mode: ni; c-basic-offset: 8 -*- */
 2
 3/*
 4 * This file is part of The Croco Library
 5 *
 6 * This program is free software; you can redistribute it and/or
 7 * modify it under the terms of version 2.1 of the GNU Lesser General Public
 8 * License as published by the Free Software Foundation.
 9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
18 * USA
19 *
20 *
21 * Author: Dodji Seketeli
22 * See COPYRIGHTS file for copyright information.
23 */
24
25#ifndef __CR_SELECTOR_H__
26#define __CR_SELECTOR_H__
27
28#include <stdio.h>
29#include "cr-utils.h"
30#include "cr-simple-sel.h"
31#include "cr-parsing-location.h"
32
33/**
34 *@file
35 *The declaration file of the #CRSelector file.
36 */
37
38G_BEGIN_DECLS
39
40typedef struct _CRSelector CRSelector ;
41
42/**
43 *Abstracts a CSS2 selector as defined in the right part
44 *of the 'ruleset" production in the appendix D.1 of the
45 *css2 spec.
46 *It is actually the abstraction of a comma separated list
47 *of simple selectors list.
48 *In a css2 file, a selector is a list of simple selectors
49 *separated by a comma.
50 *e.g: sel0, sel1, sel2 ...
51 *Each seln is a simple selector
52 */
53struct _CRSelector
54{
55	/**
56	 *A Selection expression.
57	 *It is a list of basic selectors.
58	 *Each basic selector can be either an element
59	 *selector, an id selector, a class selector, an
60	 *attribute selector, an universal selector etc ...
61	 */
62	CRSimpleSel *simple_sel ;
63
64	/**The next selector list element*/
65	CRSelector *next ;
66	CRSelector *prev ;
67	CRParsingLocation location ;
68	glong ref_count ;
69};
70
71CRSelector* cr_selector_new (CRSimpleSel *a_sel_expr) ;
72
73CRSelector * cr_selector_parse_from_buf (const guchar * a_char_buf,
74					 enum CREncoding a_enc) ;
75
76CRSelector* cr_selector_append (CRSelector *a_this, CRSelector *a_new) ;
77
78CRSelector* cr_selector_append_simple_sel (CRSelector *a_this,
79					   CRSimpleSel *a_simple_sel) ;
80
81CRSelector* cr_selector_prepend (CRSelector *a_this, CRSelector *a_new) ;
82
83guchar * cr_selector_to_string (CRSelector *a_this) ;
84
85void cr_selector_dump (CRSelector *a_this, FILE *a_fp) ;
86
87void cr_selector_ref (CRSelector *a_this) ;
88
89gboolean cr_selector_unref (CRSelector *a_this) ;
90
91void cr_selector_destroy (CRSelector *a_this) ;
92
93G_END_DECLS
94
95#endif /*__CR_SELECTOR_H__*/