home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mitsch75.zip / scheme-7_5_17-src.zip / scheme-7.5.17 / src / microcode / types.h < prev    next >
C/C++ Source or Header  |  1999-01-02  |  6KB  |  187 lines

  1. /* -*-C-*-
  2.  
  3. $Id: types.h,v 9.37 1999/01/02 06:06:43 cph Exp $
  4.  
  5. Copyright (c) 1987-1999 Massachusetts Institute of Technology
  6.  
  7. This program is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License as published by
  9. the Free Software Foundation; either version 2 of the License, or (at
  10. your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful, but
  13. WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15. General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  20. */
  21.  
  22. /* Type code definitions, numerical order */
  23.  
  24. /*    Name                Value    Previous Name */
  25.  
  26. #define TC_NULL                        0x00
  27. #define TC_LIST                0x01
  28. #define TC_CHARACTER            0x02
  29. #define    TC_SCODE_QUOTE                     0x03
  30. #define TC_PCOMB2            0x04
  31. #define TC_UNINTERNED_SYMBOL        0x05
  32. #define TC_BIG_FLONUM            0x06
  33. #define TC_COMBINATION_1        0x07
  34. #define TC_CONSTANT            0x08
  35. #define TC_EXTENDED_PROCEDURE        0x09
  36. #define TC_VECTOR            0x0A
  37. #define TC_RETURN_CODE             0x0B
  38. #define TC_COMBINATION_2        0x0C
  39. #define TC_MANIFEST_CLOSURE        0x0D
  40. #define TC_BIG_FIXNUM            0x0E
  41. #define TC_PROCEDURE            0x0F
  42. #define TC_ENTITY            0x10 /* PRIMITIVE_EXTERNAL */
  43. #define TC_DELAY            0x11
  44. #define TC_ENVIRONMENT            0x12
  45. #define TC_DELAYED            0x13
  46. #define TC_EXTENDED_LAMBDA        0x14
  47. #define TC_COMMENT            0x15
  48. #define TC_NON_MARKED_VECTOR        0x16
  49. #define TC_LAMBDA            0x17
  50. #define TC_PRIMITIVE            0x18
  51. #define TC_SEQUENCE_2            0x19
  52. #define TC_FIXNUM            0x1A
  53. #define TC_PCOMB1            0x1B
  54. #define TC_CONTROL_POINT        0x1C
  55. #define TC_INTERNED_SYMBOL        0x1D
  56. #define TC_CHARACTER_STRING        0x1E
  57. #define TC_ACCESS            0x1F
  58. #define TC_HUNK3_A            0x20 /* EXTENDED_FIXNUM */
  59. #define TC_DEFINITION            0x21
  60. #define TC_BROKEN_HEART            0x22
  61. #define TC_ASSIGNMENT            0x23
  62. #define TC_HUNK3_B            0x24
  63. #define TC_IN_PACKAGE            0x25
  64. #define TC_COMBINATION            0x26
  65. #define TC_MANIFEST_NM_VECTOR        0x27
  66. #define TC_COMPILED_ENTRY        0x28
  67. #define TC_LEXPR            0x29
  68. #define TC_PCOMB3              0x2A
  69. #define TC_MANIFEST_SPECIAL_NM_VECTOR    0x2B
  70. #define TC_VARIABLE            0x2C
  71. #define TC_THE_ENVIRONMENT        0x2D
  72. #define TC_FUTURE            0x2E
  73. #define TC_VECTOR_1B            0x2F
  74. #define TC_PCOMB0            0x30
  75. #define TC_VECTOR_16B            0x31
  76. #define TC_REFERENCE_TRAP        0x32 /* UNASSIGNED */
  77. #define TC_SEQUENCE_3            0x33
  78. #define TC_CONDITIONAL            0x34
  79. #define TC_DISJUNCTION            0x35
  80. #define TC_CELL                0x36
  81. #define TC_WEAK_CONS            0x37
  82. #define TC_QUAD                0x38 /* TRAP */
  83. #define TC_LINKAGE_SECTION        0x39
  84. #define TC_RATNUM            0x3A /* COMPILER_LINK */
  85. #define TC_STACK_ENVIRONMENT        0x3B
  86. #define TC_COMPLEX            0x3C
  87. #define TC_COMPILED_CODE_BLOCK        0x3D
  88. #define TC_RECORD            0x3E
  89.  
  90. /* If you add a new type, don't forget to update gccode.h, gctype.c,
  91.    and the type name table below. */
  92.  
  93. #define LAST_TYPE_CODE            0x3E
  94. #define MIN_TYPE_CODE_LENGTH        6
  95.  
  96. #ifdef TYPE_CODE_LENGTH
  97. #if (TYPE_CODE_LENGTH < MIN_TYPE_CODE_LENGTH)
  98. #include ";; inconsistency between object.h and types.h: MIN_TYPE_CODE_LENGTH"
  99. #endif
  100. #endif
  101.  
  102. #define TYPE_NAME_TABLE                            \
  103. {                                    \
  104.   /* 0x00 */                    "NULL",                    \
  105.   /* 0x01 */            "LIST",                    \
  106.   /* 0x02 */            "CHARACTER",                \
  107.   /* 0x03 */                     "SCODE-QUOTE",                \
  108.   /* 0x04 */            "PCOMB2",                \
  109.   /* 0x05 */            "UNINTERNED-SYMBOL",            \
  110.   /* 0x06 */            "BIG-FLONUM",                \
  111.   /* 0x07 */            "COMBINATION-1",            \
  112.   /* 0x08 */            "TRUE",                    \
  113.   /* 0x09 */            "EXTENDED-PROCEDURE",            \
  114.   /* 0x0A */            "VECTOR",                \
  115.   /* 0x0B */             "RETURN-CODE",                \
  116.   /* 0x0C */            "COMBINATION-2",            \
  117.   /* 0x0D */            "MANIFEST-CLOSURE",            \
  118.   /* 0x0E */            "BIG-FIXNUM",                \
  119.   /* 0x0F */            "PROCEDURE",                \
  120.   /* 0x10 */            "ENTITY",                \
  121.   /* 0x11 */            "DELAY",                \
  122.   /* 0x12 */            "ENVIRONMENT",                \
  123.   /* 0x13 */            "DELAYED",                \
  124.   /* 0x14 */            "EXTENDED-LAMBDA",            \
  125.   /* 0x15 */            "COMMENT",                \
  126.   /* 0x16 */            "NON-MARKED-VECTOR",            \
  127.   /* 0x17 */            "LAMBDA",                \
  128.   /* 0x18 */            "PRIMITIVE",                \
  129.   /* 0x19 */            "SEQUENCE-2",                \
  130.   /* 0x1A */            "FIXNUM",                \
  131.   /* 0x1B */            "PCOMB1",                \
  132.   /* 0x1C */            "CONTROL-POINT",            \
  133.   /* 0x1D */            "INTERNED-SYMBOL",            \
  134.   /* 0x1E */            "CHARACTER-STRING",            \
  135.   /* 0x1F */            "ACCESS",                \
  136.   /* 0x20 */            "HUNK3-A",                \
  137.   /* 0x21 */            "DEFINITION",                \
  138.   /* 0x22 */            "BROKEN-HEART",                \
  139.   /* 0x23 */            "ASSIGNMENT",                \
  140.   /* 0x24 */            "HUNK3-B",                \
  141.   /* 0x25 */            "IN-PACKAGE",                \
  142.   /* 0x26 */            "COMBINATION",                \
  143.   /* 0x27 */            "MANIFEST-NM-VECTOR",            \
  144.   /* 0x28 */            "COMPILED-ENTRY",            \
  145.   /* 0x29 */            "LEXPR",                \
  146.   /* 0x2A */              "PCOMB3",                \
  147.   /* 0x2B */            "MANIFEST-SPECIAL-NM-VECTOR",        \
  148.   /* 0x2C */            "VARIABLE",                \
  149.   /* 0x2D */            "THE-ENVIRONMENT",            \
  150.   /* 0x2E */            "FUTURE",                \
  151.   /* 0x2F */            "VECTOR-1B",                \
  152.   /* 0x30 */            "PCOMB0",                \
  153.   /* 0x31 */            "VECTOR-16B",                \
  154.   /* 0x32 */            "REFERENCE-TRAP",            \
  155.   /* 0x33 */            "SEQUENCE-3",                \
  156.   /* 0x34 */            "CONDITIONAL",                \
  157.   /* 0x35 */            "DISJUNCTION",                \
  158.   /* 0x36 */            "CELL",                    \
  159.   /* 0x37 */            "WEAK-CONS",                \
  160.   /* 0x38 */            "QUAD",                    \
  161.   /* 0x39 */            "LINKAGE-SECTION",            \
  162.   /* 0x3A */            "RATNUM",                \
  163.   /* 0x3B */            "STACK-ENVIRONMENT",            \
  164.   /* 0x3C */            "COMPLEX",                \
  165.   /* 0x3D */            "COMPILED-CODE-BLOCK",            \
  166.   /* 0x3E */            "RECORD"                \
  167.   }
  168.  
  169. /* Flags and aliases */
  170.  
  171. /* Type code 0x10 (used to be TC_PRIMITIVE_EXTERNAL) has been reused. */
  172.  
  173. #define PRIMITIVE_EXTERNAL_REUSED
  174.  
  175. /* Aliases */
  176.  
  177. #define TC_FALSE                TC_NULL
  178. #define TC_MANIFEST_VECTOR        TC_NULL
  179. #define TC_BIT_STRING            TC_VECTOR_1B
  180. #define TC_VECTOR_8B            TC_CHARACTER_STRING
  181. #define TC_HUNK3            TC_HUNK3_B
  182.  
  183. #define UNMARKED_HISTORY_TYPE        TC_HUNK3_A
  184. #define MARKED_HISTORY_TYPE        TC_HUNK3_B
  185.  
  186. #define case_TC_FIXNUMs case TC_FIXNUM
  187.