Example #1
0
            public ClassMirror(string className, ProtoCore.Core core)
                : base(core, className)
            {
                if (core == null)
                {
                    return;
                }

                ClassName = className;

                if (classNode == null)
                {
                    ProtoCore.DSASM.ClassTable classTable = core.ClassTable;
                    int ci = classTable.IndexOf(ClassName);

                    if (ci != ProtoCore.DSASM.Constants.kInvalidIndex)
                    {
                        classNode = classTable.ClassNodes[ci];
                    }
                    else
                    {
                        throw new Exception(String.Format("Class {0} not defined", className));
                    }
                }
                libraryMirror = new LibraryMirror(classNode.ExternLib, core);
            }
Example #2
0
 internal ClassMirror(ProtoLanguage.CompileStateTracker compileState, ProtoCore.DSASM.ClassNode classNode, LibraryMirror libraryMirror)
 //: base(compileState)
 {
     this.compileState  = compileState;
     ClassName          = classNode.name;
     this.libraryMirror = libraryMirror;
     this.classNode     = classNode;
 }
Example #3
0
        /// <summary>
        /// Loads zero touch library module from given assembly.
        /// </summary>
        /// <param name="assembly"></param>
        public ZeroTouchModule(string assembly)
        {
            var core = CreateCore();
            if (!CompilerUtils.TryLoadAssemblyIntoCore(core, assembly))
                throw new InvalidOperationException("Failed to load : " + assembly);

            var library = new LibraryMirror(core, assembly, core.ClassTable.ClassNodes);
            types = library.GetClasses();
        }
Example #4
0
 public ClassMirror(ProtoCore.Type type, ProtoCore.Core core)
     : base(core, type.Name)
 {
     ClassName = type.Name;
     if (classNode == null)
     {
         ProtoCore.DSASM.ClassTable classTable = core.ClassTable;
         classNode = classTable.ClassNodes[type.UID];
     }
     libraryMirror = new LibraryMirror(classNode.ExternLib, core);
 }
Example #5
0
            public ClassMirror(int classIndex, ProtoCore.Core core)
            {
                if (classIndex == Constants.kInvalidIndex)
                {
                    throw new ArgumentException("classIndex is invalid");
                }

                ProtoCore.DSASM.ClassTable classTable = core.ClassTable;
                classNode     = classTable.ClassNodes[classIndex];
                libraryMirror = new LibraryMirror(classNode.ExternLib, core);
                ClassName     = classNode.name;
            }
Example #6
0
        /// <summary>
        /// Loads zero touch library module from given assembly.
        /// </summary>
        /// <param name="assembly"></param>
        public ZeroTouchModule(string assembly)
        {
            var core = CreateCore();

            if (!CompilerUtils.TryLoadAssemblyIntoCore(core, assembly))
            {
                throw new InvalidOperationException("Failed to load : " + assembly);
            }

            var library = new LibraryMirror(core, assembly, core.ClassTable.ClassNodes);

            types = library.GetClasses();
        }
Example #7
0
            //public ClassMirror()
            //{
            //}

            public ClassMirror(ProtoCore.Type type, ProtoLanguage.CompileStateTracker compileState)
            {
                if (core != null)
                {
                    ClassName = type.Name;
                    if (classNode == null)
                    {
                        ProtoCore.DSASM.ClassTable classTable = core.DSExecutable.classTable;
                        classNode = classTable.ClassNodes[type.UID];
                    }
                    libraryMirror = new LibraryMirror(classNode.ExternLib, compileState);
                }
            }
Example #8
0
 internal ClassMirror(ProtoCore.Core core, ProtoCore.DSASM.ClassNode classNode,
                      LibraryMirror libraryMirror = null)
     : base(core, classNode.name)
 {
     ClassName = classNode.name;
     if (libraryMirror == null)
     {
         this.libraryMirror = new LibraryMirror(classNode.ExternLib, core);
     }
     else
     {
         this.libraryMirror = libraryMirror;
     }
     this.classNode = classNode;
 }
Example #9
0
            /// <summary>
            /// Constructor to construct ClassMirror from runtime data i.e. StackValue
            /// </summary>
            /// <param name="svData">StackValue</param>
            /// <param name="core">ProtoCore.Core</param>
            internal ClassMirror(StackValue svData, ProtoCore.Core core)
                : base(core)
            {
                Validity.Assert(svData.IsPointer);
                Validity.Assert(null != core.DSExecutable.classTable);

                IList <ClassNode> classNodes = core.DSExecutable.classTable.ClassNodes;

                Validity.Assert(classNodes != null && classNodes.Count > 0);

                this.classNode = classNodes[svData.metaData.type];
                this.ClassName = this.classNode.name;
                this.Name      = this.ClassName;
                libraryMirror  = new LibraryMirror(classNode.ExternLib, core);
            }
Example #10
0
            public ClassMirror(string className, ProtoCore.Core core)
                : base(core)
            {
                if (core == null)
                {
                    return;
                }

                ClassName = className;

                if (classNode == null)
                {
                    ProtoCore.DSASM.ClassTable classTable = core.ClassTable;
                    int ci = classTable.IndexOf(ClassName);

                    if (ci != ProtoCore.DSASM.Constants.kInvalidIndex)
                    {
                        classNode = classTable.ClassNodes[ci];
                    }
                }
                libraryMirror = new LibraryMirror(classNode.ExternLib, core);
            }
