Esempio n. 1
0
void routineEntry(SymTableNodePtr routineIdPtr)
{
	if(debugger)
		debugger->traceRoutineEntry(routineIdPtr);
	memset(&returnValue, 0, sizeof(StackItem));
	//------------------------------
	// Switch to new code segment...
	codeSegmentPtr = routineIdPtr->defn.info.routine.codeSegment;
	//----------------------------------------------
	// Allocate local variables onto system stack...
	for(SymTableNodePtr varIdPtr = (SymTableNodePtr)(routineIdPtr->defn.info.routine.locals);
			varIdPtr != nullptr;
			varIdPtr = varIdPtr->next)
		if(varIdPtr->defn.info.data.varType == VAR_TYPE_NORMAL)
			allocLocal((TypePtr)(varIdPtr->typePtr));
}