From: Mark Thom Date: Sat, 22 Feb 2020 04:09:59 +0000 (-0700) Subject: correct misreported error in toplevel loop (#272) X-Git-Tag: v0.8.119~75 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=545472f9c40f5e883c13bee89424e140f9f16a96;p=scryer-prolog.git correct misreported error in toplevel loop (#272) --- diff --git a/src/prolog/toplevel.pl b/src/prolog/toplevel.pl index 5de4f4b7..df128c5a 100644 --- a/src/prolog/toplevel.pl +++ b/src/prolog/toplevel.pl @@ -24,20 +24,23 @@ % make '$compile_batch', a system routine, callable. '$$compile_batch' :- '$compile_batch'. -'$instruction_match'([Item], []) :- - ( atom(Item) -> !, - ( Item == user -> - catch('$$compile_batch', E, '$print_exception_with_check'(E)) - ; consult(Item) +'$instruction_match'(Term, VarList) :- + ( var(Term) -> + throw(error(instantiation_error, repl/0)) + ; + Term = [Item] -> !, + ( atom(Item) -> + ( Item == user -> + catch('$$compile_batch', E, '$print_exception_with_check'(E)) + ; consult(Item) + ) + ; + catch(throw(error(type_error(atom, Item), repl/0)), + E, + '$print_exception_with_check'(E)) ) - ; !, - catch(throw(error(type_error(atom, Item), repl/0)), - E, - '$print_exception_with_check'(E)) + ; '$submit_query_and_print_results'(Term, VarList) ). -'$instruction_match'(Term, VarList) :- - '$submit_query_and_print_results'(Term, VarList), - !. '$submit_query_and_print_results'(Term0, VarList) :- ( expand_goals(Term0, Term) -> true @@ -244,7 +247,7 @@ user:term_expansion(Term0, (:- initialization(ExpandedGoals))) :- expand_goals(Goals, ExpandedGoals), Goals \== ExpandedGoals. -'$module_expand_goal'(UnexpandedGoals, ExpandedGoals) :- +'$module_expand_goal'(UnexpandedGoals, ExpandedGoals) :- ( '$module_of'(Module, UnexpandedGoals), '$module_exists'(Module), Module:goal_expansion(UnexpandedGoals, ExpandedGoals),