Example #11
0
            public ClassMirror(int classIndex, ProtoCore.Core core)
            {
                if (classIndex == Constants.kInvalidIndex)
                {
                    throw new ArgumentException("classIndex is invalid");
                }

                ProtoCore.DSASM.ClassTable classTable = core.ClassTable;
                classNode = classTable.ClassNodes[classIndex];
                libraryMirror = new LibraryMirror(classNode.ExternLib, core);
                ClassName = classNode.Name;
            }
Example #12
0
 //: base(compileState)
 internal ClassMirror(ProtoLanguage.CompileStateTracker compileState, ProtoCore.DSASM.ClassNode classNode, LibraryMirror libraryMirror)
 {
     this.compileState = compileState;
     ClassName = classNode.name;
     this.libraryMirror = libraryMirror;
     this.classNode = classNode;
 }
Example #13
0
 internal ClassMirror(ProtoCore.Core core, ProtoCore.DSASM.ClassNode classNode,
     LibraryMirror libraryMirror = null)
     : base(core, classNode.Name)
 {
     ClassName = classNode.Name;
     if (libraryMirror == null)
         this.libraryMirror = new LibraryMirror(classNode.ExternLib, core);
     else
         this.libraryMirror = libraryMirror;
     this.classNode = classNode;
 }
Example #14
0
 //public ClassMirror(string className)
 //{
 //    ClassName = className;
 //}
 internal ClassMirror(ProtoCore.Core core, ProtoCore.DSASM.ClassNode classNode, LibraryMirror libraryMirror)
     : base(core)
 {
     ClassName = classNode.name;
     this.libraryMirror = libraryMirror;
     this.classNode = classNode;
 }
Example #15
0
            public ClassMirror(string className, ProtoCore.Core core)
                : base(core)
            {
                if (core == null)
                    return;

                ClassName = className;

                if (classNode == null)
                {

                    ProtoCore.DSASM.ClassTable classTable = core.ClassTable;
                    int ci = classTable.IndexOf(ClassName);

                    if (ci != ProtoCore.DSASM.Constants.kInvalidIndex)
                    {
                        classNode = classTable.ClassNodes[ci];
                    }
                }
                libraryMirror = new LibraryMirror(classNode.ExternLib, core);
            }
Example #16
0
 //public ClassMirror()
 //{
 //}
 public ClassMirror(ProtoCore.Type type, ProtoCore.Core core)
 {
     if (core != null)
     {
         ClassName = type.Name;
         if (classNode == null)
         {
             ProtoCore.DSASM.ClassTable classTable = core.ClassTable;
             classNode = classTable.ClassNodes[type.UID];
         }
         libraryMirror = new LibraryMirror(classNode.ExternLib, core);
     }
 }
Example #17
0
            public ClassMirror(string className, ProtoCore.Core core)
                : base(core, className)
            {
                ClassName = className;

                if (classNode == null)
                {

                    ProtoCore.DSASM.ClassTable classTable = core.ClassTable;
                    int ci = classTable.IndexOf(ClassName);

                    if (ci != ProtoCore.DSASM.Constants.kInvalidIndex)
                    {
                        classNode = classTable.ClassNodes[ci];
                    }
                    else
                        throw new Exception(String.Format("Class {0} not defined", className));
                }
                libraryMirror = new LibraryMirror(classNode.ExternLib, core);
            }
Example #18
0
            //public ClassMirror(string className)
            //{
            //    ClassName = className;
            //}

            internal ClassMirror(ProtoCore.Core core, ProtoCore.DSASM.ClassNode classNode, LibraryMirror libraryMirror) : base(core)
            {
                ClassName          = classNode.name;
                this.libraryMirror = libraryMirror;
                this.classNode     = classNode;
            }
Example #19
0
            /// <summary>
            /// Constructor to construct ClassMirror from runtime data i.e. StackValue
            /// </summary>
            /// <param name="svData">StackValue</param>
            /// <param name="core">ProtoCore.Core</param>
            internal ClassMirror(StackValue svData, ProtoCore.Core core)
                : base(core)
            {
                Validity.Assert(svData.IsPointer);
                Validity.Assert(null != core.DSExecutable.classTable);

                IList<ClassNode> classNodes = core.DSExecutable.classTable.ClassNodes;
                Validity.Assert(classNodes != null && classNodes.Count > 0);

                this.classNode = classNodes[svData.metaData.type];
                this.ClassName = this.classNode.Name;
                this.Name = this.ClassName;
                libraryMirror = new LibraryMirror(classNode.ExternLib, core);

            }
Example #20
0
 //public ClassMirror()
 //{
 //}
 public ClassMirror(ProtoCore.Type type, ProtoLanguage.CompileStateTracker compileState)
 {
     if (core != null)
     {
         ClassName = type.Name;
         if (classNode == null)
         {
             ProtoCore.DSASM.ClassTable classTable = core.DSExecutable.classTable;
             classNode = classTable.ClassNodes[type.UID];
         }
         libraryMirror = new LibraryMirror(classNode.ExternLib, compileState);
     }
 }