removed olinks, updated lexer_lex to handle errors
[henge/webcc.git] / src / apc / ir.c
index 5af236d..f47e25a 100644 (file)
@@ -151,22 +151,11 @@ insert_set_olink
 ( uint64_t ref_id
 )
 {
-  struct cdat* curr_cdatp;
-  struct link* curr_linkp;
-  struct odat* curr_setp;
+  struct set* curr_setp;
 
-  curr_cdatp = curr_cdat();
-  curr_setp = alloc_odat();
-  curr_linkp = alloc_link();
+  curr_setp = curr_set();
 
-  curr_setp->cdat_idx = curr_cdatp->idx;
-  curr_setp->ref_id = ref_id; /* Will be resolved to offset
-                                          when link is processed */
-  curr_linkp->type = 1;
-  curr_linkp->link_t.olink.ref_id = ref_id;
-  curr_linkp->classp = curr_cdatp;
-  curr_linkp->set_idx = curr_cdatp->num_sets++;
-  curr_linkp->ele_idx = -1;
+  curr_setp->ref_id = ref_id;
 
 }
 
@@ -177,26 +166,32 @@ insert_set_vlink
 )
 {
   struct cdat* curr_cdatp;
+  struct odat* curr_odatp;
   struct link* curr_linkp;
 
+
   curr_cdatp = curr_cdat();
+  curr_odatp = curr_odat();
   curr_linkp = alloc_link();
 
   /* Insert vlink into link_stack so that it gets processed at
      output time */
   curr_linkp->type = 2;
+  /* Store the target odat information*/
   curr_linkp->link_t.vlink.ref_id = ref_id;
+  memmove(curr_linkp->link_t.vlink.anim_name, anim_name, 32);
+  /* Store the linking odat/cdat information */
   curr_linkp->classp = curr_cdatp;
+  curr_linkp->odatp = curr_odatp;
   curr_linkp->set_idx = curr_cdatp->num_sets;
   curr_linkp->ele_idx = -1;
-  memmove(curr_linkp->link_t.vlink.anim_name, anim_name, 32);
 
 }
 
 /* Svlinks dont have animation names */
 void
 insert_set_svlink
-( uint64_t ref_id
+( uint64_t ref_id 
 )
 {
   struct cdat* curr_cdatp;
@@ -300,24 +295,8 @@ insert_ele_olink
 ( uint64_t ref_id
 )
 {
-  struct cdat* curr_cdatp;
-  struct set* curr_setp;
-  struct ele* curr_elep;
-  struct link* curr_linkp;
-
-  curr_cdatp = curr_cdat();
-  //curr_elep = curr_ele();
-  curr_linkp = alloc_link();
-
-  //curr_elep->cdat_idx = curr_cdatp;
-  //curr_elep->ref_id = ref_id;
-
-  curr_linkp->type = 1;
-  curr_linkp->link_t.olink.ref_id = ref_id;
-  curr_linkp->classp = curr_cdatp;
-  curr_linkp->set_idx = curr_cdatp->num_sets++;
-  //curr_linkp->ele_idx = curr_setp->num_ele++;
-
+  /* Do nothing because we already know the ref_id that
+     the odat needs for this element (in the quad_file) */
 }
 
 void