return decl;
}
+static void
+print_decl(struct cdecl *decl, size_t func(char *, size_t, struct cdecl *))
+{
+ static size_t printbuf_size;
+ static char *printbuf;
+ size_t rc;
+retry:
+ rc = func(printbuf, printbuf_size, decl);
+ if (rc >= printbuf_size) {
+ printbuf_size = rc + 1;
+ printbuf = realloc_nofail(printbuf, printbuf_size);
+ goto retry;
+ }
+
+ printf("%s\n", printbuf);
+}
+
int main(int argc, char **argv)
{
const char *seed = "", *count_str = NULL;
decl = random_decl(rng);
if (mode == MODE_ENGLISH) {
- test_explain_decl(decl);
+ print_decl(decl, cdecl_explain);
} else {
- test_print_decl(decl);
+ print_decl(decl, cdecl_declare);
}
gen_free_declspecs(decl->specifiers);