add tests, add to README.

This commit is contained in:
Mark Thom
2017-05-26 12:27:41 -06:00
parent 4d6897509d
commit f29bd3dc0b
2 changed files with 18 additions and 2 deletions

View File

@@ -31,7 +31,14 @@ Extend rusty-wam to include the following, among other features:
* Mode declarations.
* Extensions for clp(FD).
* `if_` and related predicates, following the developments of the
paper "Indexing `dif/2`".
paper "Indexing `dif/2`".
* Strings, blobs, and other data types typical of Prolog that may not yet
know of or have left out.
## Phase 3
Use the WAM code generated by the completed code generator to target LLVM
IR to get JIT-compiled and -executed Prolog programs.
## Tutorial
To enter a multi-clause predicate, the brackets ":{" and "}:" are used

View File

@@ -615,7 +615,16 @@ mod tests {
submit(&mut wam, "f(P, X) :- call(P, X).");
assert_eq!(submit(&mut wam, "?- f(p(one), one)."), true);
assert_eq!(submit(&mut wam, "?- f(p(one), one)."), true);
assert_eq!(submit(&mut wam, "?- f(p(two), two)."), true);
assert_eq!(submit(&mut wam, "?- f(p(two), one)."), false);
assert_eq!(submit(&mut wam, "?- f(p(three), one)."), false);
assert_eq!(submit(&mut wam, "?- f(p(one), three)."), false);
assert_eq!(submit(&mut wam, "?- f(p(two), three)."), false);
submit(&mut wam, "p(f(g(X)), compound, [lists,are,good]).");
assert_eq!(submit(&mut wam, "?- call(p(f(g(X))), Y, Z)."), true);
}
}