-
Notifications
You must be signed in to change notification settings - Fork 5
/
genealogy.iuml
48 lines (41 loc) · 1.24 KB
/
genealogy.iuml
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
48
!function getuid($id)
!return "u" + $id
!endfunction
!function getbid($id)
!return "b" + $id
!endfunction
!unquoted procedure person($id, $name)
%set_variable_value(getuid($id), $name)
!endprocedure
!function getname($id)
!local $name = '"' + %get_variable_value(getuid($id))
!return $name + '"'
!endfunction
!unquoted procedure single($uid)
rectangle getname($uid) as getuid($uid)
!endprocedure
!unquoted procedure pair($id, $uid1, $uid2, $union1_style="-left-", , $union2_style="-right-")
together {
single($uid1)
interface " " as getbid($id)
single($uid2)
getuid($uid1) $union1_style getbid($id)
getuid($uid2) $union2_style getbid($id)
}
!endprocedure
!unquoted procedure doublepair($id1, $id2, $uid3, $uid2, $uid1, $union1_style="-right-", $union2_style="-left-", $union3_style="-left-", $union4_style="-right-")
together {
single($uid1)
interface " " as getbid($id1)
single($uid2)
interface " " as getbid($id2)
single($uid3)
getuid($uid1) $union1_style getbid($id1)
getuid($uid2) $union2_style getbid($id1)
getuid($uid3) $union3_style getbid($id2)
getuid($uid2) $union4_style getbid($id2)
}
!endprocedure
!unquoted procedure child($bid, $uid, $union_style="-down-")
getbid($bid) $union_style getuid($uid)
!endprocedure