コード例 #1
0
ファイル: SEHItem.cs プロジェクト: Symontoclay/SymOntoClay
        /// <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);
        }
コード例 #2
0
        /// <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);
        }