From: Mark Thom Date: Tue, 18 Sep 2018 02:24:58 +0000 (-0600) Subject: correct ordinary input X-Git-Tag: v0.8.110~373 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=43ba8f23dc8633d2894bd61a43a2a3cb6ee65f3a;p=scryer-prolog.git correct ordinary input --- diff --git a/src/prolog/read.rs b/src/prolog/read.rs index a0db1fdc..68e09f84 100644 --- a/src/prolog/read.rs +++ b/src/prolog/read.rs @@ -5,7 +5,6 @@ use prolog::instructions::*; use prolog::iterators::*; use prolog::machine::*; use prolog::machine::machine_state::MachineState; -use prolog::toplevel::*; use std::collections::VecDeque; use std::io::{Read, stdin}; @@ -43,7 +42,12 @@ pub fn read_toplevel(wam: &Machine) -> Result { println!("(type Enter + Ctrl-D to terminate the stream when finished)"); Ok(Input::Batch) }, - _ => Ok(Input::Term(parse_term(wam, buffer.as_bytes())?)) + _ => { + let mut parser = Parser::new(stdin.lock(), wam.atom_tbl(), wam.machine_flags()); + parser.add_to_top(buffer.as_str()); + + Ok(Input::Term(parser.read_term(composite_op!(&wam.op_dir))?)) + } } } diff --git a/src/prolog/toplevel.rs b/src/prolog/toplevel.rs index bdb7ef3a..27b0ce24 100644 --- a/src/prolog/toplevel.rs +++ b/src/prolog/toplevel.rs @@ -669,13 +669,6 @@ impl RelationWorker { } } -// used to parse queries. mostly. -pub fn parse_term(wam: &Machine, buf: R) -> Result -{ - let mut parser = Parser::new(buf, wam.atom_tbl(), wam.machine_flags()); - parser.read_term(composite_op!(&wam.op_dir)) -} - pub fn consume_term<'a>(static_code_dir: Rc>, term: Term, mut indices: MachineCodeIndices<'a>)