123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- /* openmath.h Copyright (C) 1998 NAG Ltd. */
- #ifndef header_openmath_h
- #define header_openmath_h
- /*
- * This code may be used and modified, and redistributed in binary
- * or source form, subject to the "CCL Public License", which should
- * accompany it. This license is a variant on the BSD license, and thus
- * permits use of code derived from this in either open and commercial
- * projects: but it does require that updates to this code be made
- * available back to the originators of the package.
- * Before merging other code in with this or linking this code
- * with other packages or libraries please check that the license terms
- * of the other material are compatible with those of this.
- */
- /* Signature: 5537ffe6 08-Apr-2002 */
- /*
- * OpenMath primitives map to Lisp objects in the following way:
- *
- * OpenMath Lisp
- * -------- ----
- * 32 bit integer integer
- * big integer integer
- * 64 bit float real
- * byte array vector of bytes
- * variable symbol
- * string string
- * symbol OMS cd:="cdname" name:="symbolname" (Lisp properties).
- *
- * <OMA> (OMA ...)
- * ...
- * </OMA>
- *
- * <OMATTR> (OMATTR ...)
- * <OMATP> (OMATP ...)
- * ...
- * </OMATP>
- * obj
- * </OMATTR>
- *
- * <OMBIND> (OMBIND ...)
- * binder
- * <OMBVAR> (OMBVAR ...)
- * bvars
- * </OMBVAR>
- * obj
- * </OMBIND>
- *
- * <OME> (OME ...)
- * ...
- * </OME>
- *
- * <OMOBJ> (OMOBJ ...)
- * ...
- * </OMOBJ>
- */
- /*
- * OpenMath / Lisp conversion functions.
- */
- extern OMdev om_toDev(Lisp_Object obj);
- extern Lisp_Object om_fromDev(OMdev dev);
- extern OMstatus om_toStatus(Lisp_Object obj);
- extern Lisp_Object om_fromStatus(OMstatus status);
- extern OMencodingType om_toEncodingType(Lisp_Object obj);
- extern Lisp_Object om_fromEncodingType(OMencodingType enc);
- extern char * om_toBigNumStr(Lisp_Object obj);
- extern Lisp_Object om_fromBigNumStr(char *data, int len, int sign, OMbigIntType fmt);
- extern OMconn om_toConn(Lisp_Object obj);
- extern Lisp_Object om_fromConn(OMconn conn);
- extern char ** om_toCString(Lisp_Object obj);
- extern Lisp_Object om_fromCString(char **str);
- extern Lisp_Object om_lispStringFromCString(Lisp_Object cstr);
- extern Lisp_Object om_cStringFromLispString(Lisp_Object lstr);
- /*
- * OpenMath Device manipulation functions.
- */
- extern Lisp_Object MS_CDECL om_openFileDev(Lisp_Object env, int nargs, ...);
- extern Lisp_Object om_openStrDev(Lisp_Object env, Lisp_Object lstr, Lisp_Object lenc);
- extern Lisp_Object om_closeDev(Lisp_Object env, Lisp_Object dev);
- /*
- * OpenMath Connection manipulation functions.
- */
- extern Lisp_Object om_makeConn(Lisp_Object nil, Lisp_Object ltimeout);
- extern Lisp_Object om_closeConn(Lisp_Object nil, Lisp_Object lconn);
- extern Lisp_Object om_getConnInDev(Lisp_Object nil, Lisp_Object lconn);
- extern Lisp_Object om_getConnOutDev(Lisp_Object nil, Lisp_Object lconn);
- /*
- * OpenMath client/server functions.
- */
- extern Lisp_Object MS_CDECL om_connectTCP(Lisp_Object nil, int nargs, ...);
- extern Lisp_Object om_bindTCP(Lisp_Object nil, Lisp_Object lconn, Lisp_Object lport);
- /* TODO: prototypes for the other functions from OMconn.h */
- /*
- * OpenMath Device input / output functions.
- */
- extern Lisp_Object om_putApp(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putEndApp(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putAtp(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putEndAtp(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putAttr(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putEndAttr(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putBind(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putEndBind(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putBVar(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putEndBVar(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putError(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putEndError(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putObject(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putEndObject(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_putInt(Lisp_Object nil, Lisp_Object ldev, Lisp_Object val);
- extern Lisp_Object om_putFloat(Lisp_Object nil, Lisp_Object ldev, Lisp_Object val);
- extern Lisp_Object om_putByteArray(Lisp_Object nil, Lisp_Object ldev, Lisp_Object val);
- extern Lisp_Object om_putVar(Lisp_Object nil, Lisp_Object ldev, Lisp_Object val);
- extern Lisp_Object om_putString(Lisp_Object nil, Lisp_Object ldev, Lisp_Object val);
- extern Lisp_Object om_putSymbol(Lisp_Object nil, Lisp_Object ldev, Lisp_Object val);
- extern Lisp_Object MS_CDECL om_putSymbol2(Lisp_Object nil, int nargs, ...);
- extern Lisp_Object om_getApp(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getEndApp(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getAtp(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getEndAtp(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getAttr(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getEndAttr(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getBind(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getEndBind(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getBVar(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getEndBVar(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getError(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getEndError(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getObject(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getEndObject(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getInt(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getFloat(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getByteArray(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getVar(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getString(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getSymbol(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_getType(Lisp_Object nil, Lisp_Object ldev);
- extern Lisp_Object om_stringToStringPtr(Lisp_Object nil, Lisp_Object lstr);
- extern Lisp_Object om_stringPtrToString(Lisp_Object nil, Lisp_Object lpstr);
- #endif /* header_openmath_h */
- /* end of openmath.h */
|