add error messages on failed batch entry

This commit is contained in:
Mark Thom
2018-03-07 17:19:28 -07:00
parent beeb246632
commit ab182b6e3b
2 changed files with 14 additions and 12 deletions

View File

@@ -29,7 +29,7 @@ Extend rusty-wam to include the following, among other features:
* Built-in predicates for list processing and top-level declarative * Built-in predicates for list processing and top-level declarative
control (`setup_call_control/3`, `call_with_inference_limit/3`, control (`setup_call_control/3`, `call_with_inference_limit/3`,
etc.) (_done_). etc.) (_done_).
* A rudimentary module system (_in progress_). * A rudimentary module system (_done_).
* Attributed variables using the SICStus Prolog interface and * Attributed variables using the SICStus Prolog interface and
semantics. Adding coroutines like `dif/2`, `freeze/2`, etc. semantics. Adding coroutines like `dif/2`, `freeze/2`, etc.
is straightforward with attributed variables. is straightforward with attributed variables.
@@ -88,9 +88,9 @@ $> cd rusty-wam
$> cargo build $> cargo build
``` ```
cargo will download and install the libraries rusty-wam uses automatically. cargo will download and install the libraries rusty-wam uses
rusty-wam can be run with the command `cargo run`, and likewise tests can be automatically. rusty-wam can be run with the command `cargo run`, and
run with `cargo test`. likewise tests can be run with `cargo test`.
Note on compatibility: rusty-wam should work on Linux, Mac OS X, and Note on compatibility: rusty-wam should work on Linux, Mac OS X, and
FreeBSD. Windows support hinges on the Termion library working in FreeBSD. Windows support hinges on the Termion library working in
@@ -239,10 +239,10 @@ New operators can be defined using the `op` declaration.
### Modules ### Modules
rusty-wam has seemingly correct but presently untested support for a rusty-wam supports for a simple predicate-based module system. It
simple predicate-based module system. It provides a way to separate provides a way to separate units of code into distinct namespaces, for
units of code into distinct namespaces, for both predicates and both predicates and operators. See the files `src/prolog/lib/*.pl` for
operators. See the files `src/prolog/lib/*.pl` for examples. examples.
At the time of this writing, several control and list processing At the time of this writing, several control and list processing
operators and predicates are hidden in their own modules that have not operators and predicates are hidden in their own modules that have not

View File

@@ -45,9 +45,11 @@ fn prolog_repl() {
match read() { match read() {
Input::Line(line) => parse_and_compile_line(&mut wam, line.as_str()), Input::Line(line) => parse_and_compile_line(&mut wam, line.as_str()),
Input::Batch(batch) => { Input::Batch(batch) =>
compile_listing(&mut wam, batch.as_str()); match compile_listing(&mut wam, batch.as_str()) {
}, EvalSession::Error(e) => println!("{}", e),
_ => {}
},
Input::Quit => break, Input::Quit => break,
Input::Clear => { Input::Clear => {
wam.clear(); wam.clear();