/// <summary> /// Initializes a new instance of the <see cref="CSharpFeatureCall"/> class. /// </summary> /// <param name="context">The creation context.</param> /// <param name="source">Details of the feature call.</param> public CSharpFeatureCall(ICSharpContext context, IFeatureCall source) { foreach (IParameter Item in source.ParameterList) { ICSharpClass Owner = context.GetClass(Item.ResolvedParameter.Location.EmbeddingClass); ICSharpParameter NewParameter = CSharpParameter.Create(context, Item, Owner); ParameterList.Add(NewParameter); } foreach (IParameter Item in source.ResultList) { ICSharpClass Owner = context.GetClass(Item.ResolvedParameter.Location.EmbeddingClass); ICSharpParameter NewParameter = CSharpParameter.Create(context, Item, Owner); ResultList.Add(NewParameter); } foreach (IArgument Item in source.ArgumentList) { ICSharpArgument NewArgument = CSharpArgument.Create(context, Item); ArgumentList.Add(NewArgument); } Debug.Assert(ParameterList.Count >= ArgumentList.Count); Count = ParameterList.Count; ArgumentStyle = source.TypeArgumentStyle; }
/// <summary> /// Initializes a new instance of the <see cref="CSharpCommandOverloadType"/> class. /// </summary> /// <param name="context">The creation context.</param> /// <param name="source">The Easly node from which the C# node is created.</param> /// <param name="owner">The class where the overload is declared.</param> protected CSharpCommandOverloadType(ICSharpContext context, ICommandOverloadType source, ICSharpClass owner) : base(source) { foreach (IParameter Parameter in source.ParameterTable) { ICSharpParameter NewParameter = CSharpParameter.Create(context, Parameter, owner); ParameterList.Add(NewParameter); } }
/// <summary> /// Initializes a new instance of the <see cref="CSharpCommandOverload"/> class. /// </summary> /// <param name="context">The creation context.</param> /// <param name="source">The Easly node from which the C# node is created.</param> /// <param name="parentFeature">The parent feature.</param> /// <param name="owner">The class where the overload is declared.</param> protected CSharpCommandOverload(ICSharpContext context, ICommandOverload source, ICSharpFeature parentFeature, ICSharpClass owner) : base(source) { ParentFeature = parentFeature; foreach (IParameter Parameter in source.ParameterTable) { ICSharpParameter NewParameter = CSharpParameter.Create(context, Parameter, owner); ParameterList.Add(NewParameter); } Body = CSharpBody.Create(context, parentFeature, source.ResolvedBody.Item); }
/// <summary> /// Initializes a new instance of the <see cref="CSharpQueryOverloadType"/> class. /// </summary> /// <param name="context">The creation context.</param> /// <param name="source">The Easly node from which the C# node is created.</param> /// <param name="owner">The class where the overload is declared.</param> protected CSharpQueryOverloadType(ICSharpContext context, IQueryOverloadType source, ICSharpClass owner) : base(source) { foreach (IParameter Parameter in source.ParameterTable) { ICSharpParameter NewParameter = CSharpParameter.Create(context, Parameter, owner); ParameterList.Add(NewParameter); } foreach (IParameter Result in source.ResultTable) { ICSharpParameter NewResult = CSharpParameter.Create(context, Result, owner); ResultList.Add(NewResult); } }
/// <summary> /// Initializes the feature overloads and bodies. /// </summary> /// <param name="context">The initialization context.</param> public override void InitOverloadsAndBodies(ICSharpContext context) { EntityType = CSharpType.Create(context, Source.ResolvedEntityType.Item); foreach (IParameter Parameter in Source.ParameterTable) { ICSharpParameter NewParameter = CSharpParameter.Create(context, Parameter, Owner); IndexParameterList.Add(NewParameter); } if (Source.GetterBody.IsAssigned) { GetterBody = CSharpBody.Create(context, this, (ICompiledBody)Source.GetterBody.Item); } if (Source.SetterBody.IsAssigned) { SetterBody = CSharpBody.Create(context, this, (ICompiledBody)Source.SetterBody.Item); } }