% start_symbol
start_symbol(sentence).

% '**suppress_tree'
'**suppress_tree'.

% output_result
output_result(A) :- nl,
  numbervars(A,0,_),
%	write(A),nl.
  A=[SYN,_,REL,(F0,F1),_],
%	write(SYN),nl,
%	write(REL),nl,
%	write(F),nl.
  write_str({SYN,REL,F0-F1},0).

nest(0) :- !.
nest(N) :-
  write('|  '),
  N1 is N - 1,
  nest(N1).

write_str({SYN,REL,F},L) :-
  L2 is L+2,
  nest(L), write('+==='),nl,
  nest(L),write('| S+---'),nl,
  write_feature(SYN,L2),
  nest(L),write('|  +---'),nl,
  nest(L),write('| R+---'),nl,
  write_feature(REL,L2),
  nest(L),write('|  +---'),nl,
  nest(L),write('| F:'),
  write(F),nl,
  nest(L), write('+==='),nl.

write_feature([],_) :- !.
write_feature([{SYN,REL,F0,F1}|Z],L) :- !,
  write_str({SYN,REL,F0-F1},L),
  write_feature(Z,L).
write_feature([X|Z],L) :-
  nest(L),
  write(X),nl,
  write_feature(Z,L).
