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*/
75  DELIM_TK
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 {
103  enum CRTokenType type ;
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__*/
The libcroco basic input stream class declaration file.
The declaration of the CRNum class.
The declaration of the CRParsingLocation object.
typedefG_BEGIN_DECLS struct _CRRgb CRRgb
Definition: cr-rgb.h:34
Declaration file of the CRString class.
typedefG_BEGIN_DECLS struct _CRString CRString
Definition: cr-string.h:37
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
enum CRStatus cr_token_set_rgb(CRToken *a_this, CRRgb *a_rgb)
Definition: cr-token.c:307
enum CRStatus cr_token_set_angle(CRToken *a_this, CRNum *a_num, enum CRTokenExtraType a_et)
Definition: cr-token.c:432
enum CRStatus cr_token_set_page_sym(CRToken *a_this)
Definition: cr-token.c:331
enum CRStatus cr_token_set_bc(CRToken *a_this)
Definition: cr-token.c:613
enum CRStatus cr_token_set_function(CRToken *a_this, CRString *a_fun_name)
Definition: cr-token.c:283
enum CRStatus cr_token_set_delim(CRToken *a_this, guint32 a_char)
Definition: cr-token.c:528
enum CRStatus cr_token_set_media_sym(CRToken *a_this)
Definition: cr-token.c:343
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
enum CRStatus cr_token_set_important_sym(CRToken *a_this)
Definition: cr-token.c:388
enum CRStatus cr_token_set_ident(CRToken *a_this, CRString *a_ident)
Definition: cr-token.c:271
enum CRStatus cr_token_set_cbo(CRToken *a_this)
Definition: cr-token.c:553
enum CRStatus cr_token_set_freq(CRToken *a_this, CRNum *a_num, enum CRTokenExtraType a_et)
Definition: cr-token.c:462
enum CRStatus cr_token_set_cbc(CRToken *a_this)
Definition: cr-token.c:565
enum CRStatus cr_token_set_charset_sym(CRToken *a_this)
Definition: cr-token.c:366
enum CRStatus cr_token_set_bo(CRToken *a_this)
Definition: cr-token.c:601
enum CRStatus cr_token_set_ems(CRToken *a_this, CRNum *a_num)
Definition: cr-token.c:397
enum CRStatus cr_token_set_semicolon(CRToken *a_this)
Definition: cr-token.c:541
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
enum CRStatus cr_token_set_number(CRToken *a_this, CRNum *a_num)
Definition: cr-token.c:503
enum CRStatus cr_token_set_comment(CRToken *a_this, CRString *a_str)
Definition: cr-token.c:246
enum CRStatus cr_token_set_exs(CRToken *a_this, CRNum *a_num)
Definition: cr-token.c:407
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
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
enum CRStatus cr_token_set_atkeyword(CRToken *a_this, CRString *a_atname)
Definition: cr-token.c:377
CRTokenType
Definition: cr-token.h:37
@ NUMBER_TK
Definition: cr-token.h:63
@ FREQ_TK
Definition: cr-token.h:60
@ IDENT_TK
Definition: cr-token.h:46
@ ANGLE_TK
Definition: cr-token.h:58
@ INCLUDES_TK
Definition: cr-token.h:42
@ CBO_TK
Definition: cr-token.h:69
@ BO_TK
Definition: cr-token.h:73
@ EMS_TK
Definition: cr-token.h:55
@ IMPORT_SYM_TK
Definition: cr-token.h:48
@ RGB_TK
Definition: cr-token.h:64
@ MEDIA_SYM_TK
Definition: cr-token.h:50
@ SEMICOLON_TK
Definition: cr-token.h:68
@ ATKEYWORD_TK
Definition: cr-token.h:53
@ NO_TK
Definition: cr-token.h:38
@ URI_TK
Definition: cr-token.h:65
@ HASH_TK
Definition: cr-token.h:47
@ CBC_TK
Definition: cr-token.h:70
@ UNICODERANGE_TK
Definition: cr-token.h:67
@ COMMENT_TK
Definition: cr-token.h:44
@ CDO_TK
Definition: cr-token.h:40
@ CHARSET_SYM_TK
Definition: cr-token.h:52
@ FUNCTION_TK
Definition: cr-token.h:66
@ DASHMATCH_TK
Definition: cr-token.h:43
@ S_TK
Definition: cr-token.h:39
@ BC_TK
Definition: cr-token.h:74
@ DELIM_TK
Definition: cr-token.h:75
@ PAGE_SYM_TK
Definition: cr-token.h:49
@ PC_TK
Definition: cr-token.h:72
@ PERCENTAGE_TK
Definition: cr-token.h:62
@ PO_TK
Definition: cr-token.h:71
@ LENGTH_TK
Definition: cr-token.h:57
@ FONT_FACE_SYM_TK
Definition: cr-token.h:51
@ DIMEN_TK
Definition: cr-token.h:61
@ EXS_TK
Definition: cr-token.h:56
@ IMPORTANT_SYM_TK
Definition: cr-token.h:54
@ CDC_TK
Definition: cr-token.h:41
@ TIME_TK
Definition: cr-token.h:59
@ STRING_TK
Definition: cr-token.h:45
CRToken * cr_token_new(void)
Default constructor of the CRToken class.
Definition: cr-token.c:134
CRTokenExtraType
Definition: cr-token.h:79
@ FREQ_KHZ_ET
Definition: cr-token.h:93
@ TIME_S_ET
Definition: cr-token.h:91
@ LENGTH_IN_ET
Definition: cr-token.h:84
@ FREQ_HZ_ET
Definition: cr-token.h:92
@ LENGTH_PC_ET
Definition: cr-token.h:86
@ ANGLE_RAD_ET
Definition: cr-token.h:88
@ LENGTH_PX_ET
Definition: cr-token.h:81
@ TIME_MS_ET
Definition: cr-token.h:90
@ LENGTH_PT_ET
Definition: cr-token.h:85
@ LENGTH_MM_ET
Definition: cr-token.h:83
@ LENGTH_CM_ET
Definition: cr-token.h:82
@ NO_ET
Definition: cr-token.h:80
@ ANGLE_GRAD_ET
Definition: cr-token.h:89
@ ANGLE_DEG_ET
Definition: cr-token.h:87
enum CRStatus cr_token_set_po(CRToken *a_this)
Definition: cr-token.c:577
enum CRStatus cr_token_set_string(CRToken *a_this, CRString *a_str)
Definition: cr-token.c:257
enum CRStatus cr_token_set_hash(CRToken *a_this, CRString *a_hash)
Definition: cr-token.c:295
enum CRStatus cr_token_set_font_face_sym(CRToken *a_this)
Definition: cr-token.c:355
enum CRStatus cr_token_set_length(CRToken *a_this, CRNum *a_num, enum CRTokenExtraType a_et)
Definition: cr-token.c:417
enum CRStatus cr_token_set_uri(CRToken *a_this, CRString *a_uri)
Definition: cr-token.c:515
enum CRStatus cr_token_set_import_sym(CRToken *a_this)
Definition: cr-token.c:319
void cr_token_destroy(CRToken *a_this)
The destructor of the CRToken class.
Definition: cr-token.c:629
enum CRStatus cr_token_set_percentage(CRToken *a_this, CRNum *a_num)
Definition: cr-token.c:490
enum CRStatus cr_token_set_time(CRToken *a_this, CRNum *a_num, enum CRTokenExtraType a_et)
Definition: cr-token.c:447
enum CRStatus cr_token_set_pc(CRToken *a_this)
Definition: cr-token.c:589
enum CRStatus cr_token_set_dimen(CRToken *a_this, CRNum *a_num, CRString *a_dim)
Definition: cr-token.c:477
The Croco library basic types definitions And global definitions.
CRStatus
The status type returned by the methods of the croco library.
Definition: cr-utils.h:43
An abstraction of a number (num) as defined in the css2 spec.
Definition: cr-num.h:91
This class abstracts a css2 token.
Definition: cr-token.h:102
CRNum * num
Definition: cr-token.h:111
CRString * dimen
Definition: cr-token.h:115
CRRgb * rgb
Definition: cr-token.h:110
CRParsingLocation location
Definition: cr-token.h:116
CRString * str
Definition: cr-token.h:109
enum CRTokenType type
Definition: cr-token.h:103
guint32 unichar
Definition: cr-token.h:112
union _CRToken::@4 u
enum CRTokenExtraType extra_type
Definition: cr-token.h:104
CRInputPos pos
Definition: cr-token.h:105