5
7
8prettyprint(Tree) :-
9 pretty(Tree, 0),
10 !.
11
12pretty(node(Name, Kids, ID), Tab) :-
13 T is Tab*4,
14 tab(T),
15 writel2([Name, ' (#', ID, ',d ', Tab,')', nl]),
16 Tab2 is Tab + 1,
17 prettykids(Kids, Tab2),
18 !.
19pretty(Value, Tab) :-
20 T is Tab*4,
21 tab(T),
22 writel([Value, nl]),
23 !.
24
25prettykids([], _) :- !.
26prettykids([Node|Rest], Tab) :-
27 pretty(Node, Tab),
28 prettykids(Rest, Tab),
29 !.
30
32
33tree_depth(node(_, Kids, _), D) :-
34 tree_depth_kids(Kids, D2),
35 D is D2 + 1,
36 !.
37tree_depth(_, 1) :- !.
38
39tree_depth_kids([], 0) :- !.
40tree_depth_kids([Node|Rest], D) :-
41 tree_depth(Node, D2),
42 tree_depth_kids(Rest, D3),
43 D is max(D2, D3),
44 !.
45
47
48listprint(Tree) :-
49 user_args_P(UserArgs),
50 verification(Tree, UserArgs, List),
51 writel2(List),
52 nl,
53 !