From 75aa4ce8a04039acf4673cf9f980edc9f2f8fa9b Mon Sep 17 00:00:00 2001 From: notoria Date: Sun, 3 May 2020 19:54:17 +0200 Subject: [PATCH] Completed read/1, ctrl-d is end_of_file --- src/prolog/machine/machine_state.rs | 9 +++++++++ 1 file changed, 9 insertions(+) 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); -- 2.54.0