Previous Up Next

B.2  Decomposing ECLiPSe terms in C++

The following methods type-check an ECLiPSe term and retrieve its contents if it is of the correct type. The return code is EC_succeed for successful conversion, an error code otherwise.
int EC_word::is_atom(EC_atom *)

checks whether the ECLiPSe pword is an atom, and if so, return its atom identifier.

int EC_word::is_string(char **)

checks whether the EC_word is a string (or atom) and converts it to a C++ string. This string is volatile, ie. it should be copied when it is required to survive resuming of ECLiPSe.

int EC_word::is_string(char **, long *)

checks whether the EC_word is a string (or atom) and converts it to a C++ string. This string is volatile, ie. it should be copied when it is required to survive resuming of ECLiPSe. The string's length is returned in the second argument.

int EC_word::is_long(long *)

checks whether the EC_word is a word-sized integer, and if so, returns it as a C++ long.

int EC_word::is_double(double *)

checks whether the EC_word is a floating point number, and if so, returns it as an C++ double.

int EC_word::is_list(EC_word&,EC_word&)

checks whether the EC_word is a list and if so, returns its head and tail.

int EC_word::is_nil()

checks whether the EC_word is nil, the empty list.

int EC_word::functor(EC_functor *)

checks whether the EC_word is a compound term and if so, returns its functor.

int EC_word::arg(const int,EC_word&)

checks whether the EC_word is a compound term and if so, returns its nth argument.

int EC_word::arity()

returns the arity of an EC_word if it is a compound term, zero otherwise.

int EC_word::is_handle(const t_ext_type *, t_ext_ptr *)

checks whether the EC_word is a handle whose method table matches the given one, and if so, the data pointer is returned.

int EC_word::is_var()

checks whether the EC_word is a variable. Returns EC_succeed if so, EC_fail otherwise.

Previous Up Next