Libcroco
cr-token.h
Go to the documentation of this file.
1 /* -*- Mode: C; indent-tabs-mode:nil; 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  * Author: Dodji Seketeli
21  * See COPYRIGHTS file for copyright information.
22  */
23 
24 #ifndef __CR_TOKEN_H__
25 #define __CR_TOKEN_H__
26 
27 #include "cr-utils.h"
28 #include "cr-input.h"
29 #include "cr-num.h"
30 #include "cr-rgb.h"
31 #include "cr-string.h"
32 #include "cr-parsing-location.h"
33 
34 G_BEGIN_DECLS
35 
37 {
69  CBO_TK, /*opening curly bracket*/
70  CBC_TK, /*closing curly bracket*/
71  PO_TK, /*opening parenthesis*/
72  PC_TK, /*closing parenthesis*/
73  BO_TK, /*opening bracket*/
74  BC_TK, /*closing bracket*/
76 } ;
77 
79 {
80  NO_ET = 0,
94 } ;
95 
96 typedef struct _CRToken CRToken ;
97 
98 /**
99  *This class abstracts a css2 token.
100  */
101 struct _CRToken
102 {
106 
107  union
108  {
112  guint32 unichar ;
113  } u ;
114 
117 } ;
118 
119 CRToken* cr_token_new (void) ;
120 
121 enum CRStatus cr_token_set_s (CRToken *a_this) ;
122 
123 enum CRStatus cr_token_set_cdo (CRToken *a_this) ;
124 
125 enum CRStatus cr_token_set_cdc (CRToken *a_this) ;
126 
127 enum CRStatus cr_token_set_includes (CRToken *a_this) ;
128 
129 enum CRStatus cr_token_set_dashmatch (CRToken *a_this) ;
130 
131 enum CRStatus cr_token_set_comment (CRToken *a_this, CRString *a_str) ;
132 
133 enum CRStatus cr_token_set_string (CRToken *a_this, CRString *a_str) ;
134 
135 enum CRStatus cr_token_set_ident (CRToken *a_this, CRString * a_ident) ;
136 
137 enum CRStatus cr_token_set_hash (CRToken *a_this, CRString *a_hash) ;
138 
139 enum CRStatus cr_token_set_rgb (CRToken *a_this, CRRgb *a_rgb) ;
140 
142 
143 enum CRStatus cr_token_set_page_sym (CRToken *a_this) ;
144 
145 enum CRStatus cr_token_set_media_sym (CRToken *a_this) ;
146 
148 
150 
151 enum CRStatus cr_token_set_atkeyword (CRToken *a_this, CRString *a_atname) ;
152 
154 
155 enum CRStatus cr_token_set_ems (CRToken *a_this, CRNum *a_num) ;
156 
157 enum CRStatus cr_token_set_exs (CRToken *a_this, CRNum *a_num) ;
158 
159 enum CRStatus cr_token_set_length (CRToken *a_this, CRNum *a_num,
160  enum CRTokenExtraType a_et) ;
161 
162 enum CRStatus cr_token_set_angle (CRToken *a_this, CRNum *a_num,
163  enum CRTokenExtraType a_et) ;
164 
165 enum CRStatus cr_token_set_time (CRToken *a_this, CRNum *a_num,
166  enum CRTokenExtraType a_et) ;
167 
168 enum CRStatus cr_token_set_freq (CRToken *a_this, CRNum *a_num,
169  enum CRTokenExtraType a_et) ;
170 
171 enum CRStatus cr_token_set_dimen (CRToken *a_this, CRNum *a_num,
172  CRString *a_dim) ;
173 
174 enum CRStatus cr_token_set_percentage (CRToken *a_this, CRNum *a_num) ;
175 
176 enum CRStatus cr_token_set_number (CRToken *a_this, CRNum *a_num) ;
177 
178 enum CRStatus cr_token_set_uri (CRToken *a_this, CRString *a_uri) ;
179 
180 enum CRStatus cr_token_set_function (CRToken *a_this,
181  CRString *a_fun_name) ;
182 
183 enum CRStatus cr_token_set_bc (CRToken *a_this) ;
184 
185 enum CRStatus cr_token_set_bo (CRToken *a_this) ;
186 
187 enum CRStatus cr_token_set_po (CRToken *a_this) ;
188 
189 enum CRStatus cr_token_set_pc (CRToken *a_this) ;
190 
191 enum CRStatus cr_token_set_cbc (CRToken *a_this) ;
192 
193 enum CRStatus cr_token_set_cbo (CRToken *a_this) ;
194 
195 enum CRStatus cr_token_set_semicolon (CRToken *a_this) ;
196 
197 enum CRStatus cr_token_set_delim (CRToken *a_this, guint32 a_char) ;
198 
199 
200 /*
201  enum CRStatus
202  cr_token_set_unicoderange (CRToken *a_this,
203  CRUnicodeRange *a_range) ;
204 */
205 
206 void
207 cr_token_destroy (CRToken *a_this) ;
208 
209 
210 G_END_DECLS
211 
212 #endif /*__CR_TOKEN_H__*/
PERCENTAGE_TK
@ PERCENTAGE_TK
Definition: cr-token.h:62
cr_token_set_number
enum CRStatus cr_token_set_number(CRToken *a_this, CRNum *a_num)
Definition: cr-token.c:503
TIME_TK
@ TIME_TK
Definition: cr-token.h:59
cr_token_set_exs
enum CRStatus cr_token_set_exs(CRToken *a_this, CRNum *a_num)
Definition: cr-token.c:407
LENGTH_PT_ET
@ LENGTH_PT_ET
Definition: cr-token.h:85
_CRToken::unichar
guint32 unichar
Definition: cr-token.h:112
cr_token_set_string
enum CRStatus cr_token_set_string(CRToken *a_this, CRString *a_str)
Definition: cr-token.c:257
ANGLE_TK
@ ANGLE_TK
Definition: cr-token.h:58
LENGTH_IN_ET
@ LENGTH_IN_ET
Definition: cr-token.h:84
DELIM_TK
@ DELIM_TK
Definition: cr-token.h:75
DASHMATCH_TK
@ DASHMATCH_TK
Definition: cr-token.h:43
cr-input.h
cr_token_set_rgb
enum CRStatus cr_token_set_rgb(CRToken *a_this, CRRgb *a_rgb)
Definition: cr-token.c:307
cr_token_set_comment
enum CRStatus cr_token_set_comment(CRToken *a_this, CRString *a_str)
Definition: cr-token.c:246
CBC_TK
@ CBC_TK
Definition: cr-token.h:70
CBO_TK
@ CBO_TK
Definition: cr-token.h:69
BC_TK
@ BC_TK
Definition: cr-token.h:74
cr_token_set_charset_sym
enum CRStatus cr_token_set_charset_sym(CRToken *a_this)
Definition: cr-token.c:366
cr_token_set_import_sym
enum CRStatus cr_token_set_import_sym(CRToken *a_this)
Definition: cr-token.c:319
HASH_TK
@ HASH_TK
Definition: cr-token.h:47
cr_token_set_bo
enum CRStatus cr_token_set_bo(CRToken *a_this)
Definition: cr-token.c:601
_CRToken::rgb
CRRgb * rgb
Definition: cr-token.h:110
LENGTH_PC_ET
@ LENGTH_PC_ET
Definition: cr-token.h:86
cr_token_set_font_face_sym
enum CRStatus cr_token_set_font_face_sym(CRToken *a_this)
Definition: cr-token.c:355
_CRToken::location
CRParsingLocation location
Definition: cr-token.h:116
TIME_MS_ET
@ TIME_MS_ET
Definition: cr-token.h:90
cr_token_set_semicolon
enum CRStatus cr_token_set_semicolon(CRToken *a_this)
Definition: cr-token.c:541
NUMBER_TK
@ NUMBER_TK
Definition: cr-token.h:63
_CRToken::pos
CRInputPos pos
Definition: cr-token.h:105
cr_token_set_bc
enum CRStatus cr_token_set_bc(CRToken *a_this)
Definition: cr-token.c:613
LENGTH_TK
@ LENGTH_TK
Definition: cr-token.h:57
LENGTH_CM_ET
@ LENGTH_CM_ET
Definition: cr-token.h:82
NO_TK
@ NO_TK
Definition: cr-token.h:38
cr_token_set_po
enum CRStatus cr_token_set_po(CRToken *a_this)
Definition: cr-token.c:577
CRTokenExtraType
CRTokenExtraType
Definition: cr-token.h:78
cr_token_set_function
enum CRStatus cr_token_set_function(CRToken *a_this, CRString *a_fun_name)
Definition: cr-token.c:283
ANGLE_DEG_ET
@ ANGLE_DEG_ET
Definition: cr-token.h:87
cr_token_set_important_sym
enum CRStatus cr_token_set_important_sym(CRToken *a_this)
Definition: cr-token.c:388
_CRToken::extra_type
enum CRTokenExtraType extra_type
Definition: cr-token.h:104
FONT_FACE_SYM_TK
@ FONT_FACE_SYM_TK
Definition: cr-token.h:51
FREQ_TK
@ FREQ_TK
Definition: cr-token.h:60
TIME_S_ET
@ TIME_S_ET
Definition: cr-token.h:91
cr_token_set_freq
enum CRStatus cr_token_set_freq(CRToken *a_this, CRNum *a_num, enum CRTokenExtraType a_et)
Definition: cr-token.c:462
INCLUDES_TK
@ INCLUDES_TK
Definition: cr-token.h:42
CRString
typedefG_BEGIN_DECLS struct _CRString CRString
Definition: cr-string.h:37
S_TK
@ S_TK
Definition: cr-token.h:39
cr_token_set_s
enum CRStatus cr_token_set_s(CRToken *a_this)
Sets the type of curren instance of CRToken to 'S_TK' (S in the css2 spec)
Definition: cr-token.c:158
ATKEYWORD_TK
@ ATKEYWORD_TK
Definition: cr-token.h:53
RGB_TK
@ RGB_TK
Definition: cr-token.h:64
_CRInputPos
Definition: cr-input.h:54
PO_TK
@ PO_TK
Definition: cr-token.h:71
cr_token_set_includes
enum CRStatus cr_token_set_includes(CRToken *a_this)
Sets the type of the current instance of CRToken to INCLUDES_TK (INCLUDES as said by the css2 spec).
Definition: cr-token.c:215
ANGLE_RAD_ET
@ ANGLE_RAD_ET
Definition: cr-token.h:88
cr_token_set_cbo
enum CRStatus cr_token_set_cbo(CRToken *a_this)
Definition: cr-token.c:553
cr_token_set_length
enum CRStatus cr_token_set_length(CRToken *a_this, CRNum *a_num, enum CRTokenExtraType a_et)
Definition: cr-token.c:417
_CRNum
An abstraction of a number (num) as defined in the css2 spec.
Definition: cr-num.h:90
cr_token_set_dashmatch
enum CRStatus cr_token_set_dashmatch(CRToken *a_this)
Sets the type of the current instance of CRToken to DASHMATCH_TK (DASHMATCH as said by the css2 spec)...
Definition: cr-token.c:234
cr-string.h
cr_token_set_hash
enum CRStatus cr_token_set_hash(CRToken *a_this, CRString *a_hash)
Definition: cr-token.c:295
COMMENT_TK
@ COMMENT_TK
Definition: cr-token.h:44
cr_token_set_page_sym
enum CRStatus cr_token_set_page_sym(CRToken *a_this)
Definition: cr-token.c:331
_CRToken::type
enum CRTokenType type
Definition: cr-token.h:103
IMPORT_SYM_TK
@ IMPORT_SYM_TK
Definition: cr-token.h:48
URI_TK
@ URI_TK
Definition: cr-token.h:65
PAGE_SYM_TK
@ PAGE_SYM_TK
Definition: cr-token.h:49
_CRToken::str
CRString * str
Definition: cr-token.h:109
IMPORTANT_SYM_TK
@ IMPORTANT_SYM_TK
Definition: cr-token.h:54
_CRParsingLocation
Definition: cr-parsing-location.h:39
cr_token_set_cdc
enum CRStatus cr_token_set_cdc(CRToken *a_this)
Sets the type of the current token to CDC_TK (CDC as said by the css2 spec).
Definition: cr-token.c:196
cr_token_new
CRToken * cr_token_new(void)
Default constructor of the CRToken class.
Definition: cr-token.c:134
cr_token_set_ems
enum CRStatus cr_token_set_ems(CRToken *a_this, CRNum *a_num)
Definition: cr-token.c:397
PC_TK
@ PC_TK
Definition: cr-token.h:72
cr-num.h
_CRToken::num
CRNum * num
Definition: cr-token.h:111
FREQ_KHZ_ET
@ FREQ_KHZ_ET
Definition: cr-token.h:93
cr_token_set_atkeyword
enum CRStatus cr_token_set_atkeyword(CRToken *a_this, CRString *a_atname)
Definition: cr-token.c:377
cr_token_set_cbc
enum CRStatus cr_token_set_cbc(CRToken *a_this)
Definition: cr-token.c:565
EXS_TK
@ EXS_TK
Definition: cr-token.h:56
cr_token_destroy
void cr_token_destroy(CRToken *a_this)
The destructor of the CRToken class.
Definition: cr-token.c:629
FREQ_HZ_ET
@ FREQ_HZ_ET
Definition: cr-token.h:92
CRRgb
typedefG_BEGIN_DECLS struct _CRRgb CRRgb
Definition: cr-rgb.h:34
cr_token_set_media_sym
enum CRStatus cr_token_set_media_sym(CRToken *a_this)
Definition: cr-token.c:343
cr-parsing-location.h
SEMICOLON_TK
@ SEMICOLON_TK
Definition: cr-token.h:68
EMS_TK
@ EMS_TK
Definition: cr-token.h:55
MEDIA_SYM_TK
@ MEDIA_SYM_TK
Definition: cr-token.h:50
cr_token_set_percentage
enum CRStatus cr_token_set_percentage(CRToken *a_this, CRNum *a_num)
Definition: cr-token.c:490
STRING_TK
@ STRING_TK
Definition: cr-token.h:45
CRStatus
CRStatus
The status type returned by the methods of the croco library.
Definition: cr-utils.h:43
CRTokenType
CRTokenType
Definition: cr-token.h:36
NO_ET
@ NO_ET
Definition: cr-token.h:80
cr_token_set_dimen
enum CRStatus cr_token_set_dimen(CRToken *a_this, CRNum *a_num, CRString *a_dim)
Definition: cr-token.c:477
cr_token_set_time
enum CRStatus cr_token_set_time(CRToken *a_this, CRNum *a_num, enum CRTokenExtraType a_et)
Definition: cr-token.c:447
cr-utils.h
_CRToken
This class abstracts a css2 token.
Definition: cr-token.h:101
DIMEN_TK
@ DIMEN_TK
Definition: cr-token.h:61
cr_token_set_ident
enum CRStatus cr_token_set_ident(CRToken *a_this, CRString *a_ident)
Definition: cr-token.c:271
UNICODERANGE_TK
@ UNICODERANGE_TK
Definition: cr-token.h:67
cr_token_set_cdo
enum CRStatus cr_token_set_cdo(CRToken *a_this)
Sets the type of the current instance of CRToken to 'CDO_TK' (CDO as said by the css2 spec)
Definition: cr-token.c:177
LENGTH_PX_ET
@ LENGTH_PX_ET
Definition: cr-token.h:81
_CRToken::u
union _CRToken::@4 u
CDC_TK
@ CDC_TK
Definition: cr-token.h:41
cr_token_set_pc
enum CRStatus cr_token_set_pc(CRToken *a_this)
Definition: cr-token.c:589
FUNCTION_TK
@ FUNCTION_TK
Definition: cr-token.h:66
CDO_TK
@ CDO_TK
Definition: cr-token.h:40
cr_token_set_delim
enum CRStatus cr_token_set_delim(CRToken *a_this, guint32 a_char)
Definition: cr-token.c:528
LENGTH_MM_ET
@ LENGTH_MM_ET
Definition: cr-token.h:83
CHARSET_SYM_TK
@ CHARSET_SYM_TK
Definition: cr-token.h:52
IDENT_TK
@ IDENT_TK
Definition: cr-token.h:46
BO_TK
@ BO_TK
Definition: cr-token.h:73
cr_token_set_uri
enum CRStatus cr_token_set_uri(CRToken *a_this, CRString *a_uri)
Definition: cr-token.c:515
cr-rgb.h
ANGLE_GRAD_ET
@ ANGLE_GRAD_ET
Definition: cr-token.h:89
_CRToken::dimen
CRString * dimen
Definition: cr-token.h:115
cr_token_set_angle
enum CRStatus cr_token_set_angle(CRToken *a_this, CRNum *a_num, enum CRTokenExtraType a_et)
Definition: cr-token.c:432