home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1994-05-14 | 8.6 KB | 271 lines |
- DEFINITION MODULE ANSIC;
- __DEF_SWITCHES__
- #ifdef HM2
- #ifdef __LONG_WHOLE__
- (*$!i+: Modul muss mit $i- uebersetzt werden! *)
- (*$!w+: Modul muss mit $w- uebersetzt werden! *)
- #else
- (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
- (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
- #endif
- #endif
- #if no_reexport
- # error *** compiler does not allow reexporting!
- #endif
- (****************************************************************************)
- (* Dieses Modul fasst alle ANSI-C-Bibliotheksfunktionen aus den unterlie- *)
- (* genden Modulen zusammen. Teilweise sind diese Funktionen ebenfalls *)
- (* POSIX.1-Funktionen, werden aber ueblicherweise nur mit ``C'' in Verbin- *)
- (* dung gebracht. Fuer Leute, die lieber aus einem einzigen Modul importie- *)
- (* ren wollen, und deren Compiler den Reexport erlaubt. *)
- (* Fuer die Beschreibung der Funktionen muessen die entsprechenden Defini- *)
- (* tionsmodule konsultiert werden. *)
- (* -------------------------------------------------------------------------*)
- (* 14-Mai-94, Holger Kleinschmidt *)
- (****************************************************************************)
- #if !ISO_proc_const
- FROM SYSTEM IMPORT ADDRESS;
- FROM PORTAB IMPORT UNSIGNEDLONG,SIGNEDLONG;
- FROM types IMPORT sizeT,timeT,clockT;
- FROM sig IMPORT SignalHandler;
- #endif
- IMPORT types,cmdline,loc,ctype,cstr,lib,tim,sig,proc,MEMBLK;
-
- (*===========================================================================*)
- (* Modul: 'types' *)
- (*===========================================================================*)
-
- CONST
- NULL = types.NULL;
-
- CONST
- ClocksPerSec = types.ClocksPerSec;
-
- TYPE
- StrRange = types.StrRange;
- StrPtr = types.StrPtr;
- StrPPtr = types.StrPPtr;
-
- TYPE
- ArrayRange = types.ArrayRange;
- StrArray = types.StrArray;
-
- TYPE
- char = types.char;
- signedchar = types.signedchar;
- unsignedchar = types.unsignedchar;
-
- short = types.short;
- signedshort = types.signedshort;
- unsignedshort = types.unsignedshort;
-
- int = types.int;
- signedint = types.signedint;
- unsigned = types.unsigned;
- unsignedint = types.unsignedint;
-
- long = types.long;
- signedlong = types.signedlong;
- unsignedlong = types.unsignedlong;
-
- float = types.float;
- double = types.double;
-
- (*===========================================================================*)
- (* Modul: 'ctype' *)
- (*===========================================================================*)
-
- #if ISO_proc_const
- CONST
- isalnum = ctype.isalnum;
- isalpha = ctype.isalpha;
- iscntrl = ctype.iscntrl;
- isdigit = ctype.isdigit;
- isgraph = ctype.isgraph;
- islower = ctype.islower;
- isprint = ctype.isprint;
- ispunct = ctype.ispunct;
- isspace = ctype.isspace;
- isupper = ctype.isupper;
- isxdigit = ctype.isxdigit;
- tolower = ctype.tolower;
- toupper = ctype.toupper;
- #else
- VAR (* READ ONLY! *)
- isalnum : PROCEDURE(CHAR):BOOLEAN;
- isalpha : PROCEDURE(CHAR):BOOLEAN;
- iscntrl : PROCEDURE(CHAR):BOOLEAN;
- isdigit : PROCEDURE(CHAR):BOOLEAN;
- isgraph : PROCEDURE(CHAR):BOOLEAN;
- islower : PROCEDURE(CHAR):BOOLEAN;
- isprint : PROCEDURE(CHAR):BOOLEAN;
- ispunct : PROCEDURE(CHAR):BOOLEAN;
- isspace : PROCEDURE(CHAR):BOOLEAN;
- isupper : PROCEDURE(CHAR):BOOLEAN;
- isxdigit : PROCEDURE(CHAR):BOOLEAN;
- tolower : PROCEDURE(CHAR):CHAR;
- toupper : PROCEDURE(CHAR):CHAR;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'cstr' *)
- (*===========================================================================*)
-
- #if ISO_proc_const
- CONST
- strlen = cstr.strlen;
- strcpy = cstr.strcpy;
- strncpy = cstr.strncpy;
- strcat = cstr.strcat;
- strncat = cstr.strncat;
- strcmp = cstr.strcmp;
- strncmp = cstr.strncmp;
- strchr = cstr.strchr;
- strrchr = cstr.strrchr;
- strstr = cstr.strstr;
- strpbrk = cstr.strpbrk;
- strerror = cstr.strerror;
- #else
- VAR (* READ ONLY! *)
- strlen : PROCEDURE(StrPtr):sizeT;
- strcpy : PROCEDURE(StrPtr,StrPtr);
- strncpy : PROCEDURE(StrPtr,StrPtr,sizeT);
- strcat : PROCEDURE(StrPtr,StrPtr);
- strncat : PROCEDURE(StrPtr,StrPtr,sizeT);
- strcmp : PROCEDURE(StrPtr,StrPtr):int;
- strncmp : PROCEDURE(StrPtr,StrPtr,sizeT):int;
- strchr : PROCEDURE(StrPtr,CHAR):StrPtr;
- strrchr : PROCEDURE(StrPtr,CHAR):StrPtr;
- strstr : PROCEDURE(StrPtr,StrPtr):StrPtr;
- strpbrk : PROCEDURE(StrPtr,StrPtr):StrPtr;
- strerror : PROCEDURE(int):StrPtr;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'cmdline' *)
- (*===========================================================================*)
- (*
- VAR
- environ : StrArray; -- kann als Variable nicht reexportiert werden.
- *)
-
- #if ISO_proc_const
- CONST
- main = cmdline.main;
- getenv = cmdline.getenv;
- #else
- VAR (* READ ONLY! *)
- main : PROCEDURE(VAR ArrayRange,VAR StrArray);
- getenv : PROCEDURE(REF ARRAY OF CHAR):StrPtr;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'lib' *)
- (*===========================================================================*)
-
- CONST
- RandMax = lib.RandMax;
-
- TYPE
- CompareProc = lib.CompareProc;
-
- #if ISO_proc_const
- CONST
- atoi = lib.atoi;
- atol = lib.atol;
- strtol = lib.strtol;
- strtoul = lib.strtoul;
- bsearch = lib.bsearch;
- qsort = lib.qsort;
- rand = lib.rand;
- srand = lib.srand;
- #else
- VAR (* READ ONLY! *)
- atoi : PROCEDURE(StrPtr):int;
- atol : PROCEDURE(StrPtr):long;
- strtol : PROCEDURE(StrPtr,StrPPtr,int):long;
- strtoul : PROCEDURE(StrPtr,StrPPtr,int):unsignedlong;
- bsearch : PROCEDURE(ADDRESS,ADDRESS,sizeT,sizeT,CompareProc):ADDRESS;
- qsort : PROCEDURE(ADDRESS,sizeT,sizeT,CompareProc);
- rand : PROCEDURE():int;
- srand : PROCEDURE(unsigned);
- #endif
-
- (*===========================================================================*)
- (* Modul: 'tim' *)
- (*===========================================================================*)
-
- #if ISO_proc_const
- CONST
- difftime = tim.difftime;
- #else
- VAR (* READ ONLY! *)
- difftime : PROCEDURE(timeT,timeT):double;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'proc' *)
- (*===========================================================================*)
-
- #if ISO_proc_const
- CONST
- clock = proc.clock;
- #else
- VAR (* READ ONLY! *)
- clock : PROCEDURE():clockT;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'sig' *)
- (*===========================================================================*)
-
- CONST
- SigErr = sig.SigErr;
-
- #if ISO_proc_const
- CONST
- signal = sig.signal;
- raise = sig.raise;
- #else
- VAR (* READ ONLY! *)
- signal : PROCEDURE(int,SignalHandler,VAR SignalHandler):int;
- raise : PROCEDURE(int):int;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'MEMBLK' *)
- (*===========================================================================*)
-
- #if ISO_proc_const
- CONST
- memmove = MEMBLK.memmove;
- memcpy = MEMBLK.memmove; (* Kein Schreibfehler, Synonym *)
- memset = MEMBLK.memset;
- memchr = MEMBLK.memchr;
- memcmp = MEMBLK.memcmp;
- #else
- VAR (* READ ONLY! *)
- memmove : PROCEDURE(ADDRESS,ADDRESS,sizeT);
- memcpy : PROCEDURE(ADDRESS,ADDRESS,sizeT);
- memset : PROCEDURE(ADDRESS,int,sizeT);
- memchr : PROCEDURE(ADDRESS,int,sizeT):ADDRESS;
- memcmp : PROCEDURE(ADDRESS,ADDRESS,sizeT):int;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'loc' *)
- (*===========================================================================*)
-
- TYPE
- LConvRec = loc.LConvRec;
- LConvPtr = loc.LConvPtr;
-
- #if ISO_proc_const
- localeconv = loc.localeconv;
- #else
- VAR (* READ ONLY! *)
- localeconv : PROCEDURE():LConvPtr;
- #endif
-
- END ANSIC.
-