ref: 24cdc7adf5611d536403ae625414bb10f3bc4f93
dir: /main.c/
#include <u.h>
#include <libc.h>
#include <bio.h>
#include "dat.h"
#include "fns.h"
void usage(void);
void repl(int, char **);
void
main(int argc, char *argv[])
{
clausenr = 2; /* Start at two since 0 is for the facts in the database, and 1 is for queries */
initflags();
initstreams();
initmodules();
repl(argc, argv);
exits(nil);
}
void
usage(void)
{
fprint(2, "Usage: pprolog [-d] modulefiles\n");
exits("Usage");
}
void
repl(int argc, char *argv[])
{
Term *args = nil;
while(argc > 0){
Term *arg = mkatom(runesmprint("%s", argv[argc-1]));
args = appendterm(arg, args);
argc--;
}
args = mklist(args);
Term *mod = mkatom(L"repl");
Term *pred = mkcompound(L"repl", 1, args);
mod->next = pred;
Term *goal = mkcompound(L":", 2, mod);
evalquery(goal);
}