Esempio n. 1
0
        private IWorkshopTree NewStruct(ActionSet actionSet, Constructor constructor, IWorkshopTree[] constructorValues)
        {
            var structObject = actionSet.VarCollection.Assign("_new_" + Name + "_class_index", actionSet.IsGlobal, true);

            SetInitialVariables(structObject, actionSet);

            // Run the constructor.
            AddObjectVariablesToAssigner(structObject, actionSet.IndexAssigner);
            constructor.Parse(actionSet, constructorValues);

            return(structObject.GetVariable());
        }
Esempio n. 2
0
        private IWorkshopTree NewClass(ActionSet actionSet, Constructor constructor, IWorkshopTree[] constructorValues)
        {
            var classData = actionSet.Translate.DeltinScript.SetupClasses();

            // Classes are stored in the class array (`classData.ClassArray`),
            // this stores the index where the new class is created at.
            var classReference = actionSet.VarCollection.Assign("_new_" + Name + "_class_index", actionSet.IsGlobal, true);

            GetClassIndex(classReference, actionSet, classData);

            var classObject = classData.ClassArray.CreateChild((Element)classReference.GetVariable());

            SetInitialVariables(classObject, actionSet);

            // Run the constructor.
            AddObjectVariablesToAssigner(classObject, actionSet.IndexAssigner);
            constructor.Parse(actionSet, constructorValues);

            return(classReference.GetVariable());
        }