for (int i = 0; i <= level; i++)
printf (" ");
+ match_byte (0);
+ match_byte (0);
+ match_byte (0);
match_byte (0);
if (match_byte (3))
{
if (!match_u32 (3))
match_u32_assert (2);
}
- else
+ else if (match_byte (1))
{
unsigned int format;
double value;
- match_byte_assert (1);
match_byte_assert (0x58);
format = get_u32 ();
value = get_double ();
match_byte (0);
match_byte (1);
}
+ else
+ {
+ int subn;
+
+ match_byte_assert (0x31);
+ get_u32 ();
+ get_u32 ();
+ subn = get_u32 ();
+ printf ("nested %d bytes", subn);
+ pos += subn;
+ printf ("; \"%s\"", get_string());
+ goto next;
+ }
if (match_u32 (2))
get_u32 ();
match_u32_assert (0);
get_u32 ();
}
+next:;
int n_categories = get_u32();
if (n_categories > 0)
printf (", %d subcategories:", n_categories);