make operators defined within a module local to the module, operators in header are still global to every module, though (UN #131).
This commit is contained in:
parent
ce5ae8b972
commit
f7214090cb
@ -94,7 +94,7 @@ module(N) :-
|
||||
Arity2 is Arity+2,
|
||||
'$process_exports'(Exports,Mod,ExportedPreds).
|
||||
'$process_exports'([op(Prio,Assoc,Name)|Exports],Mod,ExportedPreds) :- !,
|
||||
op(Prio,Assoc,Name),
|
||||
op(Prio,Assoc,prolog:Name),
|
||||
'$process_exports'(Exports,Mod,ExportedPreds).
|
||||
'$process_exports'([Trash|_],Mod,_) :-
|
||||
'$do_error'(type_error(predicate_indicator,Trash),module(Mod,[Trash])).
|
||||
|
@ -95,6 +95,10 @@ op(P,T,V) :-
|
||||
'$op2'(P, T, A),
|
||||
'$opl'(P, T, As).
|
||||
|
||||
'$op2'(P,T,A) :-
|
||||
atom(A),
|
||||
prolog_load_context(module, Mod), Mod \= user, !,
|
||||
'$opdec'(P,T,A,Mod).
|
||||
'$op2'(P,T,A) :-
|
||||
atom(A), !,
|
||||
'$opdec'(P,T,A,prolog).
|
||||
|
Reference in New Issue
Block a user