]> Repositorios git - scryer-prolog.git/commitdiff
add batch processing.
authorMark Thom <[email protected]>
Tue, 30 Jan 2018 07:59:42 +0000 (00:59 -0700)
committerMark Thom <[email protected]>
Tue, 30 Jan 2018 07:59:42 +0000 (00:59 -0700)
README.md
src/main.rs
src/prolog/mod.rs
src/prolog/parser

index a7cc1599e59c608979b7b7f753880bad851e82dd..84030de3a76a15ee190ad48c1a7334309409c12b 100644 (file)
--- 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`
index 178a376b7f7257f3ae728b091630d5b1d4bbc603..0e71c49ca3d6f5c408bf19b372c45de308d5a425 100644 (file)
@@ -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> ");
index 0eaa1d9c05ce06ad9ea87cc986d3f647e66f8766..3f30c84c01aae68fe382d40670cda613ae94300e 100644 (file)
@@ -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;
index 64866ff3ef1982d996a56e1330c4c2ac3ecd9d41..2579afe5fd8a843398e55fa458fbf83a819d7055 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 64866ff3ef1982d996a56e1330c4c2ac3ecd9d41
+Subproject commit 2579afe5fd8a843398e55fa458fbf83a819d7055