C:/Users/Dennis/src/lang/russell.orig/src/pass3/decl_pairs.h

Go to the documentation of this file.
00001 /*
00002  * declarations and macros for manipulating the list decl_list of pairs of
00003  * declaration pointers
00004  */
00005 
00006 struct p_pair {
00007     NODE * pp_1;
00008     NODE * pp_2;
00009 };
00010 
00011 ConsNode * decl_list;
00012 
00013 # define clr_dlist while (!is_null_cn(decl_list)) \
00014               { \
00015                 vfree(unlock(((struct p_pair *)cn_head(decl_list)) -> pp_1)); \
00016                 vfree(unlock(((struct p_pair *)cn_head(decl_list)) -> pp_2)); \
00017                 decl_list = cn_del_hd(decl_list); \
00018               }
00019 
00020 # define add_dlist(p,q) { struct p_pair * pp_o0p /* unreproducible id */; \
00021                           pp_o0p = (struct p_pair *) \
00022                                         alloc(sizeof(struct p_pair)); \
00023                           pp_o0p -> pp_1 = lock(p); \
00024                           pp_o0p -> pp_2 = lock(q); \
00025                           decl_list = cn_cons((ANYTHING *)pp_o0p, decl_list); \
00026                         }
00027 
00028 boolean dl_match();
00029 
00030 NODE * dl_new_decl();

Generated on Fri Jan 25 10:39:46 2008 for russell by  doxygen 1.5.4