]> Repositorios git - scryer-prolog.git/commitdiff
correct ordinary input
authorMark Thom <[email protected]>
Tue, 18 Sep 2018 02:24:58 +0000 (20:24 -0600)
committerMark Thom <[email protected]>
Tue, 18 Sep 2018 02:24:58 +0000 (20:24 -0600)
src/prolog/read.rs
src/prolog/toplevel.rs

index a0db1fdc893dd2955005c2b0b7cf8ea894fc2f91..68e09f84eae407a9c46c7a2c27a5ac076f0aee19 100644 (file)
@@ -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<Input, ParserError> {
             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))?))
+        }
     }
 }
 
index bdb7ef3a1f9570d675d072e22df4e0bbf6e6c6c9..27b0ce24fbdf3aa31fb43c480274b3490d9786eb 100644 (file)
@@ -669,13 +669,6 @@ impl RelationWorker {
     }
 }
 
-// used to parse queries. mostly.
-pub fn parse_term<R: Read>(wam: &Machine, buf: R) -> Result<Term, ParserError>
-{
-    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<RefCell<CodeDir>>, term: Term,
                     mut indices: MachineCodeIndices<'a>)