public LineEntry(TargetAddress address, int file, int line, bool is_hidden, SourceRange? source_range) { this.Address = address;; this.File = file; this.Line = line; this.IsHidden = is_hidden; this.SourceRange = source_range; }
void generate_line_number(List<LineEntry> lines, TargetAddress address, int offset, ref int last_line) { C.LineNumberTable lnt = entry.GetLineNumberTable (); C.LineNumberEntry[] line_numbers = lnt.LineNumbers; for (int i = line_numbers.Length - 1; i >= 0; i--) { C.LineNumberEntry lne = line_numbers [i]; if (lne.Offset > offset) continue; if (lne.Row != last_line) { int file = lne.File != entry.CompileUnit.SourceFile.Index ? lne.File : 0; bool hidden = lne.IsHidden; SourceRange? range = null; if (lne.SourceRange != null) range = new SourceRange (lne.SourceRange.StartLine, lne.SourceRange.EndLine, lne.SourceRange.StartColumn, lne.SourceRange.EndColumn); lines.Add (new LineEntry (address, file, lne.Row, hidden, range)); last_line = lne.Row; } break; } }
public SourceAddress(SourceFile file, SourceBuffer buffer, int row, int line_offset, int line_range, SourceRange? source_range) : this(file, buffer, row, line_offset, line_range) { this.source_range = source_range; }