home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / compiler / m2posx14 / src / ansic.dpp next >
Encoding:
Modula Definition  |  1994-05-14  |  8.6 KB  |  271 lines

  1. DEFINITION MODULE ANSIC;
  2. __DEF_SWITCHES__
  3. #ifdef HM2
  4. #ifdef __LONG_WHOLE__
  5. (*$!i+: Modul muss mit $i- uebersetzt werden! *)
  6. (*$!w+: Modul muss mit $w- uebersetzt werden! *)
  7. #else
  8. (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
  9. (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
  10. #endif
  11. #endif
  12. #if no_reexport
  13. #  error *** compiler does not allow reexporting!
  14. #endif
  15. (****************************************************************************)
  16. (* Dieses Modul fasst alle ANSI-C-Bibliotheksfunktionen aus den unterlie-   *)
  17. (* genden Modulen zusammen. Teilweise sind diese Funktionen ebenfalls       *)
  18. (* POSIX.1-Funktionen, werden aber ueblicherweise nur mit ``C'' in Verbin-  *)
  19. (* dung gebracht. Fuer Leute, die lieber aus einem einzigen Modul importie- *)
  20. (* ren wollen, und deren Compiler den Reexport erlaubt.                     *)
  21. (* Fuer die Beschreibung der Funktionen muessen die entsprechenden Defini-  *)
  22. (* tionsmodule konsultiert werden.                                          *)
  23. (* -------------------------------------------------------------------------*)
  24. (* 14-Mai-94, Holger Kleinschmidt                                           *)
  25. (****************************************************************************)
  26. #if !ISO_proc_const
  27. FROM SYSTEM IMPORT ADDRESS;
  28. FROM PORTAB IMPORT UNSIGNEDLONG,SIGNEDLONG;
  29. FROM types  IMPORT sizeT,timeT,clockT;
  30. FROM sig    IMPORT SignalHandler;
  31. #endif
  32. IMPORT types,cmdline,loc,ctype,cstr,lib,tim,sig,proc,MEMBLK;
  33.  
  34. (*===========================================================================*)
  35. (* Modul: 'types'                                                            *)
  36. (*===========================================================================*)
  37.  
  38. CONST
  39.   NULL = types.NULL;
  40.  
  41. CONST
  42.   ClocksPerSec = types.ClocksPerSec;
  43.  
  44. TYPE
  45.   StrRange = types.StrRange;
  46.   StrPtr   = types.StrPtr;
  47.   StrPPtr  = types.StrPPtr;
  48.  
  49. TYPE
  50.   ArrayRange = types.ArrayRange;
  51.   StrArray   = types.StrArray;
  52.  
  53. TYPE
  54.   char          = types.char;
  55.   signedchar    = types.signedchar;
  56.   unsignedchar  = types.unsignedchar;
  57.  
  58.   short         = types.short;
  59.   signedshort   = types.signedshort;
  60.   unsignedshort = types.unsignedshort;
  61.  
  62.   int           = types.int;
  63.   signedint     = types.signedint;
  64.   unsigned      = types.unsigned;
  65.   unsignedint   = types.unsignedint;
  66.  
  67.   long          = types.long;
  68.   signedlong    = types.signedlong;
  69.   unsignedlong  = types.unsignedlong;
  70.  
  71.   float         = types.float;
  72.   double        = types.double;
  73.  
  74. (*===========================================================================*)
  75. (* Modul: 'ctype'                                                            *)
  76. (*===========================================================================*)
  77.  
  78. #if ISO_proc_const
  79. CONST
  80.   isalnum  = ctype.isalnum;
  81.   isalpha  = ctype.isalpha;
  82.   iscntrl  = ctype.iscntrl;
  83.   isdigit  = ctype.isdigit;
  84.   isgraph  = ctype.isgraph;
  85.   islower  = ctype.islower;
  86.   isprint  = ctype.isprint;
  87.   ispunct  = ctype.ispunct;
  88.   isspace  = ctype.isspace;
  89.   isupper  = ctype.isupper;
  90.   isxdigit = ctype.isxdigit;
  91.   tolower  = ctype.tolower;
  92.   toupper  = ctype.toupper;
  93. #else
  94. VAR (* READ ONLY! *)
  95.   isalnum  : PROCEDURE(CHAR):BOOLEAN;
  96.   isalpha  : PROCEDURE(CHAR):BOOLEAN;
  97.   iscntrl  : PROCEDURE(CHAR):BOOLEAN;
  98.   isdigit  : PROCEDURE(CHAR):BOOLEAN;
  99.   isgraph  : PROCEDURE(CHAR):BOOLEAN;
  100.   islower  : PROCEDURE(CHAR):BOOLEAN;
  101.   isprint  : PROCEDURE(CHAR):BOOLEAN;
  102.   ispunct  : PROCEDURE(CHAR):BOOLEAN;
  103.   isspace  : PROCEDURE(CHAR):BOOLEAN;
  104.   isupper  : PROCEDURE(CHAR):BOOLEAN;
  105.   isxdigit : PROCEDURE(CHAR):BOOLEAN;
  106.   tolower  : PROCEDURE(CHAR):CHAR;
  107.   toupper  : PROCEDURE(CHAR):CHAR;
  108. #endif
  109.  
  110. (*===========================================================================*)
  111. (* Modul: 'cstr'                                                             *)
  112. (*===========================================================================*)
  113.  
  114. #if ISO_proc_const
  115. CONST
  116.   strlen   = cstr.strlen;
  117.   strcpy   = cstr.strcpy;
  118.   strncpy  = cstr.strncpy;
  119.   strcat   = cstr.strcat;
  120.   strncat  = cstr.strncat;
  121.   strcmp   = cstr.strcmp;
  122.   strncmp  = cstr.strncmp;
  123.   strchr   = cstr.strchr;
  124.   strrchr  = cstr.strrchr;
  125.   strstr   = cstr.strstr;
  126.   strpbrk  = cstr.strpbrk;
  127.   strerror = cstr.strerror;
  128. #else
  129. VAR (* READ ONLY! *)
  130.   strlen   : PROCEDURE(StrPtr):sizeT;
  131.   strcpy   : PROCEDURE(StrPtr,StrPtr);
  132.   strncpy  : PROCEDURE(StrPtr,StrPtr,sizeT);
  133.   strcat   : PROCEDURE(StrPtr,StrPtr);
  134.   strncat  : PROCEDURE(StrPtr,StrPtr,sizeT);
  135.   strcmp   : PROCEDURE(StrPtr,StrPtr):int;
  136.   strncmp  : PROCEDURE(StrPtr,StrPtr,sizeT):int;
  137.   strchr   : PROCEDURE(StrPtr,CHAR):StrPtr;
  138.   strrchr  : PROCEDURE(StrPtr,CHAR):StrPtr;
  139.   strstr   : PROCEDURE(StrPtr,StrPtr):StrPtr;
  140.   strpbrk  : PROCEDURE(StrPtr,StrPtr):StrPtr;
  141.   strerror : PROCEDURE(int):StrPtr;
  142. #endif
  143.  
  144. (*===========================================================================*)
  145. (* Modul: 'cmdline'                                                          *)
  146. (*===========================================================================*)
  147. (*
  148. VAR
  149.   environ : StrArray; -- kann als Variable nicht reexportiert werden.
  150. *)
  151.  
  152. #if ISO_proc_const
  153. CONST
  154.   main   = cmdline.main;
  155.   getenv = cmdline.getenv;
  156. #else
  157. VAR (* READ ONLY! *)
  158.   main   : PROCEDURE(VAR ArrayRange,VAR StrArray);
  159.   getenv : PROCEDURE(REF ARRAY OF CHAR):StrPtr;
  160. #endif
  161.  
  162. (*===========================================================================*)
  163. (* Modul: 'lib'                                                              *)
  164. (*===========================================================================*)
  165.  
  166. CONST
  167.   RandMax = lib.RandMax;
  168.  
  169. TYPE
  170.   CompareProc = lib.CompareProc;
  171.  
  172. #if ISO_proc_const
  173. CONST
  174.   atoi     = lib.atoi;
  175.   atol     = lib.atol;
  176.   strtol   = lib.strtol;
  177.   strtoul  = lib.strtoul;
  178.   bsearch  = lib.bsearch;
  179.   qsort    = lib.qsort;
  180.   rand     = lib.rand;
  181.   srand    = lib.srand;
  182. #else
  183. VAR (* READ ONLY! *)
  184.   atoi     : PROCEDURE(StrPtr):int;
  185.   atol     : PROCEDURE(StrPtr):long;
  186.   strtol   : PROCEDURE(StrPtr,StrPPtr,int):long;
  187.   strtoul  : PROCEDURE(StrPtr,StrPPtr,int):unsignedlong;
  188.   bsearch  : PROCEDURE(ADDRESS,ADDRESS,sizeT,sizeT,CompareProc):ADDRESS;
  189.   qsort    : PROCEDURE(ADDRESS,sizeT,sizeT,CompareProc);
  190.   rand     : PROCEDURE():int;
  191.   srand    : PROCEDURE(unsigned);
  192. #endif
  193.  
  194. (*===========================================================================*)
  195. (* Modul: 'tim'                                                              *)
  196. (*===========================================================================*)
  197.  
  198. #if ISO_proc_const
  199. CONST
  200.   difftime = tim.difftime;
  201. #else
  202. VAR (* READ ONLY! *)
  203.   difftime : PROCEDURE(timeT,timeT):double;
  204. #endif
  205.  
  206. (*===========================================================================*)
  207. (* Modul: 'proc'                                                             *)
  208. (*===========================================================================*)
  209.  
  210. #if ISO_proc_const
  211. CONST
  212.   clock = proc.clock;
  213. #else
  214. VAR (* READ ONLY! *)
  215.   clock : PROCEDURE():clockT;
  216. #endif
  217.  
  218. (*===========================================================================*)
  219. (* Modul: 'sig'                                                              *)
  220. (*===========================================================================*)
  221.  
  222. CONST
  223.   SigErr = sig.SigErr;
  224.  
  225. #if ISO_proc_const
  226. CONST
  227.   signal = sig.signal;
  228.   raise  = sig.raise;
  229. #else
  230. VAR (* READ ONLY! *)
  231.   signal : PROCEDURE(int,SignalHandler,VAR SignalHandler):int;
  232.   raise  : PROCEDURE(int):int;
  233. #endif
  234.  
  235. (*===========================================================================*)
  236. (* Modul: 'MEMBLK'                                                           *)
  237. (*===========================================================================*)
  238.  
  239. #if ISO_proc_const
  240. CONST
  241.   memmove = MEMBLK.memmove;
  242.   memcpy  = MEMBLK.memmove; (* Kein Schreibfehler, Synonym *)
  243.   memset  = MEMBLK.memset;
  244.   memchr  = MEMBLK.memchr;
  245.   memcmp  = MEMBLK.memcmp;
  246. #else
  247. VAR (* READ ONLY! *)
  248.   memmove : PROCEDURE(ADDRESS,ADDRESS,sizeT);
  249.   memcpy  : PROCEDURE(ADDRESS,ADDRESS,sizeT);
  250.   memset  : PROCEDURE(ADDRESS,int,sizeT);
  251.   memchr  : PROCEDURE(ADDRESS,int,sizeT):ADDRESS;
  252.   memcmp  : PROCEDURE(ADDRESS,ADDRESS,sizeT):int;
  253. #endif
  254.  
  255. (*===========================================================================*)
  256. (* Modul: 'loc'                                                              *)
  257. (*===========================================================================*)
  258.  
  259. TYPE
  260.   LConvRec = loc.LConvRec;
  261.   LConvPtr = loc.LConvPtr;
  262.  
  263. #if ISO_proc_const
  264.   localeconv = loc.localeconv;
  265. #else
  266. VAR (* READ ONLY! *)
  267.   localeconv : PROCEDURE():LConvPtr;
  268. #endif
  269.  
  270. END ANSIC.
  271.