From bb192eedbe97da1e76cc6f9e6d1b1e54156f40d0 Mon Sep 17 00:00:00 2001 From: HimbeerserverDE Date: Mon, 4 Oct 2021 18:47:43 +0200 Subject: [PATCH] Add more serialization data types --- typegen/main.c | 70 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 52 insertions(+), 18 deletions(-) diff --git a/typegen/main.c b/typegen/main.c index 8f1302a..37b9fbd 100644 --- a/typegen/main.c +++ b/typegen/main.c @@ -45,25 +45,59 @@ int main(__attribute((unused)) int argc, __attribute((unused)) char **argv) 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 "); + char type[15]; + if ( // Numeric types + strcmp(&tokens[0][1], "u8") == 0 || strcmp(&tokens[0][1], "s8") + || strcmp(&tokens[0][1], "u16") || strcmp(&tokens[0][1], "s16") + || strcmp(&tokens[0][1], "u32") || strcmp(&tokens[0][1], "s32") + || strcmp(&tokens[0][1], "u64") || strcmp(&tokens[0][1], "s64") + || strcmp(&tokens[0][1], "f32") || strcmp(&tokens[0][1], "f64") + // Vectors (2 elements) + || strcmp(&tokens[0][1], "v2u8") || strcmp(&tokens[0][1], "v2s8") + || strcmp(&tokens[0][1], "v2u16") || strcmp(&tokens[0][1], "v2s16") + || strcmp(&tokens[0][1], "v2u32") || strcmp(&tokens[0][1], "v2s32") + || strcmp(&tokens[0][1], "v2u64") || strcmp(&tokens[0][1], "v2s64") + || strcmp(&tokens[0][1], "v2f32") || strcmp(&tokens[0][1], "v2f32") + || strcmp(&tokens[0][1], "v2f64") || strcmp(&tokens[0][1], "v2f64") + // Vectors (3 elements) + || strcmp(&tokens[0][1], "v3u8") || strcmp(&tokens[0][1], "v3s8") + || strcmp(&tokens[0][1], "v3u16") || strcmp(&tokens[0][1], "v3s16") + || strcmp(&tokens[0][1], "v3u32") || strcmp(&tokens[0][1], "v3s32") + || strcmp(&tokens[0][1], "v3u64") || strcmp(&tokens[0][1], "v3s64") + || strcmp(&tokens[0][1], "v3f32") || strcmp(&tokens[0][1], "v3f64") + // Vectors (4 elements) + || strcmp(&tokens[0][1], "v4u8") || strcmp(&tokens[0][1], "v4s8") + || strcmp(&tokens[0][1], "v4u16") || strcmp(&tokens[0][1], "v4s16") + || strcmp(&tokens[0][1], "v4u32") || strcmp(&tokens[0][1], "v4s32") + || strcmp(&tokens[0][1], "v4u64") || strcmp(&tokens[0][1], "v4s64") + || strcmp(&tokens[0][1], "v4f32") || strcmp(&tokens[0][1], "v4f64") + // AABB2 + || strcmp(&tokens[0][1], "aabb2u8") || strcmp(&tokens[0][1], "aabb2s8") + || strcmp(&tokens[0][1], "aabb2u16") || strcmp(&tokens[0][1], "aabb2s16") + || strcmp(&tokens[0][1], "aabb2u32") || strcmp(&tokens[0][1], "aabb2s32") + || strcmp(&tokens[0][1], "aabb2u64") || strcmp(&tokens[0][1], "aabb2s64") + || strcmp(&tokens[0][1], "aabb2f32") || strcmp(&tokens[0][1], "aabb2f64") + // AABB3 + || strcmp(&tokens[0][1], "aabb3u8") || strcmp(&tokens[0][1], "aabb3s8") + || strcmp(&tokens[0][1], "aabb3u16") || strcmp(&tokens[0][1], "aabb3s16") + || strcmp(&tokens[0][1], "aabb3u32") || strcmp(&tokens[0][1], "aabb3s32") + || strcmp(&tokens[0][1], "aabb3u64") || strcmp(&tokens[0][1], "aabb3s64") + || strcmp(&tokens[0][1], "aabb3f32") || strcmp(&tokens[0][1], "aabb3f64") + // AABB4 + || strcmp(&tokens[0][1], "aabb4u8") || strcmp(&tokens[0][1], "aabb4s8") + || strcmp(&tokens[0][1], "aabb4u16") || strcmp(&tokens[0][1], "aabb4s16") + || strcmp(&tokens[0][1], "aabb4u32") || strcmp(&tokens[0][1], "aabb4s32") + || strcmp(&tokens[0][1], "aabb4u64") || strcmp(&tokens[0][1], "aabb4s64") + || strcmp(&tokens[0][1], "aabb4f32") || strcmp(&tokens[0][1], "aabb4f64")) + sprintf(type, "%s ", &tokens[0][1]); + else if (strcmp(&tokens[0][1], "string")) + // String + strcpy(type, "char *"); + else if (strcmp(&tokens[0][1], "blob")) + // Blob + strcpy(type, "DragonnetBlob "); - fprintf(fp, "\t%s%s;\n", type, tokens[1]); + fprintf(fp, "\t%s%s;\n", type, &tokens[0][1]); free(tokens); } } -- 2.44.0