home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / historic / v92.tgz / v92.tar / v92 / src / h / features.h < prev    next >
Text File  |  1996-03-22  |  4KB  |  148 lines

  1. /*
  2.  * features.h -- predefined symbols and &features
  3.  *
  4.  * This file consists entirely of a sequence of conditionalized calls
  5.  *  to the Feature() macro.  The macro is not defined here, but is
  6.  *  defined to different things by the the code that includes it.
  7.  *
  8.  * For the macro call  Feature(guard,symname,kwval)
  9.  * the parameters are:
  10.  *    guard    for the compiler's runtime system, an expression that must
  11.  *        evaluate as true for the feature to be included in &features
  12.  *    symname    predefined name in the preprocessor; "" if none
  13.  *    kwval    value produced by the &features keyword; 0 if none
  14.  *
  15.  * The translator and compiler modify this list of predefined symbols
  16.  * through calls to ppdef().
  17.  */
  18.  
  19.    Feature(1, "_V9", 0)            /* Version 9 (unconditional) */
  20.  
  21. #if AMIGA
  22.    Feature(1, "_AMIGA", "Amiga")
  23. #endif                    /* AMIGA */
  24. #if ARM
  25.    Feature(1, "_ACORN", "Acorn Archimedes")
  26. #endif                    /* ARM */
  27. #if ATARI_ST
  28.    Feature(1, "_ATARI", "Atari ST")
  29. #endif                    /* ATARI_ST */
  30. #if VM
  31.    Feature(1, "_CMS", "CMS")
  32. #endif                    /* VM */
  33. #if MACINTOSH
  34.    Feature(1, "_MACINTOSH", "Macintosh")
  35. #endif                    /* MACINTOSH */
  36. #if MSDOS
  37. #if INTEL_386 || HIGHC_386 || WATCOM || ZTC_386 || BORLAND_386 || SCCX_MX
  38.    Feature(1, "_MSDOS_386", "MS-DOS/386")
  39. #else                    /* INTEL_386 || HIGHC_386 ... */
  40. #if NT
  41.    Feature(1, "_MS_WINDOWS_NT", "MS Windows NT")
  42. #else                    /* NT */
  43. #if BORLAND_286
  44.    Feature(1, "_MSDOS_286", "MS-DOS/286")
  45. #else
  46.    Feature(1, "_MSDOS", "MS-DOS")
  47. #endif                    /* BORLAND_286 */
  48. #endif                    /* NT */
  49. #endif                    /* INTEL_386 || HIGHC_386 ... */
  50. #endif                    /* MSDOS */
  51. #if MVS
  52.    Feature(1, "_MVS", "MVS")
  53. #endif                    /* MVS */
  54. #if OS2
  55.    Feature(1, "_OS2", "OS/2")
  56. #endif                    /* OS2 */
  57. #if PORT
  58.    Feature(1, "_PORT", "PORT")
  59. #endif                    /* PORT */
  60. #if UNIX
  61.    Feature(1, "_UNIX", "UNIX")
  62. #endif                    /* VM */
  63. #if VMS
  64.    Feature(1, "_VMS", "VMS")
  65. #endif                    /* VMS */
  66.  
  67. #if COMPILER
  68.    Feature(1, "", "compiled")
  69. #else                    /* COMPILER */
  70.    Feature(1, "", "interpreted")
  71. #endif                    /* COMPILER */
  72.  
  73. #if EBCDIC != 1
  74.    Feature(1, "_ASCII", "ASCII")
  75. #else                    /* EBCDIC != 1 */
  76.    Feature(1, "_EBCDIC", "EBCDIC")
  77. #endif                    /* EBCDIC */
  78.  
  79. #ifdef Coexpr
  80.    Feature(1, "_CO_EXPRESSIONS", "co-expressions")
  81. #endif                    /* Coexpr */
  82. #ifdef DirectExecution
  83.    Feature(1, "_DIRECT_EXECUTION", "direct execution")
  84. #endif                    /* DirectExecution */
  85. #ifdef LoadFunc
  86.    Feature(1, "_DYNAMIC_LOADING", "dynamic loading")
  87. #endif                    /* LoadFunc */
  88. #ifdef EnvVars
  89.    Feature(1, "", "environment variables")
  90. #endif                    /* EnvVars */
  91. #ifdef EventMon
  92.    Feature(1, "_EVENT_MONITOR", "event monitoring")
  93. #endif                    /* EventMon */
  94. #ifdef ExecImages
  95.    Feature(1, "_EXECUTABLE_IMAGES", "executable images")
  96. #endif                    /* ExecImages */
  97. #ifdef ExternalFunctions
  98.    Feature(1, "_EXTERNAL_FUNCTIONS", "external functions")
  99. #endif                    /* ExternalFunctions */
  100. #ifdef KeyboardFncs
  101.    Feature(1, "_KEYBOARD_FUNCTIONS", "keyboard functions")
  102. #endif                    /* Keyboard */
  103. #ifdef LargeInts
  104.    Feature(largeints, "_LARGE_INTEGERS", "large integers")
  105. #endif                    /* LargeInts */
  106. #ifdef MultiThread
  107.    Feature(1, "_MULTITASKING", "multiple programs")
  108. #endif                    /* MultiThread */
  109. #ifdef Pipes
  110.    Feature(1, "_PIPES", "pipes")
  111. #endif                    /* Pipes */
  112. #ifdef RecordIO
  113.    Feature(1, "_RECORD_IO", "record I/O")
  114. #endif                    /* RecordIO */
  115. #ifdef StrInvoke
  116.    Feature(1, "_STRING_INVOKE", "string invocation")
  117. #endif                    /* StrInvoke */
  118. #ifdef SystemFnc
  119.    Feature(1, "_SYSTEM_FUNCTION", "system function")
  120. #endif                    /* SystemFnc */
  121. #ifdef Visualization
  122.    Feature(1, "_VISUALIZATION", "visualization support")
  123. #endif                    /* Visualization */
  124.  
  125. #ifdef Graphics
  126.    Feature(1, "_GRAPHICS", "graphics")
  127. #endif                    /* Graphics */
  128. #ifdef XWindows
  129.    Feature(1, "_X_WINDOW_SYSTEM", "X Windows")
  130. #endif                    /* XWindows */
  131. #ifdef MSWindows
  132. #if NT
  133.    Feature(1, "_WIN32", "Win32")
  134. #else                    /* NT */
  135.    Feature(1, "_WIN16", "Win16")
  136. #endif                    /* NT */
  137. #endif                    /* MSWindows */
  138. #ifdef PresentationManager
  139.    Feature(1, "_PRESENTATION_MGR", "Presentation Manager")
  140. #endif                    /* PresentationManager */
  141.  
  142. #ifdef ArmFncs
  143.    Feature(1, "_ARM_FUNCTIONS", "Archimedes extensions")
  144. #endif                    /* ArmFncs */
  145. #ifdef DosFncs
  146.    Feature(1, "_DOS_FUNCTIONS", "MS-DOS extensions")
  147. #endif                    /* DosFncs */
  148.