/// <summary> /// Clones the instance using special context and returns cloned instance. /// </summary> /// <param name="context">Special context for providing references continuity.</param> /// <returns>Cloned instance.</returns> public SEHItem Clone(Dictionary <object, object> context) { if (context.ContainsKey(this)) { return((SEHItem)context[this]); } var result = new SEHItem(); context[this] = result; result.VariableName = VariableName?.Clone(context); result.Condition = Condition?.Clone(context); result.TargetPosition = TargetPosition; return(result); }
/// <summary> /// Clones the instance using special context and returns cloned instance. /// </summary> /// <param name="context">Special context for providing references continuity.</param> /// <returns>Cloned instance.</returns> public AstCatchStatement Clone(Dictionary <object, object> context) { if (context.ContainsKey(this)) { return((AstCatchStatement)context[this]); } var result = new AstCatchStatement(); context[this] = result; result.VariableName = VariableName?.Clone(context); result.Condition = Condition?.Clone(context); result.Statements = Statements?.Select(p => p.CloneAstStatement(context)).ToList(); result.AppendAnnotations(this, context); return(result); }