public COMDEFRecord(RecordReader reader, RecordContext context) : base(reader, context) { int startIndex = context.ExternalNames.Count; while (!reader.IsEOF) { CommunalNameDefinition def = new CommunalNameDefinition(); def.DefinedBy = reader.RecordNumber; def.Name = reader.ReadPrefixedString(); def.TypeIndex = reader.ReadIndex(); def.DataType = reader.ReadByte(); def.ElementCount = ReadEncodedInteger(reader); if (def.DataType == 0x61) // FAR data: count, elemsize { def.ElementSize = ReadEncodedInteger(reader); } else { def.ElementSize = 1; } context.ExternalNames.Add(def); } int endIndex = context.ExternalNames.Count; this.Definitions = context.ExternalNames.Slice( startIndex, endIndex - startIndex); }
public ALIASRecord(RecordReader reader, RecordContext context) : base(reader, context) { int startIndex = context.Aliases.Count; while (!reader.IsEOF) { AliasDefinition def = new AliasDefinition(); def.AliasName = reader.ReadPrefixedString(); def.SubstituteName = reader.ReadPrefixedString(); context.Aliases.Add(def); } int endIndex = context.Aliases.Count; this.Definitions = context.Aliases.Slice(startIndex, endIndex - startIndex); }
internal ListOfNamesRecord(RecordReader reader, RecordContext context) : base(reader, context) { List <string> names = new List <string>(); while (!reader.IsEOF) { names.Add(reader.ReadPrefixedString()); } this.Names = names.ToArray(); context.Names.AddRange(Names); }
public PUBDEFRecord(RecordReader reader, RecordContext context) : base(reader, context) { int baseGroupIndex = reader.ReadIndex(); if (baseGroupIndex > context.Groups.Count) { throw new InvalidDataException("GroupIndex is out of range."); } if (baseGroupIndex > 0) { this.BaseGroup = context.Groups[baseGroupIndex - 1]; } int baseSegmentIndex = reader.ReadIndex(); if (baseSegmentIndex > context.Segments.Count) { throw new InvalidDataException("SegmentIndex is out of range."); } if (baseSegmentIndex == 0) { this.BaseFrame = reader.ReadUInt16(); } else { this.BaseSegment = context.Segments[baseSegmentIndex - 1]; } int startIndex = context.PublicNames.Count; while (!reader.IsEOF) { PublicNameDefinition def = new PublicNameDefinition(); def.DefinedBy = reader.RecordNumber; def.BaseGroup = BaseGroup; def.BaseSegment = BaseSegment; def.BaseFrame = BaseFrame; def.Name = reader.ReadPrefixedString(); def.Offset = (int)reader.ReadUInt16Or32(); def.TypeIndex = reader.ReadIndex(); context.PublicNames.Add(def); } int endIndex = context.PublicNames.Count; this.Definitions = context.PublicNames.Slice( startIndex, endIndex - startIndex); }
public EXTDEFRecord(RecordReader reader, RecordContext context) : base(reader, context) { int startIndex = context.ExternalNames.Count; while (!reader.IsEOF) { ExternalNameDefinition def = new ExternalNameDefinition(); def.Name = reader.ReadPrefixedString(); def.TypeIndex = reader.ReadIndex(); def.DefinedBy = reader.RecordNumber; context.ExternalNames.Add(def); } int endIndex = context.ExternalNames.Count; this.Definitions = context.ExternalNames.Slice( startIndex, endIndex - startIndex); }
public LIBMODComment(RecordReader reader, RecordContext context) { this.ModuleName = reader.ReadPrefixedString(); context.ObjectName = ModuleName; }
public THEADRRecord(RecordReader reader, RecordContext context) : base(reader, context) { this.Name = reader.ReadPrefixedString(); context.SourceName = Name; }
public PUBDEFRecord(RecordReader reader, RecordContext context) : base(reader, context) { int baseGroupIndex = reader.ReadIndex(); if (baseGroupIndex > context.Groups.Count) throw new InvalidDataException("GroupIndex is out of range."); if (baseGroupIndex > 0) this.BaseGroup = context.Groups[baseGroupIndex - 1]; int baseSegmentIndex = reader.ReadIndex(); if (baseSegmentIndex > context.Segments.Count) throw new InvalidDataException("SegmentIndex is out of range."); if (baseSegmentIndex == 0) this.BaseFrame = reader.ReadUInt16(); else this.BaseSegment = context.Segments[baseSegmentIndex - 1]; int startIndex = context.PublicNames.Count; while (!reader.IsEOF) { PublicNameDefinition def = new PublicNameDefinition(); def.DefinedBy = reader.RecordNumber; def.BaseGroup = BaseGroup; def.BaseSegment = BaseSegment; def.BaseFrame = BaseFrame; def.Name = reader.ReadPrefixedString(); def.Offset = (int)reader.ReadUInt16Or32(); def.TypeIndex = reader.ReadIndex(); context.PublicNames.Add(def); } int endIndex = context.PublicNames.Count; this.Definitions = context.PublicNames.Slice( startIndex, endIndex - startIndex); }
public LHEADRRecord(RecordReader reader, RecordContext context) : base(reader, context) { this.Name = reader.ReadPrefixedString(); }
public EXTDEFRecord(RecordReader reader, RecordContext context) : base(reader, context) { int startIndex = context.ExternalNames.Count; while (!reader.IsEOF) { ExternalNameDefinition def = new ExternalNameDefinition(); def.Name = reader.ReadPrefixedString(); def.TypeIndex = reader.ReadIndex(); def.DefinedBy = reader.RecordNumber; context.ExternalNames.Add(def); } int endIndex = context.ExternalNames.Count; this.Definitions = context.ExternalNames.Slice( startIndex, endIndex - startIndex); }
public COMDEFRecord(RecordReader reader, RecordContext context) : base(reader, context) { int startIndex = context.ExternalNames.Count; while (!reader.IsEOF) { CommunalNameDefinition def = new CommunalNameDefinition(); def.DefinedBy = reader.RecordNumber; def.Name = reader.ReadPrefixedString(); def.TypeIndex = reader.ReadIndex(); def.DataType = reader.ReadByte(); def.ElementCount = ReadEncodedInteger(reader); if (def.DataType == 0x61) // FAR data: count, elemsize def.ElementSize = ReadEncodedInteger(reader); else def.ElementSize = 1; context.ExternalNames.Add(def); } int endIndex = context.ExternalNames.Count; this.Definitions = context.ExternalNames.Slice( startIndex, endIndex - startIndex); }
public ALIASRecord(RecordReader reader, RecordContext context) : base(reader, context) { int startIndex = context.Aliases.Count; while (!reader.IsEOF) { AliasDefinition def = new AliasDefinition(); def.AliasName = reader.ReadPrefixedString(); def.SubstituteName = reader.ReadPrefixedString(); context.Aliases.Add(def); } int endIndex = context.Aliases.Count; this.Definitions = context.Aliases.Slice(startIndex, endIndex - startIndex); }
internal ListOfNamesRecord(RecordReader reader, RecordContext context) : base(reader, context) { List<string> names = new List<string>(); while (!reader.IsEOF) { names.Add(reader.ReadPrefixedString()); } this.Names = names.ToArray(); context.Names.AddRange(Names); }
public LIBMODComment(RecordReader reader, RecordContext context) { this.ModuleName = reader.ReadPrefixedString(); context.ObjectName = ModuleName; }
public LHEADRRecord(RecordReader reader, RecordContext context) : base(reader, context) { this.Name = reader.ReadPrefixedString(); }
public THEADRRecord(RecordReader reader, RecordContext context) : base(reader, context) { this.Name = reader.ReadPrefixedString(); context.SourceName = Name; }