]> git.lizzy.rs Git - dragonnet.git/commitdiff
Rename messages to types
authorElias Fleckenstein <eliasfleckenstein@web.de>
Mon, 4 Oct 2021 11:53:59 +0000 (13:53 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Mon, 4 Oct 2021 11:53:59 +0000 (13:53 +0200)
gen_messages.c [deleted file]
typegen/main.c [new file with mode: 0644]

diff --git a/gen_messages.c b/gen_messages.c
deleted file mode 100644 (file)
index 17dab39..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#include <dragontype/number.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-static size_t split(char ***strs, char *s, const char *delim)
-{
-       size_t i = 0;
-       *strs = malloc((1+i) * sizeof(char *));
-
-       char *tok = strtok(s, delim);
-       while (tok != NULL) {
-               *strs = realloc(*strs, (1+i) * sizeof(char *));
-               (*strs)[i++] = tok;
-               tok = strtok(NULL, delim);
-       }
-
-       return i;
-}
-
-int main(__attribute((unused)) int argc, __attribute((unused)) char **argv)
-{
-       FILE *fp = fopen("messages.dnet", "r");
-
-       char data[1 << 16];
-       memset(data, 0, sizeof data);
-       fread(data, sizeof *data, sizeof data, fp);
-
-       fclose(fp);
-       fp = fopen("messages.h", "w");
-       fprintf(fp, "#include <dragontype/number.h>\n\n");
-
-       char **msgs;
-       size_t msgs_len = split(&msgs, data, "\n");
-
-       char *msg = NULL;
-       for (size_t i = 0; i < msgs_len; i++) {
-               if (msgs[i][0] != '\t') {
-                       if (msg != NULL)
-                               fprintf(fp, "} %s;\n", msg);
-
-                       msg = msgs[i];
-                       fprintf(fp, "typedef struct {\n");
-               } else {
-                       char **tokens;
-                       split(&tokens, msgs[i], " ");
-
-                       char type[10];
-                       if (strcmp(tokens[0], "\ts8") == 0)
-                               strcpy(type, "s8 ");
-                       else if (strcmp(tokens[0], "\ts16") == 0)
-                               strcpy(type, "s16 ");
-                       else if (strcmp(tokens[0], "\ts32") == 0)
-                               strcpy(type, "s32 ");
-                       else if (strcmp(tokens[0], "\ts64") == 0)
-                               strcpy(type, "s64 ");
-                       else if (strcmp(tokens[0], "\tu8") == 0)
-                               strcpy(type, "u8 ");
-                       else if (strcmp(tokens[0], "\tu16") == 0)
-                               strcpy(type, "u16 ");
-                       else if (strcmp(tokens[0], "\tu32") == 0)
-                               strcpy(type, "u32 ");
-                       else if (strcmp(tokens[0], "\tu64") == 0)
-                               strcpy(type, "u64 ");
-
-                       fprintf(fp, "\t%s%s;\n", type, tokens[1]);
-                       free(tokens);
-               }
-       }
-
-       fprintf(fp, "} %s;\n", msg);
-
-       free(msgs);
-       fclose(fp);
-}
diff --git a/typegen/main.c b/typegen/main.c
new file mode 100644 (file)
index 0000000..8f1302a
--- /dev/null
@@ -0,0 +1,75 @@
+#include <dragontype/number.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+static size_t split(char ***strs, char *s, const char *delim)
+{
+       size_t i = 0;
+       *strs = malloc((1+i) * sizeof(char *));
+
+       char *tok = strtok(s, delim);
+       while (tok != NULL) {
+               *strs = realloc(*strs, (1+i) * sizeof(char *));
+               (*strs)[i++] = tok;
+               tok = strtok(NULL, delim);
+       }
+
+       return i;
+}
+
+int main(__attribute((unused)) int argc, __attribute((unused)) char **argv)
+{
+       FILE *fp = fopen("types.dnet", "r");
+
+       char data[1 << 16];
+       memset(data, 0, sizeof data);
+       fread(data, sizeof *data, sizeof data, fp);
+
+       fclose(fp);
+       fp = fopen("dnet-types.h", "w");
+       fprintf(fp, "#include <dragontype/number.h>\n\n");
+
+       char **msgs;
+       size_t msgs_len = split(&msgs, data, "\n");
+
+       char *msg = NULL;
+       for (size_t i = 0; i < msgs_len; i++) {
+               if (msgs[i][0] != '\t') {
+                       if (msg != NULL)
+                               fprintf(fp, "} %s;\n", msg);
+
+                       msg = msgs[i];
+                       fprintf(fp, "typedef struct {\n");
+               } else {
+                       char **tokens;
+                       split(&tokens, msgs[i], " ");
+
+                       char type[10];
+                       if (strcmp(tokens[0], "\ts8") == 0)
+                               strcpy(type, "s8 ");
+                       else if (strcmp(tokens[0], "\ts16") == 0)
+                               strcpy(type, "s16 ");
+                       else if (strcmp(tokens[0], "\ts32") == 0)
+                               strcpy(type, "s32 ");
+                       else if (strcmp(tokens[0], "\ts64") == 0)
+                               strcpy(type, "s64 ");
+                       else if (strcmp(tokens[0], "\tu8") == 0)
+                               strcpy(type, "u8 ");
+                       else if (strcmp(tokens[0], "\tu16") == 0)
+                               strcpy(type, "u16 ");
+                       else if (strcmp(tokens[0], "\tu32") == 0)
+                               strcpy(type, "u32 ");
+                       else if (strcmp(tokens[0], "\tu64") == 0)
+                               strcpy(type, "u64 ");
+
+                       fprintf(fp, "\t%s%s;\n", type, tokens[1]);
+                       free(tokens);
+               }
+       }
+
+       fprintf(fp, "} %s;\n", msg);
+
+       free(msgs);
+       fclose(fp);
+}