1: /*
2: * Copyright (c) 1980 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)data.h 5.1 (Berkeley) 6/7/85
7: */
8:
9: /* Forms of data list elements */
10:
11: #define SIMPLE 1
12: #define NESTED 2
13:
14:
15: /* data expression block types */
16:
17: #define DVALUE 1
18: #define DVAR 2
19: #define DNAME 3
20: #define DEXPR 4
21: #define DERROR 5
22:
23:
24: /* status codes for integer values */
25:
26: #define NORMAL 1
27: #define MAXPLUS1 2
28: #define MINLESS1 3
29: #define ERRVAL 4
30:
31:
32:
33: /* data types for data statements */
34:
35:
36: typedef
37: struct Dvalue
38: {
39: char tag;
40: char status;
41: ftnint value;
42: }
43: dvalue;
44:
45:
46: typedef
47: struct Dvar
48: {
49: char tag;
50: struct Dvalue *valp;
51: }
52: dvar;
53:
54:
55: typedef
56: struct Dname
57: {
58: char tag;
59: int len;
60: char *repr;
61: }
62: dname;
63:
64:
65: typedef
66: struct Dexpr
67: {
68: char tag;
69: char opcode;
70: union Vexpr *left;
71: union Vexpr *right;
72: }
73: dexpr;
74:
75:
76: typedef
77: struct Derror
78: {
79: char tag;
80: }
81: derror;
82:
83:
84: typedef
85: union Vexpr
86: {
87: char tag;
88: struct Dvalue dvalue;
89: struct Dvar dvar;
90: struct Dname dname;
91: struct Dexpr dexpr;
92: struct Derror derror;
93: }
94: vexpr;
95:
96:
97: typedef
98: struct Elist
99: {
100: struct Elist *next;
101: union Delt *elt;
102: }
103: elist;
104:
105:
106: typedef
107: struct Aelt
108: {
109: char tag;
110: Namep var;
111: struct Vlist *subs;
112: struct Rpair *range;
113: }
114: aelt;
115:
116:
117: typedef
118: struct DoList
119: {
120: char tag;
121: struct Elist *elts;
122: union Vexpr *dovar;
123: union Vexpr *init;
124: union Vexpr *limit;
125: union Vexpr *step;
126: }
127: dolist;
128:
129:
130: typedef
131: union Delt
132: {
133: char tag;
134: struct Aelt simple;
135: struct DoList nested;
136: }
137: delt;
138:
139:
140: typedef
141: struct Rpair
142: {
143: union Vexpr *low;
144: union Vexpr *high;
145: }
146: rpair;
147:
148:
149: typedef
150: struct ValList
151: {
152: struct ValList *next;
153: char status;
154: int repl;
155: Constp value;
156: }
157: vallist;
158:
159:
160: typedef
161: struct Vlist
162: {
163: struct Vlist *next;
164: union Vexpr *val;
165: }
166: vlist;
167:
168:
169: typedef
170: struct DoVars
171: {
172: struct DoVars *next;
173: int len;
174: char *repr;
175: dvalue *valp;
176: }
177: dovars;
178:
179:
180:
181: /* Global variables */
182:
183: extern int badvalue;
184: extern flag overlapflag;
185:
186:
187: /* Global procedures */
188:
189: extern frvexpr();
190: extern frvlist();
191: extern elist *revelist();
192: extern vlist *revvlist();
193: extern vlist *prepvexpr();
194: extern elist *preplval();
195: extern delt *mkdlval();
196: extern delt *mkdatado();
197: extern rpair *mkdrange();
198: extern vallist *mkdrval();
199: extern vexpr *evicon();
200: extern vexpr *mkdname();
201: extern expptr ivaltoicon();
202: extern expptr evparam();
203: extern vexpr *evaldname();
204: extern vexpr *mkdexpr();
205: extern vexpr *addivals();
206: extern vexpr *subivals();
207: extern vexpr *mulivals();
208: extern vexpr *divivals();
209: extern vexpr *powivals();
210: extern vexpr *negival();
211: extern expptr convconst();
212: extern savedata();
Defined struct's
Aelt
defined in line
107; used 2 times
Dexpr
defined in line
66; used 2 times
Dname
defined in line
56; used 2 times
Dvar
defined in line
47; used 2 times
Elist
defined in line
98; used 6 times
Defined union's
Delt
defined in line
131; used 3 times
Vexpr
defined in line
85; used 18 times
Defined typedef's
aelt
defined in line
114; used 10 times
delt
defined in line
137; used 7 times
dexpr
defined in line
73; used 13 times
dname
defined in line
62; used 15 times
dvalue
defined in line
43; used 52 times
- in line 88,
175
- in /usr/src/usr.bin/f77/src/f77pass1/data.c line
62,
69-70(2),
322,
432-433(2),
484,
548-550(2),
682,
814,
820-823(4),
846,
902-907(2),
917,
959-967(5),
989,
1025,
1032-1035(4),
1108-1116(5),
1395,
1436,
1627,
1835,
1851,
2266-2267(2),
2302-2303(2),
2430-2432(2),
2438-2440(3),
2505
dvar
defined in line
52; used 3 times
elist
defined in line
103; used 20 times
vexpr
defined in line
94; used 92 times
- in line 199-210(10)
- in /usr/src/usr.bin/f77/src/f77pass1/data.c line
58-60(2),
72,
78,
266,
294,
313,
344-350(3),
363,
387,
401,
410,
474,
527,
535,
568,
588,
637,
675-676(2),
723-735(5),
755,
793,
805-807(3),
891-897(3),
924-936(6),
950-952(3),
1011-1018(4),
1092-1099(4),
1226,
1329-1334(4),
1343,
1393,
1404-1408(3),
1429,
1446-1448(2),
1655,
1664,
1673,
1774,
1859-1863(2),
2306-2307(2),
2320-2321(2),
2329-2330(2),
2337-2338(2),
2604-2606(3)
vlist
defined in line
166; used 17 times
Defined macros
DEXPR
defined in line
20; used 2 times
DNAME
defined in line
19; used 5 times
DVALUE
defined in line
17; used 30 times
- in /usr/src/usr.bin/f77/src/f77pass1/data.c line
64-68(2),
360,
430,
490,
545,
688,
758-763(3),
817(2),
826,
904,
910,
938(2),
961(2),
970,
1029(2),
1038,
1110(2),
1119,
1394,
1652,
1670,
1773
DVAR
defined in line
18; used 1 times
ERRVAL
defined in line
29; used 48 times
- in /usr/src/usr.bin/f77/src/f77pass1/data.c line
438,
450-461(4),
499,
518,
698,
704-709(2),
828-834(4),
867,
886,
912-913(2),
972-978(4),
1007,
1040-1041(3),
1047,
1121-1122(3),
1147,
1176,
1184,
1190,
1210,
1254,
1267,
1321,
1395,
1436,
2304(2),
2442-2444(3),
2544,
2562,
2579
MAXPLUS1
defined in line
27; used 33 times
- in /usr/src/usr.bin/f77/src/f77pass1/data.c line
447,
512,
553,
842,
851,
878,
919-922(2),
985,
1000-1003(2),
1057-1065(3),
1085(2),
1133,
1187,
1207,
1252,
1311,
2461-2468(3),
2487,
2524-2525(2),
2533-2534(2),
2541-2546(3),
2585
MINLESS1
defined in line
28; used 21 times
- in /usr/src/usr.bin/f77/src/f77pass1/data.c line
435,
551-553(2),
715,
842,
859,
920,
985,
1001,
1058,
1086(2),
1265,
1313,
1855,
2475,
2527,
2536,
2561-2564(2),
2594
NORMAL
defined in line
26; used 84 times
- in /usr/src/usr.bin/f77/src/f77pass1/data.c line
361,
435-444(3),
523,
549,
718,
831(2),
849-855(3),
861,
872-874(2),
880,
914-916(2),
975(2),
992-999(4),
1042,
1049-1051(2),
1063,
1082-1083(2),
1124-1141(6),
1152-1153(2),
1170-1174(3),
1192-1199(3),
1207-1221(5),
1240,
1248,
1261,
1285,
1303,
1316,
1653,
1671,
1853,
1910,
2208,
2312-2315(2),
2370,
2450-2452(2),
2481,
2488,
2514(2),
2522,
2543-2549(4),
2555,
2561-2567(4),
2573,
2583-2586(2),
2592-2595(2)
Usage of this include