cr-term.h File Reference

Declaration of the CRTem class. More...

#include <stdio.h>
#include <glib.h>
#include "cr-utils.h"
#include "cr-rgb.h"
#include "cr-num.h"
#include "cr-string.h"

Go to the source code of this file.

Data Structures

struct  _CRTerm
 An abstraction of a css2 term as defined in the CSS2 spec in appendix D.1: term ::= [ NUMBER S* | PERCENTAGE S* | LENGTH S* | EMS S* | EXS S* | ANGLE S* | TIME S* | FREQ S* | function ] | STRING S* | IDENT S* | URI S* | RGB S* | UNICODERANGE S* | hexcolor. More...

Typedefs

typedef _CRTerm CRTerm

Enumerations

enum  CRTermType {
  TERM_NO_TYPE = 0, TERM_NUMBER, TERM_FUNCTION, TERM_STRING,
  TERM_IDENT, TERM_URI, TERM_RGB, TERM_UNICODERANGE,
  TERM_HASH
}
enum  UnaryOperator { NO_UNARY_UOP = 0, PLUS_UOP, MINUS_UOP, EMPTY_UNARY_UOP }
enum  Operator { NO_OP = 0, DIVIDE, COMMA }

Functions

CRTermcr_term_parse_expression_from_buf (const guchar *a_buf, enum CREncoding a_encoding)
 Parses an expresion as defined by the css2 spec and builds the expression as a list of terms.
CRTermcr_term_new (void)
 Instanciate a CRTerm.
enum CRStatus cr_term_set_number (CRTerm *a_this, CRNum *a_num)
enum CRStatus cr_term_set_function (CRTerm *a_this, CRString *a_func_name, CRTerm *a_func_param)
enum CRStatus cr_term_set_string (CRTerm *a_this, CRString *a_str)
enum CRStatus cr_term_set_ident (CRTerm *a_this, CRString *a_str)
enum CRStatus cr_term_set_uri (CRTerm *a_this, CRString *a_str)
enum CRStatus cr_term_set_rgb (CRTerm *a_this, CRRgb *a_rgb)
enum CRStatus cr_term_set_hash (CRTerm *a_this, CRString *a_str)
CRTermcr_term_append_term (CRTerm *a_this, CRTerm *a_new_term)
 Appends a new term to the current list of CRTerm.
CRTermcr_term_prepend_term (CRTerm *a_this, CRTerm *a_new_term)
 Prepends a term to the list of terms represented by a_this.
guchar * cr_term_to_string (CRTerm *a_this)
 Serializes the expression represented by the chained instances of CRterm.
guchar * cr_term_one_to_string (CRTerm *a_this)
void cr_term_dump (CRTerm *a_this, FILE *a_fp)
 Dumps the expression (a list of terms connected by operators) to a file.
int cr_term_nr_values (CRTerm *a_this)
 Return the number of terms in the expression.
CRTermcr_term_get_from_list (CRTerm *a_this, int itemnr)
 Use an index to get a CRTerm from the expression.
void cr_term_ref (CRTerm *a_this)
 Increments the reference counter of the current instance of CRTerm.
gboolean cr_term_unref (CRTerm *a_this)
 Decrements the ref count of the current instance of CRTerm.
void cr_term_destroy (CRTerm *a_term)
 The destructor of the the CRTerm class.


Detailed Description

Declaration of the CRTem class.

Definition in file cr-term.h.


Typedef Documentation

typedef struct _CRTerm CRTerm
 

Definition at line 71 of file cr-term.h.


Enumeration Type Documentation

enum CRTermType
 

Enumerator:
TERM_NO_TYPE 
TERM_NUMBER 
TERM_FUNCTION 
TERM_STRING 
TERM_IDENT 
TERM_URI 
TERM_RGB 
TERM_UNICODERANGE 
TERM_HASH 

Definition at line 41 of file cr-term.h.

enum Operator
 

Enumerator:
NO_OP 
DIVIDE 
COMMA 

Definition at line 63 of file cr-term.h.

enum UnaryOperator
 

Enumerator:
NO_UNARY_UOP 
PLUS_UOP 
MINUS_UOP 
EMPTY_UNARY_UOP 

