コード例 #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);
            }
コード例 #2
0
ファイル: Mirror.cs プロジェクト: radumg/DesignScriptStudio
 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;
 }
コード例 #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();
        }
コード例 #4
0
ファイル: Mirror.cs プロジェクト: qingemeng/Dynamo
 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);
 }
コード例 #5
0
ファイル: Mirror.cs プロジェクト: qingemeng/Dynamo
            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;
            }
コード例 #6
0
ファイル: ZeroTouchModule.cs プロジェクト: venusdharan/Dynamo
        /// <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();
        }
コード例 #7
0
ファイル: Mirror.cs プロジェクト: radumg/DesignScriptStudio
            //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);
                }
            }
コード例 #8
0
ファイル: Mirror.cs プロジェクト: qingemeng/Dynamo
 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;
 }
コード例 #9
0
ファイル: Mirror.cs プロジェクト: qingemeng/Dynamo
            /// <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);
            }
コード例 #10
0
ファイル: Mirror.cs プロジェクト: ssnkamali/Dynamo
            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);
            }
コード例 #11
0
ファイル: Mirror.cs プロジェクト: norbertzsiros/Dynamo
            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;
            }
コード例 #12
0
ファイル: Mirror.cs プロジェクト: samuto/designscript
 //: 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;
 }
コード例 #13
0
ファイル: Mirror.cs プロジェクト: limrzx/Dynamo
 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;
 }
コード例 #14
0
ファイル: Mirror.cs プロジェクト: Benglin/designscript
 //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;
 }
コード例 #15
0
ファイル: Mirror.cs プロジェクト: Benglin/designscript
            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);
            }
コード例 #16
0
ファイル: Mirror.cs プロジェクト: Benglin/designscript
 //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);
     }
 }
コード例 #17
0
ファイル: Mirror.cs プロジェクト: limrzx/Dynamo
            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);
            }
コード例 #18
0
ファイル: Mirror.cs プロジェクト: ssnkamali/Dynamo
            //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;
            }
コード例 #19
0
ファイル: Mirror.cs プロジェクト: limrzx/Dynamo
            /// <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);

            }
コード例 #20
0
ファイル: Mirror.cs プロジェクト: samuto/designscript
 //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);
     }
 }