public Clr(int localCount = 5, int argCount = 5, bool haseResult = true, int maxStack = 5) { #if JS _Stack = new BaseClrStack(maxStack); #else Stack = new ClrStack(maxStack); #endif RetResult = haseResult; LocalVarCount = localCount; ArgsVarCount = argCount; #if JS CallStackClr = new BaseClrStack(localCount + argCount); CallStack = CallStackClr.EvaluationStack; #else CallStack = new StackItem[localCount + argCount]; #endif if (CallStack.Length <= 0) { return; } #if JS _Csp = 0; _Argp = Csp + localCount; #else fixed(StackItem *csp = &CallStack[0]) { Csp = csp; Argp = csp + localCount; } for (int i = 0; i < CallStack.Length; i++) { CallStack[i].Index = i; CallStack[i].Fix(); //fixed (int* x = &CallStack[i].IntValue) //{ // CallStack[i].VPoint = x; //} } #endif }
public StackItem(int lindex, BaseClrStack current) { LValue = lindex; Current = current; }
public void SetCurrent() { Current = this; }