public string GetDebugString(string name) { string result = ""; result += retType.ToString() + " " + name + (null != classType ? ":" + classType.className : "") + "("; for (int iArg = 0; iArg < argTypes.Count; ++iArg) { ITypeDef argdef = argTypes[iArg] as ITypeDef; if (0 != iArg) { result += ", "; } result += argdef.ToString() + (iArg >= minArgs ? "?" : ""); } if (varargs) { result += "[, ...]"; } result += ");\n"; return(result); }
public VarStackRef AddVariable(string name, bool global, ITypeDef type, object value = null) { Variable var; if (global) { var = new Variable(name, type, value); _globals.Set(name, var); return(new VarStackRef(var, true)); } if (_varStack.Count == _varCount) { var = new Variable(name, type, value); _varStack.Add(var); } else { var = _varStack[_varCount]; if (null == var) { var = new Variable(name, type, value); _varStack[_varCount] = var; } else { var.Set(name, type, value); } } ++_varCount; #if PEBBLE_TRACESTACK TraceLog("AddVariable " + type.ToString() + " " + name + "[" + (_varCount - 1) + "] = <" + value + ">"); #endif return(new VarStackRef(type, -1, _varCount - _callStack[_callCount - 1].varStackStart - 1)); }