From 2628e27595e665afa4aab8f23ab466af18d8ace5 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Tue, 30 Jan 2018 00:59:42 -0700 Subject: [PATCH] add batch processing. --- README.md | 8 ++++++++ src/main.rs | 15 +++++++++++---- src/prolog/mod.rs | 1 + src/prolog/parser | 2 +- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a7cc1599..84030de3 100644 --- a/README.md +++ b/README.md @@ -82,8 +82,10 @@ The following predicates are built-in to rusty-wam. * `(=..)/2` * `(->)/2` * `(;)/2` +* `append/3` * `arg/3` * `atomic/1` +* `between/3` * `call/1..63` * `catch/3` * `display/1` @@ -92,6 +94,12 @@ The following predicates are built-in to rusty-wam. * `functor/3` * `integer/1` * `length/2` +* `maplist/1..8` +* `member/2` +* `memberchk/2` +* `once/1` +* `reverse/2` +* `select/3` * `throw/1` * `true/0` * `var/1` diff --git a/src/main.rs b/src/main.rs index 178a376b..0e71c49c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,12 +5,9 @@ mod prolog; #[macro_use] mod test_utils; use prolog::io::*; +use prolog::lib::lists::*; use prolog::machine::*; -use std::fs::File; -use std::io::prelude::*; -use std::path::Path; - #[cfg(test)] mod tests; @@ -25,8 +22,18 @@ fn process_buffer(wam: &mut Machine, buffer: &str) }; } +fn load_init_str(wam: &mut Machine, src_str: &str) +{ + match parse_batch(wam, src_str) { + Ok(tls) => compile_batch(wam, &tls), + Err(_) => panic!("failed to parse batch from string.") + }; +} + fn prolog_repl() { let mut wam = Machine::new(); + + load_init_str(&mut wam, LISTS); loop { print!("prolog> "); diff --git a/src/prolog/mod.rs b/src/prolog/mod.rs index 0eaa1d9c..3f30c84c 100644 --- a/src/prolog/mod.rs +++ b/src/prolog/mod.rs @@ -18,6 +18,7 @@ pub mod heap_print; pub mod indexing; pub mod io; pub mod iterators; +pub mod lib; pub mod machine; pub mod or_stack; pub mod parser; diff --git a/src/prolog/parser b/src/prolog/parser index 64866ff3..2579afe5 160000 --- a/src/prolog/parser +++ b/src/prolog/parser @@ -1 +1 @@ -Subproject commit 64866ff3ef1982d996a56e1330c4c2ac3ecd9d41 +Subproject commit 2579afe5fd8a843398e55fa458fbf83a819d7055 -- 2.54.0