use round brackets for goals involving operators
Examples:
?- portray_clause(((+) :- a=b,(-))).
(+) :-
a=b,
(-).
true.
?- portray_clause((a :- (b :- c))).
a :-
(b:-c).
true.
This addresses #2715.
Currently, more round brackets than needed are emitted. Ideally, a
better approach to solve the issue here and also in toplevel.pl is
found in the future.
This commit is contained in:
@@ -593,7 +593,15 @@ portray_clause_(Term) -->
|
||||
|
||||
literal(Lit, VNs) -->
|
||||
{ write_term_to_chars(Lit, [quoted(true),variable_names(VNs),double_quotes(true)], Ls) },
|
||||
seq(Ls).
|
||||
( { nonvar(Lit),
|
||||
functor(Lit, F, A),
|
||||
current_op(Pri, _, F),
|
||||
( A =:= 0
|
||||
; Pri >= 1000
|
||||
) } ->
|
||||
"(", seq(Ls), ")"
|
||||
; seq(Ls)
|
||||
).
|
||||
|
||||
literal_(Lit, VNs) -->
|
||||
{ phrase(literal(Lit, VNs), Ls) },
|
||||
|
||||
Reference in New Issue
Block a user