aboutsummaryrefslogtreecommitdiff
path: root/types.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-02-18 02:07:12 -0500
committerBruce Hill <bruce@bruce-hill.com>2024-02-18 02:07:12 -0500
commite5f706b258fd68c0b6b84cd9e05d741d01a588f4 (patch)
treeb8a903aba2376a3969b4e90bd4e41bc50798185f /types.c
parent16e663941a51df9124412be0490446e868fef238 (diff)
Change syntax back to "enum(...)" and "struct(...)"
Diffstat (limited to 'types.c')
-rw-r--r--types.c102
1 files changed, 52 insertions, 50 deletions
diff --git a/types.c b/types.c
index 316877e6..68d3c309 100644
--- a/types.c
+++ b/types.c
@@ -38,22 +38,23 @@ CORD type_to_cord(type_t *t) {
}
case StructType: {
auto struct_ = Match(t, StructType);
- CORD c = CORD_asprintf("%s{", struct_->name);
- int64_t i = 1;
- for (arg_t *field = struct_->fields; field; field = field->next) {
- const char *fname = field->name ? field->name : heap_strf("_%lu", i);
- ++i;
- if (fname && !streq(fname, heap_strf("_%lu", i+1)))
- c = CORD_cat(CORD_cat(c, fname), ":");
- else
- c = CORD_cat(c, ":");
-
- c = CORD_cat(c, type_to_cord(field->type));
-
- if (field->next) c = CORD_cat(c, ", ");
- }
- c = CORD_cat(c, "}");
- return c;
+ return struct_->name;
+ // CORD c = CORD_asprintf("%s(", struct_->name);
+ // int64_t i = 1;
+ // for (arg_t *field = struct_->fields; field; field = field->next) {
+ // const char *fname = field->name ? field->name : heap_strf("_%lu", i);
+ // ++i;
+ // if (fname && !streq(fname, heap_strf("_%lu", i+1)))
+ // c = CORD_cat(CORD_cat(c, fname), ":");
+ // else
+ // c = CORD_cat(c, ":");
+
+ // c = CORD_cat(c, type_to_cord(field->type));
+
+ // if (field->next) c = CORD_cat(c, ", ");
+ // }
+ // c = CORD_cat(c, ")");
+ // return c;
}
case PointerType: {
auto ptr = Match(t, PointerType);
@@ -63,40 +64,41 @@ CORD type_to_cord(type_t *t) {
}
case EnumType: {
auto tagged = Match(t, EnumType);
-
- CORD c = CORD_asprintf("%s[", tagged->name);
- int64_t next_tag = 0;
- for (tag_t *tag = tagged->tags; tag; tag = tag->next) {
- // name, tag_value, type
- c = CORD_cat(c, tag->name);
- if (tag->type) {
- c = CORD_cat(c, "(");
- auto struct_ = Match(tag->type, StructType);
- int64_t i = 1;
- for (arg_t *field = struct_->fields; field; field = field->next) {
- if (field->name && !streq(field->name, heap_strf("_%lu", i)))
- c = CORD_cat(CORD_cat(c, field->name), ":");
-
- CORD fstr = type_to_cord(field->type);
- c = CORD_cat(c, fstr);
- if (field->next) c = CORD_cat(c, ",");
- ++i;
- }
- c = CORD_cat(c, ")");
- }
-
- if (tag->tag_value != next_tag) {
- CORD_sprintf(&c, "%r=%ld", c, tag->tag_value);
- next_tag = tag->tag_value + 1;
- } else {
- ++next_tag;
- }
-
- if (tag->next)
- c = CORD_cat(c, ", ");
- }
- c = CORD_cat(c, "]");
- return c;
+ return tagged->name;
+
+// CORD c = CORD_asprintf("%s(", tagged->name);
+// int64_t next_tag = 0;
+// for (tag_t *tag = tagged->tags; tag; tag = tag->next) {
+// // name, tag_value, type
+// c = CORD_cat(c, tag->name);
+// if (tag->type) {
+// c = CORD_cat(c, "(");
+// auto struct_ = Match(tag->type, StructType);
+// int64_t i = 1;
+// for (arg_t *field = struct_->fields; field; field = field->next) {
+// if (field->name && !streq(field->name, heap_strf("_%lu", i)))
+// c = CORD_cat(CORD_cat(c, field->name), ":");
+
+// CORD fstr = type_to_cord(field->type);
+// c = CORD_cat(c, fstr);
+// if (field->next) c = CORD_cat(c, ",");
+// ++i;
+// }
+// c = CORD_cat(c, ")");
+// }
+
+// if (tag->tag_value != next_tag) {
+// CORD_sprintf(&c, "%r=%ld", c, tag->tag_value);
+// next_tag = tag->tag_value + 1;
+// } else {
+// ++next_tag;
+// }
+
+// if (tag->next)
+// c = CORD_cat(c, ", ");
+// }
+// c = CORD_cat(c, ")");
+// return c;
}
case PlaceholderType: {
return Match(t, PlaceholderType)->name;