<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="libedataserver-ESExp">
<refmeta>
<refentrytitle role="top_of_page" id="libedataserver-ESExp.top_of_page">ESExp</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>LIBEDATASERVER Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>ESExp</refname>
<refpurpose></refpurpose>
</refnamediv>

<refsynopsisdiv id="libedataserver-ESExp.synopsis" role="synopsis">
<title role="synopsis.title">Synopsis</title>

<synopsis>
                    <link linkend="ESExp">ESExp</link>;
                    <link linkend="ESExpSymbol">ESExpSymbol</link>;
                    <link linkend="ESExpResult">ESExpResult</link>;
                    <link linkend="ESExpTerm">ESExpTerm</link>;
<link linkend="ESExp">ESExp</link> *             <link linkend="e-sexp-new">e_sexp_new</link>                          (void);
<link linkend="void">void</link>                <link linkend="e-sexp-ref">e_sexp_ref</link>                          (<link linkend="ESExp">ESExp</link> *f);
<link linkend="void">void</link>                <link linkend="e-sexp-unref">e_sexp_unref</link>                        (<link linkend="ESExp">ESExp</link> *f);
<link linkend="void">void</link>                <link linkend="e-sexp-add-function">e_sexp_add_function</link>                 (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> scope,
                                                         <link linkend="char">char</link> *name,
                                                         <link linkend="ESExpFunc">ESExpFunc</link> *func,
                                                         <link linkend="void">void</link> *data);
<link linkend="void">void</link>                <link linkend="e-sexp-add-ifunction">e_sexp_add_ifunction</link>                (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> scope,
                                                         <link linkend="char">char</link> *name,
                                                         <link linkend="ESExpIFunc">ESExpIFunc</link> *func,
                                                         <link linkend="void">void</link> *data);
<link linkend="void">void</link>                <link linkend="e-sexp-add-variable">e_sexp_add_variable</link>                 (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> scope,
                                                         <link linkend="char">char</link> *name,
                                                         <link linkend="ESExpTerm">ESExpTerm</link> *value);
<link linkend="void">void</link>                <link linkend="e-sexp-remove-symbol">e_sexp_remove_symbol</link>                (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> scope,
                                                         <link linkend="char">char</link> *name);
<link linkend="int">int</link>                 <link linkend="e-sexp-set-scope">e_sexp_set_scope</link>                    (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> scope);
<link linkend="void">void</link>                <link linkend="e-sexp-input-text">e_sexp_input_text</link>                   (<link linkend="ESExp">ESExp</link> *f,
                                                         const <link linkend="char">char</link> *text,
                                                         <link linkend="int">int</link> len);
<link linkend="void">void</link>                <link linkend="e-sexp-input-file">e_sexp_input_file</link>                   (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> fd);
<link linkend="int">int</link>                 <link linkend="e-sexp-parse">e_sexp_parse</link>                        (<link linkend="ESExp">ESExp</link> *f);
<link linkend="ESExpResult">ESExpResult</link> *       <link linkend="e-sexp-eval">e_sexp_eval</link>                         (<link linkend="ESExp">ESExp</link> *f);
<link linkend="ESExpResult">ESExpResult</link> *       <link linkend="e-sexp-term-eval">e_sexp_term_eval</link>                    (<link linkend="struct--ESExp">struct _ESExp</link> *f,
                                                         <link linkend="struct--ESExpTerm">struct _ESExpTerm</link> *t);
<link linkend="ESExpResult">ESExpResult</link> *       <link linkend="e-sexp-result-new">e_sexp_result_new</link>                   (<link linkend="struct--ESExp">struct _ESExp</link> *f,
                                                         <link linkend="int">int</link> type);
<link linkend="void">void</link>                <link linkend="e-sexp-result-free">e_sexp_result_free</link>                  (<link linkend="struct--ESExp">struct _ESExp</link> *f,
                                                         <link linkend="struct--ESExpResult">struct _ESExpResult</link> *t);
<link linkend="void">void</link>                <link linkend="e-sexp-resultv-free">e_sexp_resultv_free</link>                 (<link linkend="struct--ESExp">struct _ESExp</link> *f,
                                                         <link linkend="int">int</link> argc,
                                                         <link linkend="struct--ESExpResult">struct _ESExpResult</link> **argv);
<link linkend="void">void</link>                <link linkend="e-sexp-encode-bool">e_sexp_encode_bool</link>                  (<link linkend="GString">GString</link> *s,
                                                         <link linkend="gboolean">gboolean</link> state);
<link linkend="void">void</link>                <link linkend="e-sexp-encode-string">e_sexp_encode_string</link>                (<link linkend="GString">GString</link> *s,
                                                         const <link linkend="char">char</link> *string);
<link linkend="void">void</link>                <link linkend="e-sexp-fatal-error">e_sexp_fatal_error</link>                  (<link linkend="struct--ESExp">struct _ESExp</link> *f,
                                                         <link linkend="char">char</link> *why,
                                                         ...);
const <link linkend="char">char</link> *        <link linkend="e-sexp-error">e_sexp_error</link>                        (<link linkend="struct--ESExp">struct _ESExp</link> *f);
</synopsis>
</refsynopsisdiv>









