summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--loader.pl17
-rw-r--r--main.c4
2 files changed, 12 insertions, 9 deletions
diff --git a/loader.pl b/loader.pl
index 3ba1c05..7fa6734 100644
--- a/loader.pl
+++ b/loader.pl
@@ -1,19 +1,22 @@
:- module(loader, []).
+start(Args) :-
+ catch((load_module_from_file('/sys/lib/prolog/repl.pl'), ReplLoaded = true), E, (print_exception(E), ReplLoaded = false)),
+ ( ReplLoaded = true-> repl:repl(Args) ).
+
+print_exception(E) :-
+ write('Caught exception while loading /sys/lib/prolog/repl.pl: '),
+ write(E),
+ nl.
+
load_module_from_file(File) :-
- write('Loading file: '),
- write(File),
- nl,
( atom_concat(_, '.pl', File)
-> open(File, read, Stream)
; atom_concat(File, '.pl', File1),
open(File1, read, Stream)
),
read_and_handle_terms(Stream, user, _),
- close(Stream),
- write('Loaded file: '),
- write(File),
- nl.
+ close(Stream).
read_and_handle_terms(Stream, Module0, Module) :-
( read_one_term(Stream, Term)
diff --git a/main.c b/main.c
index f83fe89..826ff45 100644
--- a/main.c
+++ b/main.c
@@ -37,8 +37,8 @@ repl(int argc, char *argv[])
argc--;
}
args = mklist(args);
- Term *mod = mkatom(L"repl");
- Term *pred = mkcompound(L"repl", 1, args);
+ Term *mod = mkatom(L"loader");
+ Term *pred = mkcompound(L"start", 1, args);
mod->next = pred;
Term *goal = mkcompound(L":", 2, mod);