예제 #1
0
        protected void ReadTypeTreeNode(DumpReader reader, int indent)
        {
            Type = ReadType(reader);
            Name = ReadName(reader);

            reader.FindValidateWord("//");

            ByteSize = ReadHexIntParameter(reader, "ByteSize");
            reader.FindValidateLineWord(",");
            Index = ReadHexIntParameter(reader, "Index");
            reader.FindValidateLineWord(",");
            Version = ReadHexIntParameter(reader, "Version");
            reader.FindValidateLineWord(",");
            IsArray = ReadBoolParameter(reader, "IsArray");
            reader.FindValidateLineWord(",");
            MetaFlag = unchecked ((uint)ReadHexIntParameter(reader, "MetaFlag"));
            reader.FindValidateEOL();
            reader.FindNextLine();

            int childIndent = indent + 1;
            List <TreeNodeDump> children = new List <TreeNodeDump>();

            while (reader.PeekIndend() == childIndent)
            {
                TreeNodeDump child = new TreeNodeDump();
                child.ReadTypeTreeNode(reader, childIndent);
                children.Add(child);
            }
            Children = children.ToArray();
        }
예제 #2
0
        private bool ReadAbstract(DumpReader reader)
        {
            int level = 0;

            while (reader.PeekWord() == "//")
            {
                string name = level == 0 ? ClassName : Inheritance[level - 1];
                reader.ValidateWord("//");
                reader.FindValidateWord(name);
                reader.FindValidateWord("is");
                reader.FindValidateWord("abstract");
                reader.FindValidateEOL();
                reader.FindNextLine();
                level++;
            }
            IsAbstract = level > 0;
            return(level == Inheritance.Count + 1);
        }
예제 #3
0
        private Version ReadVersion(DumpReader reader)
        {
            reader.FindValidateWord("version");
            reader.ValidateWord(":");

            string major = reader.FindReadLineWord();

            reader.ValidateWord(".");
            string minor = reader.ReadWord();

            reader.ValidateWord(".");
            string buildType     = reader.ReadWord();
            string versionString = $"{major}.{minor}.{buildType}";

            Version version = new Version();

            version.Parse(versionString);
            return(version);
        }