-static void
-dump_substs(void (*dump)(int level), int level)
-{
- dump_value_31();
-
- char *base = get_string();
- int x = get_u32();
- printf ("\"%s\" with %d variables:\n", base, x);
- for (int i = 0; i < x; i++)
- {
- int y = get_u32();
- if (!y)
- y = 1;
- else
- match_u32_assert(0);
- for (int j = 0; j <= level; j++)
- printf (" ");
- printf("variable %d has %d values:\n", i, y);
- for (int j = 0; j < y; j++)
- {
- dump (level+1);
- putchar('\n');
- }
- }
-}
-
-static void
-dump_data_value(int level)
-{
- for (int i = 0; i <= level; i++)
- printf (" ");
-
- match_byte(0);
- match_byte(0);
- match_byte(0);
- match_byte(0);
- if (data[pos] <= 5)
- dump_value__(0, false);
- else
- dump_substs (dump_data_value, level + 1);
-}
-