IWorkshopTree ToMacro(ActionSet actionSet)
        {
            var allMacros = new List <VariableInstanceOption>();

            allMacros.Add(new VariableInstanceOption(this));

            // Get the class relation.
            if (_definedIn != null)
            {
                var relation = actionSet.ToWorkshop.ClassInitializer.RelationFromClassType((ClassType)_definedIn);

                // Extract the virtual functions.
                allMacros.AddRange(relation.ExtractOverridenElements <VariableInstance>(extender => extender.Name == Name)
                                   .Select(extender => new VariableInstanceOption(extender)));
            }

            return(new MacroContentBuilder(actionSet.PackThis(), allMacros).Value);
        }
 public virtual void AssignParameters()
 {
     ActionSet = ActionSet.PackThis();
 }
 public void ParseInner(ActionSet actionSet) => _constructor.Block.Translate(actionSet.PackThis());
        public override void Parse(ActionSet actionSet, IWorkshopTree[] parameterValues, object[] additionalParameterData)
        {
            var builder = new FunctionBuildController(actionSet.PackThis(), new CallHandler(parameterValues), new ConstructorDeterminer(this));

            builder.Call();
        }