/// <summary>overriden ToString method</summary> public override string ToString() { string[] s = new string[ParameterList.Length]; for (int i = 0; i < this.ParameterList.Length; i++) { RegParamPair p = this.ParameterList[i]; s[i] = p.ToString(); } string[] s2 = new string[ActionRecord.Count]; for (int i = 0; i < ActionRecord.Count; i++) { //s2[i] = String.Format("{0}",ActionRecord[i].ToString()); BaseAction a = (BaseAction)ActionRecord[i]; s2[i] = a.ToString(); } return(String.Format("\n/*function2 '{0}' ({2})({1})\n{3}\nend function {4}*/\n", Name, String.Join(",", s), flags.ToString(), String.Join("\n", s2), Name )); }
/// <summary> /// constructor /// </summary> /// <param name="n">function name</param> /// <param name="p">function parameters</param> /// <param name="r">register count</param> /// <param name="f">flags for automatic register allocation</param> /// <param name="actionRec">inner action block (body)</param> public ActionDefineFunction2(string n, RegParamPair[] p, int r, VariableFlagSet f, ArrayList actionRec) : base(ActionCode.DefineFunction2) { Name = n; ParameterList = p; RegisterCount = r; flags = f; ActionRecord = actionRec; }