home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / smalltk / src / names.h < prev    next >
C/C++ Source or Header  |  1991-10-12  |  2KB  |  72 lines

  1. /*
  2.     Little Smalltalk, version 2
  3.     Written by Tim Budd, Oregon State University, July 1987
  4. */
  5. /*
  6.     names and sizes of internally object used internally in the system
  7. */
  8.  
  9. # define classSize 5
  10. # define nameInClass 1
  11. # define sizeInClass 2
  12. # define methodsInClass 3
  13. # define superClassInClass 4
  14. # define variablesInClass 5
  15.  
  16. # define methodSize 8
  17. # define textInMethod 1
  18. # define messageInMethod 2
  19. # define bytecodesInMethod 3
  20. # define literalsInMethod 4
  21. # define stackSizeInMethod 5
  22. # define temporarySizeInMethod 6
  23. # define methodClassInMethod 7
  24. # define watchInMethod 8
  25. # define methodStackSize(x) intValue(basicAt(x, stackSizeInMethod))
  26. # define methodTempSize(x) intValue(basicAt(x, temporarySizeInMethod))
  27.  
  28. # define contextSize 6
  29. # define linkPtrInContext 1
  30. # define methodInContext 2
  31. # define argumentsInContext 3
  32. # define temporariesInContext 4
  33.  
  34. # define blockSize 6
  35. # define contextInBlock 1
  36. # define argumentCountInBlock 2
  37. # define argumentLocationInBlock 3
  38. # define bytecountPositionInBlock 4
  39.  
  40. # define processSize 3
  41. # define stackInProcess 1
  42. # define stackTopInProcess 2
  43. # define linkPtrInProcess 3
  44.  
  45. extern object trueobj;        /* the pseudo variable true */
  46. extern object falseobj;        /* the pseudo variable false */
  47.  
  48. extern object getClass(OBJ);
  49. extern object copyFrom( OBJ X INT X INT);
  50. extern object newArray(INT);
  51. extern object newBlock();
  52. extern object newByteArray(INT);
  53. extern object newClass(STR);
  54. extern object newChar(INT);
  55. extern object newContext(INT X OBJ X OBJ X OBJ);
  56. extern object newDictionary(INT);
  57. extern object newFloat(FLOAT);
  58. extern object newMethod();
  59. extern object newLink(OBJ X OBJ);
  60. extern object newStString(STR);
  61. extern object newSymbol(STR);
  62. extern double floatValue(OBJ);
  63. extern noreturn initCommonSymbols();    /* common symbols */
  64. extern object unSyms[], binSyms[];
  65.  
  66. extern noreturn nameTableInsert( OBJ X INT X OBJ X OBJ );
  67. /*extern object hashEachElement( OBJ X INT X INT FUNC );*/
  68. extern int strHash ( STR );
  69. extern object globalKey ( STR );
  70. extern object nameTableLookup ( OBJ X STR );
  71. # define globalSymbol(s) nameTableLookup(symbols, s)
  72.