File: listsour.ll

package info (click to toggle)
lifelines 3.0.50-2
  • links: PTS
  • area: main
  • in suites: etch-m68k
  • size: 11,140 kB
  • ctags: 6,517
  • sloc: ansic: 57,468; xml: 8,014; sh: 4,255; makefile: 848; yacc: 601; perl: 170; sed: 16
file content (47 lines) | stat: -rw-r--r-- 820 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * @progname       listsour.ll
 * @version        2
 * @author         Hannu Väisänen
 * @category       
 * @output         Text
 * @description

   List source records.

   Written by Hannu Väisänen, 1 May 1997.
*/

global(sour)

proc main()
{
  table(sour)

  forindi (person, m) {
    print ("i")
    call print (person)
  }
  forfam (family, m) {
    print ("f")
    call print (family)
  }
}

proc print (p)
{
  traverse (root(p), node, i) {
    if (eqstr(tag(node), "SOUR")) {
      if (reference(value(node))) {
        if (not(lookup(sour, value(node)))) {
          insert (sour, save(value(node)), 1)
          set (n, dereference(value(node)))
          value(node) "\n"
          fornodes (n, m) {
            tag(m) " " value(m) "\n"
          }
          "\n"
        }
      }
    }
  }
}