scryer-prolog icon indicating copy to clipboard operation
scryer-prolog copied to clipboard

Top-level and operator parenthesis

Open notoria opened this issue 4 years ago • 1 comments

The following happens:

?- current_op(A, B, C).
   A = 400, B = yfx, C = (*)
;  A = 200, B = xfy, C = ** 
;  A = 500, B = yfx, C = (+)
;  A = 200, B = fy, C = (+)
;  A = 1000, B = xfy, C = (',')
;  A = 500, B = yfx, C = (-)
;  A = 200, B = fy, C = (-)
;  A = 1200, B = xfx, C = (-->)
;  A = 1050, B = xfy, C = (->)
;  A = 400, B = yfx, C = (/)
;  A = 400, B = yfx, C = // 
;  A = 500, B = yfx, C = /\ 
;  A = 600, B = xfy, C = (:)
;  A = 1200, B = xfx, C = (:-)
;  A = 1200, B = fx, C = (:-)
;  A = 1100, B = xfy, C = (;)
;  A = 700, B = xfx, C = (<)
;  A = 400, B = yfx, C = << 
;  A = 700, B = xfx, C = (=)
;  A = 700, B = xfx, C = (=..)
;  A = 700, B = xfx, C = (=:=)
;  A = 700, B = xfx, C = (=<)
;  A = 700, B = xfx, C = (==)
;  A = 700, B = xfx, C = (=\=)
;  A = 700, B = xfx, C = (>)
;  A = 700, B = xfx, C = (>=)
;  A = 400, B = yfx, C = >> 
;  A = 1200, B = fx, C = (?-)
;  A = 700, B = xfx, C = (@<)
;  A = 700, B = xfx, C = (@=<)
;  A = 700, B = xfx, C = (@>)
;  A = 700, B = xfx, C = (@>=)
;  A = 200, B = fy, C = (\)
;  A = 900, B = fy, C = (\+)
;  A = 500, B = yfx, C = \/ 
;  A = 700, B = xfx, C = (\=)
;  A = 700, B = xfx, C = (\==)
;  A = 200, B = xfy, C = (^)
;  A = 400, B = yfx, C = div
;  A = 700, B = xfx, C = (is)
;  A = 400, B = yfx, C = mod
;  A = 700, B = fx, C = (non_counted_backtracking)
;  A = 400, B = yfx, C = rdiv
;  A = 400, B = yfx, C = rem
;  A = 500, B = yfx, C = xor
;  false.
?- A = 500, B = yfx, C = (xor).
   A = 500, B = yfx, C = xor.
?- A = 500, B = yfx, C = xor.
caught: error(syntax_error(incomplete_reduction),read_term/3:1)
?- 

Some operators don't have parenthesis. Related to #599.

notoria avatar Feb 06 '21 18:02 notoria

Just realizing: `**` is `xfx` and not `xfy` fixed

UWN avatar Mar 13 '21 10:03 UWN