(\+ disabled_init_file -> load_scryerrc ; true),
repl.
+args_consults_goals([], [], []).
+args_consults_goals([Arg|Args], Consults, Goals) :-
+ arg_consults_goals(Arg, Args, Consults, Goals).
+
+arg_consults_goals(c(Mod), Args, [c(Mod)|Consults], Goals) :-
+ args_consults_goals(Args, Consults, Goals).
+arg_consults_goals(g(Goal), Args, Consults, [g(Goal)|Goals]) :-
+ args_consults_goals(Args, Consults, Goals).
+
delegate_task([], []).
delegate_task([], Goals0) :-
- reverse(Goals0, Goals),
(\+ disabled_init_file -> load_scryerrc ; true),
+ reverse(Goals0, Goals1),
+ args_consults_goals(Goals1, Consults, Goals),
+ run_goals(Consults),
run_goals(Goals),
repl.
!,
delegate_task(Args, Goals0)
; atom_chars(Mod, Arg0),
- delegate_task(Args, [t(consult(Mod))|Goals0])
+ delegate_task(Args, [c(Mod)|Goals0])
).
print_help :-
arg_type(g).
arg_type(t).
+arg_type(c(_)).
arg_type(g(_)).
arg_type(t(_)).
write_term(Goal, [variable_names(VNs),double_quotes(DQ)]), nl
),
run_goals(Goals).
-run_goals([t(Goal)|Goals]) :- !,
- ( catch(user:Goal, E, print_exception(E)) ->
+run_goals([c(Mod)|Goals]) :- !,
+ ( catch(consult(Mod), E, print_exception(E)) ->
true
; write('% Warning: initialization failed for: '),
double_quotes_option(DQ),
- write_term(Goal, [double_quotes(DQ)]), nl
+ write_term(consult(Mod), [double_quotes(DQ)]), nl
),
run_goals(Goals).
run_goals([Goal|_]) :-