diff options
-rw-r--r-- | repl.c | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -0,0 +1,29 @@ +#include <u.h> +#include <libc.h> + +#include "dat.h" +#include "fns.h" + +void +repl(Term *database) +{ + int fd = 0; /* Standard input */ + while(1){ + print("?- "); + Term *query = parse(fd, 1); + Binding *bindings = nil; + int success = evalquery(database, query, &bindings); + if(success == 0) + print("false.\n"); + else{ + if(bindings == nil) + print("true.\n"); + else{ + while(bindings){ + print("%S = %S\n", bindings->name, prettyprint(bindings->value)); + bindings = bindings->next; + } + } + } + } +}
\ No newline at end of file |