From 73ff11749ff0f7b33bcda855ddbf5382282b6dc1 Mon Sep 17 00:00:00 2001 From: bpc2003 Date: Tue, 11 Mar 2025 10:55:50 -0400 Subject: Getting started on REPL and added LICENSE --- src/main.c | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 27cbd35..0ff4291 100644 --- a/src/main.c +++ b/src/main.c @@ -1,7 +1,9 @@ #include #include +#include #include "lib/mdb.h" +#include "cmd.h" int main(int argc, char **argv) { @@ -9,26 +11,30 @@ int main(int argc, char **argv) exit(1); char *filename = argv[1]; struct keytablist *list = readdb(filename); + char *cmd = calloc(1024, sizeof(char)); - for (int i = 0; i < list[0].len; ++i) { - int *indexes = getkeys(list, i); - for (int j = 0; indexes[j]; ++j) { - printf("%s: ", list[i].tab[indexes[j]].key); - switch (list[i].tab[indexes[j]].flag) { - case 1: - printf("%.2lf\n", list[i].tab[indexes[j]].v.num); - break; - case 2: - printf("%d\n", list[i].tab[indexes[j]].v.b); - break; - case 3: - printf("%s\n", list[i].tab[indexes[j]].v.str); - break; - } - delkey(list, i, list[i].tab[indexes[j]].key); + while (fgets(cmd, 1024, stdin) != NULL) { + cmd[strlen(cmd) - 1] = '\0'; + if (!strcmp(cmd, "exit")) + break; + struct cmd evaled = eval(cmd); + switch (evaled.type) { + case GET: + printf("GET\n"); + break; + case SET: + printf("SET\n"); + break; + case DEL: + printf("DEL\n"); + break; + case ERR: + printf("ERR\n"); + break; } - free(indexes); } + + free(cmd); free(list); exit(0); } -- cgit v1.2.3