blob: 80f965f67b42244e49dd30313e023a75defbaa8f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
// Records cross the EXTERN boundary only as C structs.
INCLUDE_OBJ "__libc"
TYPE Person
DECLARE Name : STRING
DECLARE Age : C_INT
ENDTYPE
TYPE PPerson = ^Person
EXTERN "C" EXTERN_PROCEDURE puts(PPerson)
EXTERN "C" EXTERN_FUNCTION abs(Person) RETURNS C_INT
EXTERN "C" EXTERN_FUNCTION atoi(C_STRING) RETURNS Person
EXTERN "C" EXTERN_FUNCTION printf(C_STRING, ...) RETURNS C_INT
DECLARE Someone : Person
OUTPUT printf((C_STRING)"%d", Someone)
TYPE PInteger = ^INTEGER
EXTERN "C" EXTERN_PROCEDURE srand(PInteger)
|