summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorbpc2003 <wpesfriendnva@gmail.com>2025-03-11 10:55:50 -0400
committerbpc2003 <wpesfriendnva@gmail.com>2025-03-11 10:55:50 -0400
commit73ff11749ff0f7b33bcda855ddbf5382282b6dc1 (patch)
treed4c7cecad5dc1797fc008ce36dec73c4fd869a09 /src/main.c
parente884bd4e4a6e857abbbc531bd581bf1b27151699 (diff)
Getting started on REPL and added LICENSE
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c40
1 files changed, 23 insertions, 17 deletions
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 <stdio.h>
#include <stdlib.h>
+#include <string.h>
#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);
}