From: notoria Date: Sun, 3 May 2020 17:54:17 +0000 (+0200) Subject: Completed read/1, ctrl-d is end_of_file X-Git-Tag: v0.8.123~66^2 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=75aa4ce8a04039acf4673cf9f980edc9f2f8fa9b;p=scryer-prolog.git Completed read/1, ctrl-d is end_of_file --- diff --git a/src/prolog/machine/machine_state.rs b/src/prolog/machine/machine_state.rs index 8def9185..06fc9417 100644 --- a/src/prolog/machine/machine_state.rs +++ b/src/prolog/machine/machine_state.rs @@ -1301,6 +1301,15 @@ pub(crate) trait CallPolicy: Any + fmt::Debug { let addr = machine_st[temp_v!(1)]; machine_st.unify(addr, Addr::HeapCell(offset.heap_loc)); } + Err(ParserError::UnexpectedEOF) => { + let addr = machine_st[temp_v!(1)]; + let eof = clause_name!("end_of_file".to_string(), + indices.atom_tbl); + let atom = machine_st.heap.to_unifiable( + HeapCellValue::Atom(eof, None) + ); + machine_st.unify(addr, atom); + } Err(e) => { let h = machine_st.heap.h(); let stub = MachineError::functor_stub(clause_name!("read"), 1);