|
|
1.1 root 1: #include <stdio.h>
2: #include "def.h"
3: #include "1.incl.h"
4:
5: makenode(type,addimp,addcom, labe,arcnum,arctype,arclab)
6: LOGICAL addimp,addcom;
7: int type, arctype[], arcnum;
8: long arclab[], labe;
9: {
10: int i;
11: VERT num;
12:
13: ASSERT(arcsper[type] < 0 || arcnum == arcsper[type], makenode);
14: num = create(type,arcnum);
15:
16: if (addimp) fiximp(num,labe);
17:
18: for (i = 0; i < arcnum; ++i)
19: {
20: if (arctype[i] == -2)
21: addref(arclab[i],&ARC(num,i));
22: else
23: ARC(num,i) = arctype[i];
24: }
25:
26:
27: if (hascom[type] )
28: {
29: if (!addcom || endcom < begline)
30: BEGCOM(num) = UNDEFINED;
31: else
32: BEGCOM(num) = begchar - rtnbeg;
33: }
34: return(num);
35: }
36:
37:
38:
39:
40:
41: fiximp(num,labe) /* fix implicit links, check nesting */
42: VERT num;
43: long labe;
44: {
45: fixvalue(implicit, num); /* set implicit links to this node */
46: clear(implicit);
47: if(labe != implicit) fixvalue(labe, num);
48: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.