Files
scryer-prolog/src/prolog/toplevel.pl
2019-04-13 18:40:17 -06:00

20 lines
514 B
Prolog

repl :-
catch(read_and_match, E, '$print_exception'(E)),
false. %% this is for GC, until we get actual GC.
repl :- repl.
read_and_match :-
read_term(Term, [variable_names(VarList)]),
'$instruction_match'(Term, VarList).
'$instruction_match'([user], []) :-
!, '$compile_batch'.
'$instruction_match'(Term, VarList) :-
'$submit_query_and_print_results'(Term, VarList),
!.
'$print_exception'(E) :-
write_term('error: exception thrown: ', [quoted(false)]),
writeq(E),
nl.