scryer-prolog
scryer-prolog copied to clipboard
Top-level and operator parenthesis
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.