Esempio n. 1
0
        public static XNodeOut SignatureToClass(string signature, XNodeOut fileNode)
        {
            // create syntax tree for signature
            XDef def = XDef.ParseAndCheck(signature);

            // iterate syntax tree and add to our node map
            XNodeOut currentNode = fileNode;

            while (def != null)
            {
                if (def.DefType == XDef.XDefType.Namespace)
                {
                    currentNode = currentNode.AddNode(def.Name, XObjType.Namespace);
                }

                else if (def.DefType == XDef.XDefType.Class)
                {
                    currentNode = currentNode.AddNode(def.GetShortName(), XObjType.Class);

                    /* Cant map generic params because the fileNode is not right
                     * if (def.Generics != null)
                     *  foreach (var genericSig in def.Generics)
                     *      SignatureToClass(genericSig.GetFullName(), fileNode);*/
                }

                def = def.SubDef;
            }

            Debug.Assert(currentNode.ObjType == XObjType.Class);

            return(currentNode);
        }
Esempio n. 2
0
        static void Main()
        {
            XDef.Test();
            PacketExts.Test();
            GenericPacket.Test();

            Pro.LoadFromDirectory(Application.StartupPath);

            XRay.BuilderVersion = Assembly.GetEntryAssembly().GetName().Version.ToString();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }
Esempio n. 3
0
        internal XNodeOut AddField(FieldReference fieldDef)
        {
            // include namespace later for dynamic lookups - string name = fieldDef.FieldType.FullName + "::" + fieldDef.Name;

            XDef fieldTypeDef = XDef.ParseAndCheck(fieldDef.FieldType.ToString());

            string name = fieldTypeDef.GetShortName() + " " + fieldDef.Name;

            var node = AddNode(name, XObjType.Field);

            node.Lines = 1;

            return(node);
        }