Definition at line 55 of file cr-term.h.


Function Documentation

CRTerm* cr_term_append_term CRTerm a_this,
CRTerm a_new_term
 

Appends a new term to the current list of CRTerm.

Parameters:
a_this the "this pointer" of the current instance of CRTerm .
a_new_term the term to append.
Returns:
the list of terms with the a_new_term appended to it.

Definition at line 235 of file cr-term.c.

References _CRTerm::next, and _CRTerm::prev.

Referenced by cr_parser_parse_declaration(), cr_parser_parse_expr(), and cr_parser_parse_term().

void cr_term_destroy CRTerm a_this  ) 
 

The destructor of the the CRTerm class.

Parameters:
a_this the "this pointer" of the current instance of CRTerm.

Definition at line 776 of file cr-term.c.

References cr_term_destroy(), and _CRTerm::next.

Referenced by cr_declaration_parse_from_buf(), cr_parser_parse_declaration(), cr_parser_parse_term(), cr_rgb_parse_from_buf(), cr_term_destroy(), cr_term_parse_expression_from_buf(), and cr_term_unref().

void cr_term_dump CRTerm a_this,
FILE *  a_fp
 

Dumps the expression (a list of terms connected by operators) to a file.

TODO: finish the dump. The dump of some type of terms have not yet been implemented.

Parameters:
a_this the current instance of CRTerm.
a_fp the destination file pointer.

Definition at line 680 of file cr-term.c.

References cr_term_to_string().

CRTerm* cr_term_get_from_list CRTerm a_this,
int  itemnr
 

Use an index to get a CRTerm from the expression.

Parameters:
a_this the current instance of CRTerm.
itemnr the index into the expression.
Returns:
CRTerm at position itemnr, if itemnr > number of terms - 1, it will return NULL.

Definition at line 720 of file cr-term.c.

References _CRTerm::next.

CRTerm* cr_term_new void   ) 
 

Instanciate a CRTerm.

Returns:
the newly build instance of CRTerm.

Definition at line 85 of file cr-term.c.

References cr_utils_trace_info.

Referenced by cr_parser_parse_term().

int cr_term_nr_values CRTerm a_this  ) 
 

Return the number of terms in the expression.

Parameters:
a_this the current instance of CRTerm.
Returns:
number of terms in the expression.

Definition at line 700 of file cr-term.c.

References _CRTerm::next.

guchar* cr_term_one_to_string CRTerm a_this  ) 
 

Definition at line 476 of file cr-term.c.

References COMMA, _CRTerm::content, cr_num_to_string(), cr_rgb_to_string(), cr_term_to_string(), DIVIDE, _CRTerm::ext_content, _CRTerm::func_param, MINUS_UOP, NO_OP, _CRTerm::num, PLUS_UOP, _CRTerm::prev, _CRTerm::rgb, _CRTerm::str, TERM_FUNCTION, TERM_HASH, TERM_IDENT, TERM_NUMBER, TERM_RGB, TERM_STRING, TERM_UNICODERANGE, TERM_URI, _CRTerm::the_operator, _CRTerm::type, and _CRTerm::unary_op.

CRTerm* cr_term_parse_expression_from_buf const guchar *  a_buf,
enum CREncoding  a_encoding
 

Parses an expresion as defined by the css2 spec and builds the expression as a list of terms.

Parameters:
a_buf the buffer to parse.
Returns:
a pointer to the first term of the expression or NULL if parsing failed.

Definition at line 106 of file cr-term.c.

References CR_OK, cr_parser_destroy(), cr_parser_new_from_buf(), cr_parser_parse_expr(), cr_parser_try_to_skip_spaces_and_comments(), and cr_term_destroy().

CRTerm* cr_term_prepend_term CRTerm a_this,
CRTerm a_new_term
 

Prepends a term to the list of terms represented by a_this.

Parameters:
a_this the "this pointer" of the current instance of CRTerm .
a_new_term the term to prepend.
Returns:
the head of the new list.

Definition at line 261 of file cr-term.c.

References _CRTerm::next, and _CRTerm::prev.

