/* There are an unknown amount of cdats at compile time, so we maintain */
/* a cdat_buf of cdat pointers that can be expanded as needed. */
struct cdat* cdat_buf[PTRS_IN_PAGE];
-int num_cdats = 0;
-int curr_max_cdats = PTRS_IN_PAGE;
/* The cdat_stack is a stack pointers to cdat pointers, the top of which is
the cdat that is currently being parsed. Whenever a new cdat is recognized
/* Like the cdat_buf, ref_buf stores pointers to refs and can
increase in size */
struct ref* ref_buf[PTRS_IN_PAGE];
-int num_refs = 0;
-int curr_max_refs = PTRS_IN_PAGE;
-uint64_t ss_ref_id = 0x00FFFFFF; /* system space for ref_ids */
-
/* posts for ref_buf */
-struct ref posts[MAX_POSTS];
-int num_posts;
+struct ref* post_buf[PTRS_IN_PAGE];
/* Links: At parse time, a set/ele can include a link in their
grammar representation instead of the actual data and this signifies
This does not include quad refs, because
those are already known to need to be resolved */
struct link* link_buf[PTRS_IN_PAGE];
-int num_links = 0;
-int curr_max_links = PTRS_IN_PAGE;
/* Odats: Odats consist of the object data necessary for
/* Populated and allocated same way as other bufs */
struct odat* odat_buf[PTRS_IN_PAGE];
-int curr_max_odats = PTRS_IN_PAGE;
-int num_odats = 0;
/* A framesheet is a grouping of animation frames in
a single direction (N,W,S,E) */
struct vdat* vdat_buf[PTRS_IN_PAGE];
-int curr_max_vdats = PTRS_IN_PAGE;
-int num_vdats = 0;
/* The initalization function of the IR. Mallocs the
first c/v/odat and the first links and refs and