• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/timemachine/gettext-0.17/gettext-tools/gnulib-lib/libcroco/
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 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 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__*/
96