next up previous index
Next: The Remote Interface Protocol Up: EXDR Data Interchange Format Previous: ECLiPSe primitives to read/write   Index

Serialized representation of EXDR terms

The following is the specification of what is actually send over the communication channels. This is all the information needed to create new language mappings for EXDR terms. This definition corresponds to EXDR_VERSION 1:

ExdrTerm      ::=   'V' Version Term
Term          ::=   (Integer|Double|String|List|Nil|Struct|Variable)
Integer       ::=   'I' XDR_int | 'J' XDR_long
Double        ::=   'D' XDR_double
String        ::=   'S' Length <byte>*
List          ::=   '[' Term (List|Nil)
Nil           ::=   ']'
Struct        ::=   'F' Arity String Term*
Variable      ::=   '_'
Length        ::=   XDR_int                       // >= 0
Arity         ::=   XDR_int                       // >= 0
Version       ::=   <byte>
XDR_int       ::=   <4 bytes, msb first>
XDR_long      ::=   <8 bytes, msb first>
XDR_double    ::=   <8 bytes, ieee double, exponent first>



Warwick Harvey
2002-05-15