/// <inheritdoc/>
        public override AstStatement CloneAstStatement(Dictionary <object, object> context)
        {
            if (context.ContainsKey(this))
            {
                return((AstStatement)context[this]);
            }

            var result = new AstUseInheritanceStatement();

            context[this] = result;

            result.SubName   = SubName.Clone(context);
            result.SuperName = SuperName.Clone(context);
            result.Rank      = Rank.CloneValue(context);
            result.HasNot    = HasNot;

            result.AppendAnnotations(this, context);

            return(result);
        }
Example #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 InheritanceItem Clone(Dictionary <object, object> context)
        {
            if (context.ContainsKey(this))
            {
                return((InheritanceItem)context[this]);
            }

            var result = new InheritanceItem();

            context[this]               = result;
            result.SubName              = SubName.Clone(context);
            result.SuperName            = SuperName.Clone(context);
            result.Rank                 = Rank.CloneValue(context);
            result.IsSystemDefined      = IsSystemDefined;
            result.KeysOfPrimaryRecords = KeysOfPrimaryRecords;

            result.AppendAnnotations(this, context);

            return(result);
        }