Up Next

C.1  Constructing ECLiPSe terms in C

All these functions return (volatile) pwords, which can be used as input to other constructor functions, or which can be stored in (non-volatile) ec_refs.
pword ec_string(const char*)

converts a C string to an ECLiPSe string. The string is copied.

pword ec_length_string(int, const char*)

converts a C string of given length to an ECLiPSe string. The string is copied and can contain NUL bytes.

pword ec_atom(const dident)

creates an ECLiPSe atom. A dident (dictionary identifier) can be obtained either via ec_did() or ec_get_atom().

pword ec_long(const long)

converts a C long to an ECLiPSe integer.

pword ec_double(const double)

converts a C double to an ECLiPSe float.

pword ec_term(dident,pword,pword,...)

creates an ECLiPSe term from the given components.

pword ec_term_array(const dident,const pword[ ])

creates an ECLiPSe term from the arguments given in the array.

pword ec_list(const pword,const pword)

creates a single ECLiPSe list cell with the given head (car) and tail (cdr).

pword ec_listofrefs(ec_refs)

creates an ECLiPSe list containing the elements of the ec_refs array.

pword ec_listoflong(int, const long*)

creates an ECLiPSe list of integers containing the longs in the given array. The data is copied.

pword ec_listofchar(int, const char*)

creates an ECLiPSe list of integers containing the chars in the given array. The data is copied.

pword ec_listofdouble(int, const double*)

creates an ECLiPSe list of doubles containing the doubles in the given array. The data is copied.

pword ec_arrayofdouble(int, const double*)

creates an ECLiPSe array (a structure with functor [ ]of appropriate arity) of doubles from the given C array. The data is copied.

pword ec_matrixofdouble(int rows, int cols, const double*)

creates an ECLiPSe array (size rows) of arrays (size cols) of doubles from the given C array. The data is copied.

pword ec_handle(const t_ext_type*,const t_ext_ptr)

creates an ECLiPSe handle that refers to the given C data and its method table.

pword ec_newvar()

creates a fresh ECLiPSe variable.

pword ec_nil()

creates an ECLiPSe nil ie. the empty list [ ].
Auxiliary functions to access the ECLiPSe dictionary.
dident ec_did(char*,int)

looks up or enters the given string with arity into the ECLiPSe dictionary and returns a unique identifier for it.
char* DidName(dident)

returns the name string of the given dictionary identifier.
int DidArity(dident)

returns the arity of the given dictionary identifier.

Up Next