]> git.lizzy.rs Git - dragonnet.git/commitdiff
Add more serialization data types
authorHimbeerserverDE <himbeerserverde@gmail.com>
Mon, 4 Oct 2021 16:47:43 +0000 (18:47 +0200)
committerHimbeerserverDE <himbeerserverde@gmail.com>
Mon, 4 Oct 2021 16:47:43 +0000 (18:47 +0200)
typegen/main.c

index 8f1302a25f46563e8afa82d64560efecd1c905f6..37b9fbddd0b74b4897ee490f50533e77cd8afaf7 100644 (file)
@@ -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);
                }
        }