/// <summary> /// Creates a copy of the procedure in the designated dictionary. The namespace structure is copied over. /// The new procedure is set to update this one. /// </summary> /// <param name="dictionary">The target dictionary of the copy</param> /// <returns></returns> public Procedure CreateProcedureUpdate(Dictionary dictionary) { Procedure retVal = (Procedure)Duplicate(); retVal.SetUpdateInformation(this); retVal.ClearAllRequirements(); String[] names = FullName.Split('.'); names = names.Take(names.Count() - 1).ToArray(); if (Enclosing is NameSpace) { NameSpace nameSpace = dictionary.GetNameSpaceUpdate(names, Dictionary); nameSpace.appendProcedures(retVal); } else { String[] nameSpaceRef = names.Take(names.Count() - 1).ToArray(); if (Enclosing is Structure) { NameSpace nameSpace = dictionary.GetNameSpaceUpdate(nameSpaceRef, Dictionary); Structure structure = nameSpace.GetStructureUpdate(names.Last(), (NameSpace)nameSpace.Updates); structure.appendProcedures(retVal); } } return(retVal); }
/// <summary> /// Creates a function in the enclosing namespace /// </summary> /// <param name="enclosing"></param> /// <param name="name"></param> /// <returns></returns> protected Procedure CreateProcedure(NameSpace enclosing, string name) { Procedure retVal = (Procedure)Factory.createProcedure(); enclosing.appendProcedures(retVal); retVal.Name = name; return(retVal); }
/// <summary> /// Creates a function in the enclosing namespace /// </summary> /// <param name="enclosing"></param> /// <param name="name"></param> /// <returns></returns> protected Procedure CreateProcedure(NameSpace enclosing, string name) { Procedure retVal = (Procedure) Factory.createProcedure(); enclosing.appendProcedures(retVal); retVal.Name = name; return retVal; }