1 /*****************************************************************************/ 2 /* */ 3 /* INCLUDE FILE FOR RUN TIME DATA TYPES */ 4 /* */ 5 /*****************************************************************************/ 6 7 /* Euphoria object format v1.2 and later */ 8 9 /* an object is represented as a 32-bit value as follows: 10 11 unused : 011xxxxx xxxxxxxx xxxxxxxx xxxxxxxx 12 unused : 010xxxxx xxxxxxxx xxxxxxxx xxxxxxxx 13 14 TOO_BIG: 01000000 00000000 00000000 00000000 (just too big for INT) 15 16 +ATOM-INT: 001vvvvv vvvvvvvv vvvvvvvv vvvvvvvv (31-bit integer value) 17 +ATOM-INT: 000vvvvv vvvvvvvv vvvvvvvv vvvvvvvv (31-bit integer value) 18 -ATOM-INT: 111vvvvv vvvvvvvv vvvvvvvv vvvvvvvv (31-bit integer value) 19 -ATOM-INT: 110vvvvv vvvvvvvv vvvvvvvv vvvvvvvv (31-bit integer value) 20 21 NO VALUE: 10111111 11111111 11111111 11111111 (undefined object) 22 23 ATOM-DBL: 101ppppp pppppppp pppppppp pppppppp (29-bit pointer) 24 25 SEQUENCE: 100ppppp pppppppp pppppppp pppppppp (29-bit pointer) 26 27 We ensure 8-byte alignment for s1 and dbl blocks - lower 3 bits 28 aren't needed - only 29 bits are stored. 29 */