![]() |
![]() |
![]() |
Camel Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy |
struct CamelSExp; struct CamelSExpSymbol; struct CamelSExpResult; struct CamelSExpTerm; enum CamelSExpResultType; CamelSExpResult (*CamelSExpFunc) (CamelSExp *sexp
,gint argc
,CamelSExpResult **argv
,gpointer data
); CamelSExpResult (*CamelSExpIFunc) (CamelSExp *sexp
,gint argc
,CamelSExpTerm **argv
,gpointer data
); enum CamelSExpTermType; CamelSExp * camel_sexp_new (void
); void camel_sexp_add_function (CamelSExp *sexp
,guint scope
,const gchar *name
,CamelSExpFunc func
,gpointer data
); void camel_sexp_add_ifunction (CamelSExp *sexp
,guint scope
,const gchar *name
,CamelSExpIFunc func
,gpointer data
); void camel_sexp_add_variable (CamelSExp *sexp
,guint scope
,gchar *name
,CamelSExpTerm *value
); void camel_sexp_remove_symbol (CamelSExp *sexp
,guint scope
,const gchar *name
); gint camel_sexp_set_scope (CamelSExp *sexp
,guint scope
); void camel_sexp_input_text (CamelSExp *sexp
,const gchar *text
,gint len
); void camel_sexp_input_file (CamelSExp *sexp
,gint fd
); gint camel_sexp_parse (CamelSExp *sexp
); CamelSExpResult * camel_sexp_eval (CamelSExp *sexp
); CamelSExpResult * camel_sexp_term_eval (CamelSExp *sexp
,CamelSExpTerm *term
); CamelSExpResult * camel_sexp_result_new (CamelSExp *sexp
,gint type
); void camel_sexp_result_free (CamelSExp *sexp
,CamelSExpResult *term
); void camel_sexp_resultv_free (CamelSExp *sexp
,gint argc
,CamelSExpResult **argv
); void camel_sexp_encode_bool (GString *string
,gboolean v_bool
); void camel_sexp_encode_string (GString *string
,const gchar *v_string
); void camel_sexp_fatal_error (CamelSExp *sexp
,const gchar *why
,...
); const gchar * camel_sexp_error (CamelSExp *sexp
); CamelSExpTerm * camel_sexp_parse_value (CamelSExp *sexp
); gboolean camel_sexp_evaluate_occur_times (CamelSExp *sexp
,time_t *start
,time_t *end
);
struct CamelSExpSymbol { gint type; /* TERM_FUNC or TERM_VAR */ gchar *name; gpointer data; union { CamelSExpFunc func; CamelSExpIFunc ifunc; } f; };
Since 3.4
struct CamelSExpResult { CamelSExpResultType type; union { GPtrArray *ptrarray; gint number; gchar *string; gint boolean; time_t time; } value; gboolean time_generator; time_t occuring_start; time_t occuring_end; };
Since 3.4
struct CamelSExpTerm { CamelSExpTermType type; union { gchar *string; gint number; gint boolean; time_t time; struct { CamelSExpSymbol *sym; CamelSExpTerm **terms; gint termcount; } func; CamelSExpSymbol *var; } value; };
Since 3.4
typedef enum { CAMEL_SEXP_RES_ARRAY_PTR, /* type is a ptrarray, what it points to is implementation dependant */ CAMEL_SEXP_RES_INT, /* type is a number */ CAMEL_SEXP_RES_STRING, /* type is a pointer to a single string */ CAMEL_SEXP_RES_BOOL, /* boolean type */ CAMEL_SEXP_RES_TIME, /* time_t type */ CAMEL_SEXP_RES_UNDEFINED /* unknown type */ } CamelSExpResultType;
Since 3.4
CamelSExpResult (*CamelSExpFunc) (CamelSExp *sexp
,gint argc
,CamelSExpResult **argv
,gpointer data
);
Since 3.4
CamelSExpResult (*CamelSExpIFunc) (CamelSExp *sexp
,gint argc
,CamelSExpTerm **argv
,gpointer data
);
Since 3.4
typedef enum { CAMEL_SEXP_TERM_INT, /* integer literal */ CAMEL_SEXP_TERM_BOOL, /* boolean literal */ CAMEL_SEXP_TERM_STRING, /* string literal */ CAMEL_SEXP_TERM_TIME, /* time_t literal (number of seconds past the epoch) */ CAMEL_SEXP_TERM_FUNC, /* normal function, arguments are evaluated before calling */ CAMEL_SEXP_TERM_IFUNC, /* immediate function, raw terms are arguments */ CAMEL_SEXP_TERM_VAR /* variable reference */ } CamelSExpTermType;
Since 3.4
void camel_sexp_add_function (CamelSExp *sexp
,guint scope
,const gchar *name
,CamelSExpFunc func
,gpointer data
);
Since 3.4
void camel_sexp_add_ifunction (CamelSExp *sexp
,guint scope
,const gchar *name
,CamelSExpIFunc func
,gpointer data
);
Since 3.4
void camel_sexp_add_variable (CamelSExp *sexp
,guint scope
,gchar *name
,CamelSExpTerm *value
);
Since 3.4
void camel_sexp_remove_symbol (CamelSExp *sexp
,guint scope
,const gchar *name
);
Since 3.4
void camel_sexp_input_text (CamelSExp *sexp
,const gchar *text
,gint len
);
Since 3.4
CamelSExpResult * camel_sexp_term_eval (CamelSExp *sexp
,CamelSExpTerm *term
);
Since 3.4
CamelSExpResult * camel_sexp_result_new (CamelSExp *sexp
,gint type
);
Since 3.4
void camel_sexp_result_free (CamelSExp *sexp
,CamelSExpResult *term
);
Since 3.4
void camel_sexp_resultv_free (CamelSExp *sexp
,gint argc
,CamelSExpResult **argv
);
Since 3.4
void camel_sexp_encode_bool (GString *string
,gboolean v_bool
);
Encode a bool into an s-expression string
. Bools are
encoded using #t #f syntax.
Since 3.4
void camel_sexp_encode_string (GString *string
,const gchar *v_string
);
Add a c string v_string
to the s-expression stored in
the gstring s
. Quotes are added, and special characters
are escaped appropriately.
|
Destination string. |
|
String expression. |
Since 3.4
void camel_sexp_fatal_error (CamelSExp *sexp
,const gchar *why
,...
);
Since 3.4
gboolean camel_sexp_evaluate_occur_times (CamelSExp *sexp
,time_t *start
,time_t *end
);