void cr_term_ref CRTerm a_this  ) 
 

Increments the reference counter of the current instance of CRTerm.

*

Parameters:
a_this the current instance of CRTerm.

Definition at line 739 of file cr-term.c.

References _CRTerm::ref_count.

Referenced by cr_declaration_new(), cr_parser_parse_font_face(), cr_parser_parse_page(), and cr_parser_parse_ruleset().

enum CRStatus cr_term_set_function CRTerm a_this,
CRString a_func_name,
CRTerm a_func_param
 

Definition at line 153 of file cr-term.c.

References _CRTerm::content, CR_BAD_PARAM_ERROR, CR_OK, _CRTerm::ext_content, _CRTerm::func_param, _CRTerm::str, TERM_FUNCTION, and _CRTerm::type.

Referenced by cr_parser_parse_term().

enum CRStatus cr_term_set_hash CRTerm a_this,
CRString a_str
 

Definition at line 215 of file cr-term.c.

References _CRTerm::content, CR_BAD_PARAM_ERROR, CR_OK, _CRTerm::str, TERM_HASH, and _CRTerm::type.

Referenced by cr_parser_parse_term().

enum CRStatus cr_term_set_ident CRTerm a_this,
CRString a_str
 

Definition at line 179 of file cr-term.c.

References _CRTerm::content, CR_BAD_PARAM_ERROR, CR_OK, _CRTerm::str, TERM_IDENT, and _CRTerm::type.

Referenced by cr_parser_parse_term().

enum CRStatus cr_term_set_number CRTerm a_this,
CRNum a_num
 

Definition at line 141 of file cr-term.c.

References _CRTerm::content, CR_BAD_PARAM_ERROR, CR_OK, _CRTerm::num, TERM_NUMBER, and _CRTerm::type.

Referenced by cr_parser_parse_term().

enum CRStatus cr_term_set_rgb CRTerm a_this,
CRRgb a_rgb
 

Definition at line 203 of file cr-term.c.

References _CRTerm::content, CR_BAD_PARAM_ERROR, CR_OK, _CRTerm::rgb, TERM_RGB, and _CRTerm::type.

Referenced by cr_parser_parse_term().

enum CRStatus cr_term_set_string CRTerm a_this,
CRString a_str
 

Definition at line 167 of file cr-term.c.

References _CRTerm::content, CR_BAD_PARAM_ERROR, CR_OK, _CRTerm::str, TERM_STRING, and _CRTerm::type.

Referenced by cr_parser_parse_term().

enum CRStatus cr_term_set_uri CRTerm a_this,
CRString a_str
 

Definition at line 191 of file cr-term.c.

References _CRTerm::content, CR_BAD_PARAM_ERROR, CR_OK, _CRTerm::str, TERM_URI, and _CRTerm::type.

Referenced by cr_parser_parse_term().

guchar* cr_term_to_string CRTerm a_this  ) 
 

Serializes the expression represented by the chained instances of CRterm.

Parameters:
a_this the current instance of CRTerm
Returns:
the zero terminated string containing the serialized form of CRTerm. MUST BE FREED BY THE CALLER using g_free().

Definition at line 279 of file cr-term.c.

References COMMA, _CRTerm::content, DIVIDE, _CRTerm::next, NO_OP, _CRTerm::num, _CRTerm::prev, _CRTerm::rgb, _CRTerm::str, and _CRTerm::the_operator.

Referenced by cr_declaration_to_string(), cr_term_dump(), and cr_term_one_to_string().

gboolean cr_term_unref CRTerm a_this  ) 
 

Decrements the ref count of the current instance of CRTerm.

If the ref count reaches zero, the instance is destroyed.

Parameters:
a_this the current instance of CRTerm.
Returns:
TRUE if the current instance has been destroyed, FALSE otherwise.

Definition at line 754 of file cr-term.c.

References cr_term_destroy(), and _CRTerm::ref_count.

Referenced by cr_parser_parse_font_face(), cr_parser_parse_page(), and cr_parser_parse_ruleset().


Generated on Thu Mar 9 19:18:52 2006 for Libcroco by  doxygen 1.4.6