/* Little Smalltalk, version 2 Written by Tim Budd, Oregon State University, July 1987 */ /* names and sizes of internally object used internally in the system */ # define classSize 6 # define nameInClass 1 # define sizeInClass 2 # define methodsInClass 3 # define superClassInClass 4 # define variablesInClass 5 # define methodSize 6 # define textInMethod 1 # define messageInMethod 2 # define bytecodesInMethod 3 # define literalsInMethod 4 # define stackSizeInMethod 5 # define temporarySizeInMethod 6 # define contextSize 6 # define methodInContext 1 # define methodClassInContext 2 # define argumentsInContext 3 # define temporariesInContext 4 # define blockSize 6 # define contextInBlock 1 # define argumentCountInBlock 2 # define argumentLocationInBlock 3 # define bytecountPositionInBlock 4 # define creatingInterpreterInBlock 5 # define InterpreterSize 6 # define contextInInterpreter 1 # define previousInterpreterInInterpreter 2 # define creatingInterpreterInInterpreter 3 # define stackInInterpreter 4 # define stackTopInInterpreter 5 # define byteCodePointerInInterpreter 6 extern object nameTableLookup(OBJ X OBJ); # define globalSymbol(s) nameTableLookup(globalNames, newSymbol(s)) extern object trueobj; /* the pseudo variable true */ extern object falseobj; /* the pseudo variable false */ extern object smallobj; /* the pseudo variable smalltalk */ extern object blockclass; /* the class ``Block'' */ extern object contextclass; /* the class ``Context'' */ extern object intclass; /* the class ``Integer'' */ extern object intrclass; /* the class ``Interpreter'' */ extern object symbolclass; /* the class ``Symbol'' */ extern object stringclass; /* the class ``String'' */ extern object getClass(OBJ); /* get class of an object */ extern object newSymbol(STR); /* new smalltalk symbol */ extern object newArray(INT); /* new array */ extern object newStString(STR); /* new smalltalk string */ extern object newFloat(FLOAT); /* new floating point number */ extern noreturn initCommonSymbols(); /* common symbols */ of the compiled methods (also, in some cases, to more efficient