from awlsim.core.cpu cimport *
from awlsim.core.blocks cimport *
from awlsim.core.datablocks cimport *
from awlsim.core.lstack cimport *
from awlsim.core.memory cimport *
from awlsim.core.objectcache cimport *
from awlsim.core.parameters cimport *

cdef class CallStackElem(object):
	cdef public S7CPU cpu
	cdef public list parenStack
	cdef public uint32_t ip
	cdef public CodeBlock block
	cdef public list insns
	cdef public _Bool isRawCall
	cdef public DB instanceDB
	cdef public DB prevDbRegister
	cdef public DB prevDiRegister
	cdef public uint32_t prevAR2value
	cdef public LStackAllocator lalloc
	cdef public AwlMemory localdata
	cdef public list __outboundParams
	cdef public dict __interfRefs
	cdef public ObjectCache lallocCache

	cpdef AwlOperator getInterfIdxOper(self, uint32_t interfaceFieldIndex)
	cdef bytearray __FB_trans_dbpointer(self, AwlParamAssign param, AwlOperator rvalueOp)
	cdef handleBlockExit(self)
