1 package gedcom 2 3 // Line represents an unknown GEDCOM record 4 type Line struct { 5 line 6 Sub []Line 7 } 8 9 func parseLines(lines []line) Line { 10 l := Line{ 11 line: lines[0], 12 } 13 level := l.level + 1 14 last := 0 15 for n := range lines { 16 if lines[n].level == level { 17 if last != 0 { 18 l.Sub = append(l.Sub, parseLines(lines[last:n])) 19 } 20 last = n 21 } 22 } 23 if last != 0 { 24 l.Sub = append(l.Sub, parseLines(lines[last:])) 25 } 26 return l 27 } 28