123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- /* -*- Mode: C; indent-tabs-mode:nil; c-basic-offset: 8-*- */
- /*
- * This file is part of The Croco Library
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2.1 of the GNU Lesser General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- * USA
- *
- * Author: Dodji Seketeli
- * See COPYRIGHTS file for copyright information.
- */
- #ifndef __CR_TOKEN_H__
- #define __CR_TOKEN_H__
- #include "cr-utils.h"
- #include "cr-input.h"
- #include "cr-num.h"
- #include "cr-rgb.h"
- #include "cr-string.h"
- #include "cr-parsing-location.h"
- G_BEGIN_DECLS
- enum CRTokenType
- {
- NO_TK,
- S_TK,
- CDO_TK,
- CDC_TK,
- INCLUDES_TK,
- DASHMATCH_TK,
- COMMENT_TK,
- STRING_TK,
- IDENT_TK,
- HASH_TK,
- IMPORT_SYM_TK,
- PAGE_SYM_TK,
- MEDIA_SYM_TK,
- FONT_FACE_SYM_TK,
- CHARSET_SYM_TK,
- ATKEYWORD_TK,
- IMPORTANT_SYM_TK,
- EMS_TK,
- EXS_TK,
- LENGTH_TK,
- ANGLE_TK,
- TIME_TK,
- FREQ_TK,
- DIMEN_TK,
- PERCENTAGE_TK,
- NUMBER_TK,
- RGB_TK,
- URI_TK,
- FUNCTION_TK,
- UNICODERANGE_TK,
- SEMICOLON_TK,
- CBO_TK, /*opening curly bracket*/
- CBC_TK, /*closing curly bracket*/
- PO_TK, /*opening parenthesis*/
- PC_TK, /*closing parenthesis*/
- BO_TK, /*opening bracket*/
- BC_TK, /*closing bracket*/
- DELIM_TK
- } ;
- enum CRTokenExtraType
- {
- NO_ET = 0,
- LENGTH_PX_ET,
- LENGTH_CM_ET,
- LENGTH_MM_ET,
- LENGTH_IN_ET,
- LENGTH_PT_ET,
- LENGTH_PC_ET,
- ANGLE_DEG_ET,
- ANGLE_RAD_ET,
- ANGLE_GRAD_ET,
- TIME_MS_ET,
- TIME_S_ET,
- FREQ_HZ_ET,
- FREQ_KHZ_ET
- } ;
-
- typedef struct _CRToken CRToken ;
- /**
- *This class abstracts a css2 token.
- */
- struct _CRToken
- {
- enum CRTokenType type ;
- enum CRTokenExtraType extra_type ;
- CRInputPos pos ;
- union
- {
- CRString *str ;
- CRRgb *rgb ;
- CRNum *num ;
- guint32 unichar ;
- } u ;
- CRString * dimen ;
- CRParsingLocation location ;
- } ;
- CRToken* cr_token_new (void) ;
- enum CRStatus cr_token_set_s (CRToken *a_this) ;
- enum CRStatus cr_token_set_cdo (CRToken *a_this) ;
- enum CRStatus cr_token_set_cdc (CRToken *a_this) ;
- enum CRStatus cr_token_set_includes (CRToken *a_this) ;
- enum CRStatus cr_token_set_dashmatch (CRToken *a_this) ;
- enum CRStatus cr_token_set_comment (CRToken *a_this, CRString *a_str) ;
- enum CRStatus cr_token_set_string (CRToken *a_this, CRString *a_str) ;
- enum CRStatus cr_token_set_ident (CRToken *a_this, CRString * a_ident) ;
- enum CRStatus cr_token_set_hash (CRToken *a_this, CRString *a_hash) ;
- enum CRStatus cr_token_set_rgb (CRToken *a_this, CRRgb *a_rgb) ;
-
- enum CRStatus cr_token_set_import_sym (CRToken *a_this) ;
-
- enum CRStatus cr_token_set_page_sym (CRToken *a_this) ;
-
- enum CRStatus cr_token_set_media_sym (CRToken *a_this) ;
-
- enum CRStatus cr_token_set_font_face_sym (CRToken *a_this) ;
-
- enum CRStatus cr_token_set_charset_sym (CRToken *a_this) ;
-
- enum CRStatus cr_token_set_atkeyword (CRToken *a_this, CRString *a_atname) ;
-
- enum CRStatus cr_token_set_important_sym (CRToken *a_this) ;
-
- enum CRStatus cr_token_set_ems (CRToken *a_this, CRNum *a_num) ;
-
- enum CRStatus cr_token_set_exs (CRToken *a_this, CRNum *a_num) ;
-
- enum CRStatus cr_token_set_length (CRToken *a_this, CRNum *a_num,
- enum CRTokenExtraType a_et) ;
-
- enum CRStatus cr_token_set_angle (CRToken *a_this, CRNum *a_num,
- enum CRTokenExtraType a_et) ;
-
- enum CRStatus cr_token_set_time (CRToken *a_this, CRNum *a_num,
- enum CRTokenExtraType a_et) ;
-
- enum CRStatus cr_token_set_freq (CRToken *a_this, CRNum *a_num,
- enum CRTokenExtraType a_et) ;
- enum CRStatus cr_token_set_dimen (CRToken *a_this, CRNum *a_num,
- CRString *a_dim) ;
-
- enum CRStatus cr_token_set_percentage (CRToken *a_this, CRNum *a_num) ;
-
- enum CRStatus cr_token_set_number (CRToken *a_this, CRNum *a_num) ;
-
- enum CRStatus cr_token_set_uri (CRToken *a_this, CRString *a_uri) ;
-
- enum CRStatus cr_token_set_function (CRToken *a_this,
- CRString *a_fun_name) ;
-
- enum CRStatus cr_token_set_bc (CRToken *a_this) ;
-
- enum CRStatus cr_token_set_bo (CRToken *a_this) ;
-
- enum CRStatus cr_token_set_po (CRToken *a_this) ;
- enum CRStatus cr_token_set_pc (CRToken *a_this) ;
- enum CRStatus cr_token_set_cbc (CRToken *a_this) ;
- enum CRStatus cr_token_set_cbo (CRToken *a_this) ;
- enum CRStatus cr_token_set_semicolon (CRToken *a_this) ;
- enum CRStatus cr_token_set_delim (CRToken *a_this, guint32 a_char) ;
-
- /*
- enum CRStatus
- cr_token_set_unicoderange (CRToken *a_this,
- CRUnicodeRange *a_range) ;
- */
- void
- cr_token_destroy (CRToken *a_this) ;
-
-
- G_END_DECLS
- #endif /*__CR_TOKEN_H__*/
|