![]() |
![]() |
![]() |
Evolution-Data-Server Manual: Utilities (libedataserver) | ![]() |
---|---|---|---|---|
Top | Description |
ESExp; ESExpSymbol; ESExpResult; ESExpTerm; ESExp * e_sexp_new (void); void e_sexp_ref (ESExp *f); void e_sexp_unref (ESExp *f); void e_sexp_add_function (ESExp *f, gint scope, const gchar *name, ESExpFunc *func, gpointer data); void e_sexp_add_ifunction (ESExp *f, gint scope, const gchar *name, ESExpIFunc *func, gpointer data); void e_sexp_add_variable (ESExp *f, gint scope, gchar *name, ESExpTerm *value); void e_sexp_remove_symbol (ESExp *f, gint scope, const gchar *name); gint e_sexp_set_scope (ESExp *f, gint scope); void e_sexp_input_text (ESExp *f, const gchar *text, gint len); void e_sexp_input_file (ESExp *f, gint fd); gint e_sexp_parse (ESExp *f); ESExpResult * e_sexp_eval (ESExp *f); ESExpResult * e_sexp_term_eval (struct _ESExp *f, struct _ESExpTerm *t); ESExpResult * e_sexp_result_new (struct _ESExp *f, gint type); void e_sexp_result_free (struct _ESExp *f, struct _ESExpResult *t); void e_sexp_resultv_free (struct _ESExp *f, gint argc, struct _ESExpResult **argv); void e_sexp_encode_bool (GString *s, gboolean state); void e_sexp_encode_string (GString *s, const gchar *string); void e_sexp_fatal_error (struct _ESExp *f, const gchar *why, ...); const gchar * e_sexp_error (struct _ESExp *f); ESExpTerm * e_sexp_parse_value (ESExp *f);
typedef struct { #ifdef E_SEXP_IS_G_OBJECT GObject parent_object; #else gint refcount; #endif GScanner *scanner; /* for parsing text version */ ESExpTerm *tree; /* root of expression tree */ /* private stuff */ jmp_buf failenv; gchar *error; GSList *operators; /* TODO: may also need a pool allocator for term strings, so we dont lose them in error conditions? */ struct _EMemChunk *term_chunks; struct _EMemChunk *result_chunks; } ESExp;
typedef struct { gint type; /* ESEXP_TERM_FUNC or ESEXP_TERM_VAR */ gchar *name; gpointer data; union { ESExpFunc *func; ESExpIFunc *ifunc; } f; } ESExpSymbol;
typedef struct { enum _ESExpResultType type; union { GPtrArray *ptrarray; gint number; gchar *string; gint bool; time_t time; } value; } ESExpResult;
typedef struct { enum _ESExpTermType type; union { gchar *string; gint number; gint bool; time_t time; struct { struct _ESExpSymbol *sym; struct _ESExpTerm **terms; gint termcount; } func; struct _ESExpSymbol *var; } value; } ESExpTerm;
void e_sexp_add_function (ESExp *f, gint scope, const gchar *name, ESExpFunc *func, gpointer data);
|
|
|
|
|
|
|
|
|
void e_sexp_add_ifunction (ESExp *f, gint scope, const gchar *name, ESExpIFunc *func, gpointer data);
|
|
|
|
|
|
|
|
|
void e_sexp_add_variable (ESExp *f, gint scope, gchar *name, ESExpTerm *value);
|
|
|
|
|
|
|
void e_sexp_remove_symbol (ESExp *f, gint scope, const gchar *name);
|
|
|
|
|
void e_sexp_input_text (ESExp *f, const gchar *text, gint len);
|
|
|
|
|
ESExpResult * e_sexp_term_eval (struct _ESExp *f, struct _ESExpTerm *t);
|
|
|
|
Returns : |
ESExpResult * e_sexp_result_new (struct _ESExp *f, gint type);
|
|
|
|
Returns : |
void e_sexp_resultv_free (struct _ESExp *f, gint argc, struct _ESExpResult **argv);
|
|
|
|
|
void e_sexp_encode_bool (GString *s, gboolean state);
Encode a bool into an s-expression s
. Bools are
encoded using #t #f syntax.
|
|
|
void e_sexp_encode_string (GString *s, const gchar *string);
Add a c string string
to the s-expression stored in
the gstring s
. Quotes are added, and special characters
are escaped appropriately.
|
Destination string. |
|
String expression. |
void e_sexp_fatal_error (struct _ESExp *f, const gchar *why, ...);
|
|
|
|
|