Functions
cr_term_parse_expression_from_buf ()
CRTerm *
cr_term_parse_expression_from_buf (const guchar *a_buf,
                                   enum CREncoding a_encoding);
 
cr_term_new ()
CRTerm *
cr_term_new (void);
 
cr_term_prepend_term ()
CRTerm *
cr_term_prepend_term (CRTerm *a_this,
                      CRTerm *a_new_term);
 
cr_term_to_string ()
guchar *
cr_term_to_string (CRTerm const *a_this);
 
cr_term_one_to_string ()
guchar *
cr_term_one_to_string (CRTerm const *a_this);
 
cr_term_dump ()
void
cr_term_dump (CRTerm const *a_this,
              FILE *a_fp);
 
cr_term_nr_values ()
int
cr_term_nr_values (CRTerm const *a_this);
 
cr_term_get_from_list ()
CRTerm *
cr_term_get_from_list (CRTerm *a_this,
                       int itemnr);
 
cr_term_ref ()
void
cr_term_ref (CRTerm *a_this);
 
cr_term_unref ()
gboolean
cr_term_unref (CRTerm *a_this);
 
cr_term_destroy ()
void
cr_term_destroy (CRTerm *a_term);
 
 
Types and Values
struct CRTerm
struct CRTerm {
        /**
         *The type of the term.
         */
        enum CRTermType type ;
                
        /**
         *The unary operator associated to
         *the current term.
         */
        enum UnaryOperator unary_op ;
        /**
         *The operator associated to the current term.
         */
        enum Operator the_operator ;
        /**
         *The content of the term.
         *Depending of the type of the term,
         *this holds either a number, a percentage ...
         */
        union
        {
                CRNum *num ;
                CRString * str ;
                CRRgb * rgb ;
        } content ;
        /**
         *If the term is of type UNICODERANGE, 
         *this field holds the upper bound of the range.
         *if the term is of type FUNCTION, this holds
         *an instance of CRTerm that represents
         * the expression which is the argument of the function.
         */
        union
        {
                CRTerm *func_param ;                        
        } ext_content ;
        /**
         *A spare pointer, just in case.
         *Can be used by the application.
         */
        gpointer app_data ;
        glong ref_count ;
        /**
         *A pointer to the next term, 
         *just in case this term is part of
         *an expression.
         */
        CRTerm *next ;
        /**
         *A pointer to the previous
         *term.
         */
        CRTerm *prev ;
        CRParsingLocation location ;
};