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(); }
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); }
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); }