<refsect1 id="libedataserver-ESExp.description" role="desc">
<title role="desc.title">Description</title>
<para>
</para>
</refsect1>

<refsect1 id="libedataserver-ESExp.details" role="details">
<title role="details.title">Details</title>
<refsect2 id="ESExp" role="struct">
<title>ESExp</title>
<indexterm zone="ESExp"><primary sortas="ESExp">ESExp</primary></indexterm><programlisting>typedef struct {
#ifdef E_SEXP_IS_G_OBJECT
	GObject parent_object;
#else
	int refcount;
#endif
	GScanner *scanner;	/* for parsing text version */
	ESExpTerm *tree;	/* root of expression tree */

	/* private stuff */
	jmp_buf failenv;
	char *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;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="ESExpSymbol" role="struct">
<title>ESExpSymbol</title>
<indexterm zone="ESExpSymbol"><primary sortas="ESExpSymbol">ESExpSymbol</primary></indexterm><programlisting>typedef struct {
	int type;		/* ESEXP_TERM_FUNC or ESEXP_TERM_VAR */
	char *name;
	void *data;
	union {
		ESExpFunc *func;
		ESExpIFunc *ifunc;
	} f;
} ESExpSymbol;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="ESExpResult" role="struct">
<title>ESExpResult</title>
<indexterm zone="ESExpResult"><primary sortas="ESExpResult">ESExpResult</primary></indexterm><programlisting>typedef struct {
	enum _ESExpResultType type;
	union {
		GPtrArray *ptrarray;
		int number;
		char *string;
		int bool;
		time_t time;
	} value;
} ESExpResult;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="ESExpTerm" role="struct">
<title>ESExpTerm</title>
<indexterm zone="ESExpTerm"><primary sortas="ESExpTerm">ESExpTerm</primary></indexterm><programlisting>typedef struct {
	enum _ESExpTermType type;
	union {
		char *string;
		int number;
		int bool;
		time_t time;
		struct {
			struct _ESExpSymbol *sym;
			struct _ESExpTerm **terms;
			int termcount;
		} func;
		struct _ESExpSymbol *var;
	} value;
} ESExpTerm;
</programlisting>
<para>
</para></refsect2>
<refsect2 id="e-sexp-new" role="function">
<title>e_sexp_new ()</title>
<indexterm zone="e-sexp-new"><primary sortas="e_sexp_new">e_sexp_new</primary></indexterm><programlisting><link linkend="ESExp">ESExp</link> *             e_sexp_new                          (void);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-ref" role="function">
<title>e_sexp_ref ()</title>
<indexterm zone="e-sexp-ref"><primary sortas="e_sexp_ref">e_sexp_ref</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_ref                          (<link linkend="ESExp">ESExp</link> *f);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-unref" role="function">
<title>e_sexp_unref ()</title>
<indexterm zone="e-sexp-unref"><primary sortas="e_sexp_unref">e_sexp_unref</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_unref                        (<link linkend="ESExp">ESExp</link> *f);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-add-function" role="function">
<title>e_sexp_add_function ()</title>
<indexterm zone="e-sexp-add-function"><primary sortas="e_sexp_add_function">e_sexp_add_function</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_add_function                 (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> scope,
                                                         <link linkend="char">char</link> *name,
                                                         <link linkend="ESExpFunc">ESExpFunc</link> *func,
                                                         <link linkend="void">void</link> *data);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>scope</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>func</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-add-ifunction" role="function">
<title>e_sexp_add_ifunction ()</title>
<indexterm zone="e-sexp-add-ifunction"><primary sortas="e_sexp_add_ifunction">e_sexp_add_ifunction</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_add_ifunction                (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> scope,
                                                         <link linkend="char">char</link> *name,
                                                         <link linkend="ESExpIFunc">ESExpIFunc</link> *func,
                                                         <link linkend="void">void</link> *data);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>scope</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>func</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>data</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-add-variable" role="function">
<title>e_sexp_add_variable ()</title>
<indexterm zone="e-sexp-add-variable"><primary sortas="e_sexp_add_variable">e_sexp_add_variable</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_add_variable                 (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> scope,
                                                         <link linkend="char">char</link> *name,
                                                         <link linkend="ESExpTerm">ESExpTerm</link> *value);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>scope</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>value</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-remove-symbol" role="function">
<title>e_sexp_remove_symbol ()</title>
<indexterm zone="e-sexp-remove-symbol"><primary sortas="e_sexp_remove_symbol">e_sexp_remove_symbol</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_remove_symbol                (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> scope,
                                                         <link linkend="char">char</link> *name);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>scope</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-set-scope" role="function">
<title>e_sexp_set_scope ()</title>
<indexterm zone="e-sexp-set-scope"><primary sortas="e_sexp_set_scope">e_sexp_set_scope</primary></indexterm><programlisting><link linkend="int">int</link>                 e_sexp_set_scope                    (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> scope);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>scope</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-input-text" role="function">
<title>e_sexp_input_text ()</title>
<indexterm zone="e-sexp-input-text"><primary sortas="e_sexp_input_text">e_sexp_input_text</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_input_text                   (<link linkend="ESExp">ESExp</link> *f,
                                                         const <link linkend="char">char</link> *text,
                                                         <link linkend="int">int</link> len);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>text</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>len</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-input-file" role="function">
<title>e_sexp_input_file ()</title>
<indexterm zone="e-sexp-input-file"><primary sortas="e_sexp_input_file">e_sexp_input_file</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_input_file                   (<link linkend="ESExp">ESExp</link> *f,
                                                         <link linkend="int">int</link> fd);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>fd</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-parse" role="function">
<title>e_sexp_parse ()</title>
<indexterm zone="e-sexp-parse"><primary sortas="e_sexp_parse">e_sexp_parse</primary></indexterm><programlisting><link linkend="int">int</link>                 e_sexp_parse                        (<link linkend="ESExp">ESExp</link> *f);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-eval" role="function">
<title>e_sexp_eval ()</title>
<indexterm zone="e-sexp-eval"><primary sortas="e_sexp_eval">e_sexp_eval</primary></indexterm><programlisting><link linkend="ESExpResult">ESExpResult</link> *       e_sexp_eval                         (<link linkend="ESExp">ESExp</link> *f);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-term-eval" role="function">
<title>e_sexp_term_eval ()</title>
<indexterm zone="e-sexp-term-eval"><primary sortas="e_sexp_term_eval">e_sexp_term_eval</primary></indexterm><programlisting><link linkend="ESExpResult">ESExpResult</link> *       e_sexp_term_eval                    (<link linkend="struct--ESExp">struct _ESExp</link> *f,
                                                         <link linkend="struct--ESExpTerm">struct _ESExpTerm</link> *t);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>t</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-result-new" role="function">
<title>e_sexp_result_new ()</title>
<indexterm zone="e-sexp-result-new"><primary sortas="e_sexp_result_new">e_sexp_result_new</primary></indexterm><programlisting><link linkend="ESExpResult">ESExpResult</link> *       e_sexp_result_new                   (<link linkend="struct--ESExp">struct _ESExp</link> *f,
                                                         <link linkend="int">int</link> type);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>type</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-result-free" role="function">
<title>e_sexp_result_free ()</title>
<indexterm zone="e-sexp-result-free"><primary sortas="e_sexp_result_free">e_sexp_result_free</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_result_free                  (<link linkend="struct--ESExp">struct _ESExp</link> *f,
                                                         <link linkend="struct--ESExpResult">struct _ESExpResult</link> *t);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>t</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-resultv-free" role="function">
<title>e_sexp_resultv_free ()</title>
<indexterm zone="e-sexp-resultv-free"><primary sortas="e_sexp_resultv_free">e_sexp_resultv_free</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_resultv_free                 (<link linkend="struct--ESExp">struct _ESExp</link> *f,
                                                         <link linkend="int">int</link> argc,
                                                         <link linkend="struct--ESExpResult">struct _ESExpResult</link> **argv);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>argc</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>argv</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-encode-bool" role="function">
<title>e_sexp_encode_bool ()</title>
<indexterm zone="e-sexp-encode-bool"><primary sortas="e_sexp_encode_bool">e_sexp_encode_bool</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_encode_bool                  (<link linkend="GString">GString</link> *s,
                                                         <link linkend="gboolean">gboolean</link> state);</programlisting>
<para>
Encode a bool into an s-expression <parameter>s</parameter>.  Bools are
encoded using <link linkend="t"><type>t</type></link> <link linkend="f"><type>f</type></link> syntax.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>state</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-encode-string" role="function">
<title>e_sexp_encode_string ()</title>
<indexterm zone="e-sexp-encode-string"><primary sortas="e_sexp_encode_string">e_sexp_encode_string</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_encode_string                (<link linkend="GString">GString</link> *s,
                                                         const <link linkend="char">char</link> *string);</programlisting>
<para>
Add a c string <parameter>string</parameter> to the s-expression stored in
the gstring <parameter>s</parameter>.  Quotes are added, and special characters
are escaped appropriately.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>s</parameter>&#160;:</term>
<listitem><simpara> Destination string.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>string</parameter>&#160;:</term>
<listitem><simpara> String expression.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-fatal-error" role="function">
<title>e_sexp_fatal_error ()</title>
<indexterm zone="e-sexp-fatal-error"><primary sortas="e_sexp_fatal_error">e_sexp_fatal_error</primary></indexterm><programlisting><link linkend="void">void</link>                e_sexp_fatal_error                  (<link linkend="struct--ESExp">struct _ESExp</link> *f,
                                                         <link linkend="char">char</link> *why,
                                                         ...);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>why</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2 id="e-sexp-error" role="function">
<title>e_sexp_error ()</title>
<indexterm zone="e-sexp-error"><primary sortas="e_sexp_error">e_sexp_error</primary></indexterm><programlisting>const <link linkend="char">char</link> *        e_sexp_error                        (<link linkend="struct--ESExp">struct _ESExp</link> *f);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>f</parameter>&#160;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&#160;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
