/*4:*/ #line 63 "gb_graph.w" #include #include #ifdef SYSV #include #else #include #endif #undef min /*8:*/ #line 136 "gb_graph.w" typedef union{ struct vertex_struct*V; struct arc_struct*A; struct graph_struct*G; char*S; long I; }util; /*:8*//*9:*/ #line 162 "gb_graph.w" typedef struct vertex_struct{ struct arc_struct*arcs; char*name; util u,v,w,x,y,z; }Vertex; /*:9*//*10:*/ #line 181 "gb_graph.w" typedef struct arc_struct{ struct vertex_struct*tip; struct arc_struct*next; long len; util a,b; }Arc; /*:10*//*12:*/ #line 234 "gb_graph.w" #define init_area(s) *s= NULL struct area_pointers{ char*first; struct area_pointers*next; }; typedef struct area_pointers*Area[1]; /*:12*//*20:*/ #line 377 "gb_graph.w" #define ID_FIELD_SIZE 161 typedef struct graph_struct{ Vertex*vertices; long n; long m; char id[ID_FIELD_SIZE]; char util_types[15]; Area data; Area aux_data; util uu,vv,ww,xx,yy,zz; }Graph; /*:20*//*34:*/ #line 670 "gb_graph.w" typedef unsigned long siz_t; /*:34*/ #line 72 "gb_graph.w" /*:4*//*6:*/ #line 88 "gb_graph.w" extern long verbose; extern long panic_code; /*:6*//*7:*/ #line 105 "gb_graph.w" #define alloc_fault (-1) #define no_room 1 #define early_data_fault 10 #define late_data_fault 11 #define syntax_error 20 #define bad_specs 30 #define very_bad_specs 40 #define missing_operand 50 #define invalid_operand 60 #define impossible 90 /*:7*//*15:*/ #line 292 "gb_graph.w" extern long gb_trouble_code; /*:15*//*17:*/ #line 312 "gb_graph.w" #line 30 "gb_graph.ch" extern char*gb_alloc(long,Area); #define gb_typed_alloc(n,t,s) \ (t*)gb_alloc((long)((n)*sizeof(t)),s) extern void gb_free(Area); #line 317 "gb_graph.w" /*:17*//*22:*/ #line 429 "gb_graph.w" #define n_1 uu.I #define mark_bipartite(g,n1) g->n_1= n1,g->util_types[8]= 'I' /*:22*//*25:*/ #line 474 "gb_graph.w" extern long extra_n; extern char null_string[]; #line 49 "gb_graph.ch" extern void make_compound_id(Graph*,char*,Graph*,char*); extern void make_double_compound_id(Graph*,char*,Graph*,char*, Graph*,char*); #line 481 "gb_graph.w" /*:25*//*33:*/ #line 657 "gb_graph.w" extern siz_t edge_trick; /*:33*//*41:*/ #line 802 "gb_graph.w" #define gb_new_graph gb_nugraph #define gb_new_arc gb_nuarc #define gb_new_edge gb_nuedge #line 146 "gb_graph.ch" extern Graph*gb_new_graph(long); extern void gb_new_arc(Vertex*,Vertex*,long); extern Arc*gb_virgin_arc(void); extern void gb_new_edge(Vertex*,Vertex*,long); extern char*gb_save_string(register char*); extern void switch_to_graph(Graph*); extern void gb_recycle(Graph*); #line 813 "gb_graph.w" /*:41*//*42:*/ #line 840 "gb_graph.w" #line 168 "gb_graph.ch" extern void hash_in(Vertex*); extern Vertex*hash_out(char*); extern void hash_setup(Graph*); extern Vertex*hash_lookup(char*,Graph*); #line 845 "gb_graph.w" /*:42*/