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 / gctype.c < prev    next >
C/C++ Source or Header  |  1999-01-02  |  10KB  |  324 lines

  1. /* -*-C-*-
  2.  
  3. $Id: gctype.c,v 9.34 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. /* This file contains the table which maps between Types and GC Types.  */
  23.  
  24. #include "config.h"        /* for definition of TYPE_CODE_LENGTH */
  25.  
  26.         /*********************************/
  27.         /* Mapping GC_Type to Type_Codes */
  28.         /*********************************/
  29.  
  30. int GC_Type_Map[MAX_TYPE_CODE + 1] = {
  31.     GC_Non_Pointer,        /* TC_NULL,etc */
  32.     GC_Pair,            /* TC_LIST */
  33.     GC_Non_Pointer,        /* TC_CHARACTER */
  34.     GC_Pair,               /* TC_SCODE_QUOTE */
  35.     GC_Triple,                /* TC_PCOMB2 */
  36.     GC_Pair,            /* TC_UNINTERNED_SYMBOL */
  37.     GC_Vector,            /* TC_BIG_FLONUM */
  38.     GC_Pair,            /* TC_COMBINATION_1 */
  39.     GC_Non_Pointer,        /* TC_CONSTANT */
  40.     GC_Pair,            /* TC_EXTENDED_PROCEDURE */
  41.     GC_Vector,            /* TC_VECTOR */
  42.     GC_Non_Pointer,        /* TC_RETURN_CODE */
  43.     GC_Triple,            /* TC_COMBINATION_2 */
  44.     GC_Special,            /* TC_MANIFEST_CLOSURE */
  45.     GC_Vector,            /* TC_BIG_FIXNUM */
  46.     GC_Pair,            /* TC_PROCEDURE */
  47.     GC_Pair,            /* TC_ENTITY */
  48.     GC_Pair,            /* TC_DELAY */
  49.     GC_Vector,            /* TC_ENVIRONMENT */
  50.     GC_Pair,            /* TC_DELAYED */
  51.     GC_Triple,            /* TC_EXTENDED_LAMBDA */
  52.     GC_Pair,            /* TC_COMMENT */
  53.     GC_Vector,            /* TC_NON_MARKED_VECTOR */
  54.     GC_Pair,            /* TC_LAMBDA */
  55.     GC_Non_Pointer,        /* TC_PRIMITIVE */
  56.     GC_Pair,            /* TC_SEQUENCE_2 */
  57.     GC_Non_Pointer,        /* TC_FIXNUM */
  58.     GC_Pair,            /* TC_PCOMB1 */
  59.     GC_Vector,            /* TC_CONTROL_POINT */
  60.     GC_Pair,            /* TC_INTERNED_SYMBOL */
  61.     GC_Vector,            /* TC_CHARACTER_STRING,TC_VECTOR_8B */
  62.     GC_Pair,            /* TC_ACCESS */
  63.     GC_Triple,            /* TC_HUNK3_A */
  64.     GC_Pair,            /* TC_DEFINITION */
  65.     GC_Special,            /* TC_BROKEN_HEART */
  66.     GC_Pair,            /* TC_ASSIGNMENT */
  67.     GC_Triple,            /* TC_HUNK3_B */
  68.     GC_Pair,            /* TC_IN_PACKAGE */
  69.  
  70. /* GC_Type_Map continues on next page */
  71.  
  72. /* GC_Type_Map continued */
  73.  
  74.     GC_Vector,            /* TC_COMBINATION */
  75.     GC_Special,            /* TC_MANIFEST_NM_VECTOR */
  76.     GC_Compiled,        /* TC_COMPILED_ENTRY */
  77.     GC_Pair,            /* TC_LEXPR */
  78.     GC_Vector,            /* TC_PCOMB3 */
  79.     GC_Special,            /* TC_MANIFEST_SPECIAL_NM_VECTOR */
  80.     GC_Triple,            /* TC_VARIABLE */
  81.     GC_Non_Pointer,        /* TC_THE_ENVIRONMENT */
  82.     GC_Vector,            /* TC_FUTURE */
  83.     GC_Vector,            /* TC_VECTOR_1B,TC_BIT_STRING */
  84.     GC_Non_Pointer,        /* TC_PCOMB0 */
  85.     GC_Vector,            /* TC_VECTOR_16B */
  86.     GC_Special,            /* TC_REFERENCE_TRAP */
  87.     GC_Triple,            /* TC_SEQUENCE_3 */
  88.     GC_Triple,            /* TC_CONDITIONAL */
  89.     GC_Pair,            /* TC_DISJUNCTION */
  90.     GC_Cell,            /* TC_CELL */
  91.     GC_Pair,            /* TC_WEAK_CONS */
  92.     GC_Quadruple,        /* TC_QUAD */
  93.     GC_Special,            /* TC_LINKAGE_SECTION */
  94.     GC_Pair,            /* TC_RATNUM */
  95.     GC_Non_Pointer,        /* TC_STACK_ENVIRONMENT */
  96.     GC_Pair,            /* TC_COMPLEX */
  97.     GC_Vector,            /* TC_COMPILED_CODE_BLOCK */
  98.     GC_Vector,            /* TC_RECORD */
  99.  
  100. #if (TYPE_CODE_LENGTH == 6)
  101.  
  102.     GC_Undefined            /* 0x3F */
  103.  
  104. #else /* (TYPE_CODE_LENGTH != 6) */
  105.  
  106.     GC_Undefined,            /* 0x3F */
  107.     GC_Undefined,            /* 0x40 */
  108.     GC_Undefined,            /* 0x41 */
  109.     GC_Undefined,            /* 0x42 */
  110.     GC_Undefined,            /* 0x43 */
  111.     GC_Undefined,            /* 0x44 */
  112.     GC_Undefined,            /* 0x45 */
  113.     GC_Undefined,            /* 0x46 */
  114.     GC_Undefined,            /* 0x47 */
  115.     GC_Undefined,            /* 0x48 */
  116.     GC_Undefined,            /* 0x49 */
  117.     GC_Undefined,            /* 0x4A */
  118.     GC_Undefined,            /* 0x4B */
  119.     GC_Undefined,            /* 0x4C */
  120.     GC_Undefined,            /* 0x4D */
  121.     GC_Undefined,            /* 0x4E */
  122.     GC_Undefined,            /* 0x4F */
  123.     GC_Undefined,            /* 0x50 */
  124.     GC_Undefined,            /* 0x51 */
  125.     GC_Undefined,            /* 0x52 */
  126.     GC_Undefined,            /* 0x53 */
  127.     GC_Undefined,            /* 0x54 */
  128.  
  129. /* GC_Type_Map continues on next page */
  130.  
  131. /* GC_Type_Map continued */
  132.  
  133.     GC_Undefined,            /* 0x55 */
  134.     GC_Undefined,            /* 0x56 */
  135.     GC_Undefined,            /* 0x57 */
  136.     GC_Undefined,            /* 0x58 */
  137.     GC_Undefined,            /* 0x59 */
  138.     GC_Undefined,            /* 0x5A */
  139.     GC_Undefined,            /* 0x5B */
  140.     GC_Undefined,            /* 0x5C */
  141.     GC_Undefined,            /* 0x5D */
  142.     GC_Undefined,            /* 0x5E */
  143.     GC_Undefined,            /* 0x5F */
  144.     GC_Undefined,            /* 0x60 */
  145.     GC_Undefined,            /* 0x61 */
  146.     GC_Undefined,            /* 0x62 */
  147.     GC_Undefined,            /* 0x63 */
  148.     GC_Undefined,            /* 0x64 */
  149.     GC_Undefined,            /* 0x65 */
  150.     GC_Undefined,            /* 0x66 */
  151.     GC_Undefined,            /* 0x67 */
  152.     GC_Undefined,            /* 0x68 */
  153.     GC_Undefined,            /* 0x69 */
  154.     GC_Undefined,            /* 0x6A */
  155.     GC_Undefined,            /* 0x6B */
  156.     GC_Undefined,            /* 0x6C */
  157.     GC_Undefined,            /* 0x6D */
  158.     GC_Undefined,            /* 0x6E */
  159.     GC_Undefined,            /* 0x6F */
  160.     GC_Undefined,            /* 0x70 */
  161.     GC_Undefined,            /* 0x71 */
  162.     GC_Undefined,            /* 0x72 */
  163.     GC_Undefined,            /* 0x73 */
  164.     GC_Undefined,            /* 0x74 */
  165.     GC_Undefined,            /* 0x75 */
  166.     GC_Undefined,            /* 0x76 */
  167.     GC_Undefined,            /* 0x77 */
  168.     GC_Undefined,            /* 0x78 */
  169.     GC_Undefined,            /* 0x79 */
  170.     GC_Undefined,            /* 0x7A */
  171.     GC_Undefined,            /* 0x7B */
  172.     GC_Undefined,            /* 0x7C */
  173.     GC_Undefined,            /* 0x7D */
  174.     GC_Undefined,            /* 0x7E */
  175.     GC_Undefined,            /* 0x7F */
  176.  
  177.     GC_Undefined,            /* 0x80 */
  178.     GC_Undefined,            /* 0x81 */
  179.     GC_Undefined,            /* 0x82 */
  180.     GC_Undefined,            /* 0x83 */
  181.     GC_Undefined,            /* 0x84 */
  182.     GC_Undefined,            /* 0x85 */
  183.     GC_Undefined,            /* 0x86 */
  184.     GC_Undefined,            /* 0x87 */
  185.     GC_Undefined,            /* 0x88 */
  186.     GC_Undefined,            /* 0x89 */
  187.     GC_Undefined,            /* 0x8A */
  188.     GC_Undefined,            /* 0x8B */
  189.     GC_Undefined,            /* 0x8C */
  190.     GC_Undefined,            /* 0x8D */
  191.     GC_Undefined,            /* 0x8E */
  192.     GC_Undefined,            /* 0x8F */
  193.     GC_Undefined,            /* 0x90 */
  194.     GC_Undefined,            /* 0x91 */
  195.     GC_Undefined,            /* 0x92 */
  196.     GC_Undefined,            /* 0x93 */
  197.     GC_Undefined,            /* 0x94 */
  198.     GC_Undefined,            /* 0x95 */
  199.     GC_Undefined,            /* 0x96 */
  200.     GC_Undefined,            /* 0x97 */
  201.     GC_Undefined,            /* 0x98 */
  202.     GC_Undefined,            /* 0x99 */
  203.     GC_Undefined,            /* 0x9A */
  204.     GC_Undefined,            /* 0x9B */
  205.     GC_Undefined,            /* 0x9C */
  206.     GC_Undefined,            /* 0x9D */
  207.     GC_Undefined,            /* 0x9E */
  208.     GC_Undefined,            /* 0x9F */
  209.     GC_Undefined,            /* 0xA0 */
  210.     GC_Undefined,            /* 0xA1 */
  211.     GC_Undefined,            /* 0xA2 */
  212.     GC_Undefined,            /* 0xA3 */
  213.     GC_Undefined,            /* 0xA4 */
  214.     GC_Undefined,            /* 0xA5 */
  215.     GC_Undefined,            /* 0xA6 */
  216.     GC_Undefined,            /* 0xA7 */
  217.     GC_Undefined,            /* 0xA8 */
  218.     GC_Undefined,            /* 0xA9 */
  219.     GC_Undefined,            /* 0xAA */
  220.     GC_Undefined,            /* 0xAB */
  221.     GC_Undefined,            /* 0xAC */
  222.     GC_Undefined,            /* 0xAD */
  223.     GC_Undefined,            /* 0xAE */
  224.     GC_Undefined,            /* 0xAF */
  225.  
  226.     GC_Undefined,            /* 0xB0 */
  227.     GC_Undefined,            /* 0xB1 */
  228.     GC_Undefined,            /* 0xB2 */
  229.     GC_Undefined,            /* 0xB3 */
  230.     GC_Undefined,            /* 0xB4 */
  231.     GC_Undefined,            /* 0xB5 */
  232.     GC_Undefined,            /* 0xB6 */
  233.     GC_Undefined,            /* 0xB7 */
  234.     GC_Undefined,            /* 0xB8 */
  235.     GC_Undefined,            /* 0xB9 */
  236.     GC_Undefined,            /* 0xBA */
  237.     GC_Undefined,            /* 0xBB */
  238.     GC_Undefined,            /* 0xBC */
  239.     GC_Undefined,            /* 0xBD */
  240.     GC_Undefined,            /* 0xBE */
  241.     GC_Undefined,            /* 0xBF */
  242.     GC_Undefined,            /* 0xC0 */
  243.     GC_Undefined,            /* 0xC1 */
  244.     GC_Undefined,            /* 0xC2 */
  245.     GC_Undefined,            /* 0xC3 */
  246.     GC_Undefined,            /* 0xC4 */
  247.     GC_Undefined,            /* 0xC5 */
  248.     GC_Undefined,            /* 0xC6 */
  249.     GC_Undefined,            /* 0xC7 */
  250.     GC_Undefined,            /* 0xC8 */
  251.     GC_Undefined,            /* 0xC9 */
  252.     GC_Undefined,            /* 0xCA */
  253.     GC_Undefined,            /* 0xCB */
  254.     GC_Undefined,            /* 0xCC */
  255.     GC_Undefined,            /* 0xCD */
  256.     GC_Undefined,            /* 0xCE */
  257.     GC_Undefined,            /* 0xCF */
  258.     GC_Undefined,            /* 0xD0 */
  259.     GC_Undefined,            /* 0xD1 */
  260.     GC_Undefined,            /* 0xD2 */
  261.     GC_Undefined,            /* 0xD3 */
  262.     GC_Undefined,            /* 0xD4 */
  263.     GC_Undefined,            /* 0xD5 */
  264.     GC_Undefined,            /* 0xD6 */
  265.     GC_Undefined,            /* 0xD7 */
  266.     GC_Undefined,            /* 0xD8 */
  267.     GC_Undefined,            /* 0xD9 */
  268.     GC_Undefined,            /* 0xDA */
  269.     GC_Undefined,            /* 0xDB */
  270.     GC_Undefined,            /* 0xDC */
  271.     GC_Undefined,            /* 0xDD */
  272.     GC_Undefined,            /* 0xDE */
  273.     GC_Undefined,            /* 0xDF */
  274.  
  275.     GC_Undefined,            /* 0xE0 */
  276.     GC_Undefined,            /* 0xE1 */
  277.     GC_Undefined,            /* 0xE2 */
  278.     GC_Undefined,            /* 0xE3 */
  279.     GC_Undefined,            /* 0xE4 */
  280.     GC_Undefined,            /* 0xE5 */
  281.     GC_Undefined,            /* 0xE6 */
  282.     GC_Undefined,            /* 0xE7 */
  283.     GC_Undefined,            /* 0xE8 */
  284.     GC_Undefined,            /* 0xE9 */
  285.     GC_Undefined,            /* 0xEA */
  286.     GC_Undefined,            /* 0xEB */
  287.     GC_Undefined,            /* 0xEC */
  288.     GC_Undefined,            /* 0xED */
  289.     GC_Undefined,            /* 0xEE */
  290.     GC_Undefined,            /* 0xEF */
  291.     GC_Undefined,            /* 0xF0 */
  292.     GC_Undefined,            /* 0xF1 */
  293.     GC_Undefined,            /* 0xF2 */
  294.     GC_Undefined,            /* 0xF3 */
  295.     GC_Undefined,            /* 0xF4 */
  296.     GC_Undefined,            /* 0xF5 */
  297.     GC_Undefined,            /* 0xF6 */
  298.     GC_Undefined,            /* 0xF7 */
  299.     GC_Undefined,            /* 0xF8 */
  300.     GC_Undefined,            /* 0xF9 */
  301.     GC_Undefined,            /* 0xFA */
  302.     GC_Undefined,            /* 0xFB */
  303.     GC_Undefined,            /* 0xFC */
  304.     GC_Undefined,            /* 0xFD */
  305.     GC_Undefined,            /* 0xFE */
  306.     GC_Undefined            /* last */
  307. #endif /* (TYPE_CODE_LENGTH != 6) */
  308.  
  309.     };
  310.  
  311. #if (TYPE_CODE_LENGTH == 6)
  312.  
  313. #if (MAX_TYPE_CODE != 0x3F)
  314. #include "gctype.c and object.h inconsistent -- GC_Type_Map"
  315. #endif
  316.  
  317. #else /* (TYPE_CODE_LENGTH != 6) */
  318.  
  319. #if (MAX_TYPE_CODE != 0xFF)
  320. #include "gctype.c and object.h inconsistent -- GC_Type_Map"
  321. #endif
  322.  
  323. #endif /* (TYPE_CODE_LENGTH == 6) */
  324.