예제 #1
0
        public IByteElement GetByteElement(NovFile file, ClassesContainer container, IByteElement parent)
        {
            ByteClass byteClass = new ByteClass(file, this.ClassName, Type);

            foreach (var method in this.Methods)
            {
                byteClass.Methods.Add((ByteMethod)method.Value.GetByteElement(container, byteClass));
            }


            foreach (var field in this.Fields)
            {
                byteClass.Fields.Add((ByteField)field.Value.GetByteElement(container, byteClass));
            }

            return(byteClass);
        }
예제 #2
0
        private void BuildNovFile()
        {
            Method mainEntryPoint = Container.ComputeEntryPoint();

            if (mainEntryPoint != null)
            {
                this.Result = new NovFile();

                this.Result.MainPointEntry = new MainPointEntry(Container.GetClassId(mainEntryPoint.ParentClass), mainEntryPoint.Id);

                foreach (var @class in Container)
                {
                    ByteClass byteClass = (ByteClass)@class.Value.GetByteElement(Result, Container, null);
                    Result.ByteClasses.Add(byteClass);
                }
            }
            else
            {
                Logger.Write("Invalid or multiple program entry point.", LogType.Error);
            }
        }