1:- module(scasp_ops,
2 [ op(700, xfx, [#= , #<>, #< , #> , #=<, #>= ]),
3 op(950, xfx, ::),
4 op(700, xfx, '| '),
5 op(700, xfx, [~>, <~]),
6 op(900, fy, not),
7 op(700, xfx, '\u2209'),
8
9 scasp_push_operators/0,
10 scasp_push_operators/1, 11 scasp_pop_operators/0
12 ]). 13:- use_module(library(apply)). 14:- use_module(library(operators)). 15
16scasp_push_operators :-
17 prolog_load_context(module, Context),
18 scasp_push_operators(Context).
19
20scasp_push_operators(Context) :-
21 findall(op(Pri, Ass, Op), scasp_op(Pri, Ass, Op), Ops),
22 push_operators(Context:Ops).
23
24scasp_pop_operators :-
25 pop_operators.
26
27term_expansion(scasp_op(Pri, Ass, List), Ops) :-
28 maplist(mkop(Pri, Ass), List, Ops).
29
30mkop(Pri, Ass, Op, scasp_op(Pri, Ass, Op)).
31
32scasp_op(700, xfx, [#= , #<>, #< , #> , #=<, #>= ]).
33scasp_op(950, xfx, [::]).
34scasp_op(700, xfx, ['| ']).
35scasp_op(700, xfx, [~>, <~]).
36scasp_op(900, fy, [not]).
37scasp_op(700, xfx, ['\u2209']).
38
40scasp_op(1200, fx, #).
41scasp_op(350, fx, [include, compute, abducible]).
42scasp_op(1150, fx, [table, show, pred])