]> Repositorios git - scryer-prolog.git/commitdiff
correct misreported error in toplevel loop (#272)
authorMark Thom <[email protected]>
Sat, 22 Feb 2020 04:09:59 +0000 (21:09 -0700)
committerMark Thom <[email protected]>
Sat, 22 Feb 2020 04:09:59 +0000 (21:09 -0700)
src/prolog/toplevel.pl

index 5de4f4b7ecdfb9158be5110564ccb8a171991ac6..df128c5a9de40aa4c1cdc873da15972feb2636d0 100644 (file)
 % 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),