/// <summary>
        /// Initializes a new instance of the <see cref="CSharpOverLoopInstruction"/> class.
        /// </summary>
        /// <param name="context">The creation context.</param>
        /// <param name="parentFeature">The parent feature.</param>
        /// <param name="source">The Easly instruction from which the C# instruction is created.</param>
        protected CSharpOverLoopInstruction(ICSharpContext context, ICSharpFeature parentFeature, IOverLoopInstruction source)
            : base(context, parentFeature, source)
        {
            OverList         = CSharpExpression.Create(context, (IExpression)source.OverList);
            LoopInstructions = CSharpScope.Create(context, parentFeature, (IScope)source.LoopInstructions);

            foreach (IName Name in source.IndexerList)
            {
                string IndexerName = Name.ValidText.Item;
                IScopeAttributeFeature IndexerFeature = Source.InnerLoopScope[IndexerName];

                ICSharpScopeAttributeFeature NewIndexer = CSharpScopeAttributeFeature.Create(context, ParentFeature.Owner, IndexerFeature);
                IndexerList.Add(NewIndexer);
            }

            if (source.ExitEntityName.IsAssigned)
            {
                ExitEntityName = ((IIdentifier)source.ExitEntityName.Item).ValidText.Item;
            }

            foreach (IAssertion Item in Source.InvariantList)
            {
                ICSharpAssertion NewAssertion = CSharpAssertion.Create(context, Item);
                InvariantList.Add(NewAssertion);
            }
        }
 /// <summary>
 /// Creates a new C# instruction.
 /// </summary>
 /// <param name="context">The creation context.</param>
 /// <param name="parentFeature">The parent feature.</param>
 /// <param name="source">The Easly instruction from which the C# instruction is created.</param>
 public static ICSharpOverLoopInstruction Create(ICSharpContext context, ICSharpFeature parentFeature, IOverLoopInstruction source)
 {
     return(new CSharpOverLoopInstruction(context, parentFeature, source));
 }