From: Elias Fleckenstein Date: Mon, 4 Oct 2021 11:53:59 +0000 (+0200) Subject: Rename messages to types X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=7c54779600341021b01ba3c86e79e2fd5de9b818;p=dragonnet.git Rename messages to types --- diff --git a/gen_messages.c b/gen_messages.c deleted file mode 100644 index 17dab39..0000000 --- a/gen_messages.c +++ /dev/null @@ -1,75 +0,0 @@ -#include -#include -#include -#include - -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 \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 index 0000000..8f1302a --- /dev/null +++ b/typegen/main.c @@ -0,0 +1,75 @@ +#include +#include +#include +#include + +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 \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); +}