/*-------------------------------------------------------------------------*/
/* Prolog to Wam Compiler               INRIA Rocquencourt - ChLoE Project */
/* Buit-In Predicates                                   Daniel Diaz - 1994 */
/*                                                                         */
/* operator predicates                                                     */
/*                                                                         */
/* oper.pl                                                                 */
/*-------------------------------------------------------------------------*/

:- public op/3.

op(Prec,Assoc,Oper):-
        atom(Oper),
	!,
	op2(Oper,Prec,Assoc).

op(Prec,Assoc,LOper):-
	op1(LOper,Prec,Assoc).


op1([],_,_).

op1([Oper|LOper],Prec,Assoc):-
	op2(Oper,Prec,Assoc),
	op1(LOper,Prec,Assoc).


op2(_X,_Prec,_Assoc):-
	pragma_c('Op2_3').




:-	op(1200, xfx,[(:-)]),
	op(1200,  fx,[(:-)]),
	op(1150,  fx,[(public),(dynamic)]),
	op(1100, xfy,[';']),
	op(1050, xfy,['->']),
	op(1000, xfy,[',']),
	op( 900,  fy,[(\+),(spy),(nospy)]),
	op( 700, xfx,[(=),(is),(=..),
                      (==),(\==),(@<),(@>),(@=<),(@>=),
                      (=:=),(=\=),(<),(=<),(>),(>=)]),
	op( 500, yfx,[(+),(-),(/\),(\/)]),
	op( 500,  fx,[(+),(-)]),
	op( 400, yfx,[(*),(/),(//),(<<),(>>)]),
	op( 300, xfx,[(mod)]),
	op( 200, xfy,[(^)]),
	fail ; true.                     % gc 



syntax highlighted by Code2HTML, v. 0.9.1