diff options
Diffstat (limited to 'loader.pl')
-rw-r--r-- | loader.pl | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -55,17 +55,21 @@ print_initialization_goal_error(Module, Goal, Exception) :- read_and_handle_terms(Stream, Module0, Module) :- - ( read_one_term(Stream, Term, Singles) + ( read_one_term(Stream, Term, Module0, Singles) -> handle_term(Term, Singles, Module0, Module1), read_and_handle_terms(Stream, Module1, Module) ; Module = Module0 ). -read_one_term(Stream, Term, Singles) :- +read_one_term(Stream, Term, Module0, Singles) :- consume_whitespace(Stream), peek_char(Stream, NextCh), NextCh \= end_of_file, - read_term(Stream, Term, [singletons(Singletons)]), + ( Module0 == system + -> read_term(Stream, Term, [singletons(Singletons)]) + ; Module0:read_term(Stream, Term, [singletons(Singletons)]) + % For all other modules than system use Mod:read_term, to use the correct operators + ), singleton_names(Singletons, Singles). whitespace(' '). |