1 /* ..... BEGIN INCLUDE FILE pascal_context_table.incl.pl1 ...... */
  2 
  3 
  4 /****^  HISTORY COMMENTS:
  5   1) change(86-09-16,JPFauche), approve(86-09-16,MCR7521),
  6      audit(86-09-16,Martinson), install(86-11-12,MR12.0-1208):
  7      Modified to support Version 8.03 of pascal.
  8                                                    END HISTORY COMMENTS */
  9 
 10 /* PL1 declarations for contexttable declaration of PASCAL compiler
 11    (written in PASCAL )                                     */
 12 
 13      dcl     1 cth                  based,                  /* contextable header */
 14                2 name               char (32),
 15                2 nxtel              ptr,
 16                2 alfathread         ptr,
 17                2 deffile            fixed bin (35),
 18                2 defline            fixed bin (35),
 19                2 references         ptr,
 20                2 symbolplace        ptr unal,
 21                2 symbtablerefs      fixed bin (35),
 22                2 klass              fixed bin (35);
 23 
 24 /* TYPES */
 25 
 26      dcl     1 tdh                  based,                  /* type descriptor header */
 27                2 cth_               like cth,
 28                2 size               fixed bin (35),
 29                2 cadrage            fixed bin (35),
 30                2 pack               fixed bin (35),
 31                2 tlevel             fixed bin (35),
 32                2 word_pad           fixed bin (35),
 33                2 objaccedes         bit (72),
 34                2 father_schema      ptr,
 35                2 actual_parameter_list ptr,
 36                2 desc_vector_references fixed bin (35),
 37                2 form               fixed bin (35);
 38 
 39      dcl     1 real_td              based,                  /* real type descriptor */
 40                2 tdh_               like tdh;
 41 
 42      dcl     1 numeric_td           based,                  /* numeric type descriptor */
 43                2 tdh_               like tdh,
 44                2 npksize            fixed bin (35),
 45                2 nmin               fixed bin (35),
 46                2 nmax               fixed bin (35);
 47 
 48      dcl     1 std                  based,                  /* scalar type descriptors */
 49                2 tdh_               like tdh,
 50                2 spksize            fixed bin (35),
 51                2 subrng             fixed bin (35);
 52 
 53      dcl     1 scalar_td            based,                  /* - not subrange */
 54                2 std_               like std,
 55                2 fconst             ptr,
 56                2 sptcstepw          ptr;
 57 
 58      dcl     1 scalar_subrange_td   based,                  /* - subrange */
 59                2 std_               like std,
 60                2 smin               fixed bin (35),
 61                2 smax               fixed bin (35),
 62                2 typset             ptr;
 63 
 64      dcl     1 pointer_td           based,                  /* pointer type descriptor */
 65                2 tdh_               like tdh,
 66                2 ptpksize           fixed bin (35),
 67                2 domain             ptr,
 68                2 eltype             ptr;
 69 
 70      dcl     1 power_td             based,                  /* power type descriptor */
 71                2 tdh_               like tdh,
 72                2 ppksize            fixed bin (35),
 73                2 elset              ptr,
 74                2 setlength          fixed bin (35);
 75 
 76      dcl     1 atd                  based,                  /* arrays type descriptors */
 77                2 tdh_               like tdh,
 78                2 aeltype            ptr,
 79                2 inxtype            ptr,
 80                2 conformant         fixed bin (35);
 81 
 82      dcl     1 array_td             based,                  /* - not conformant */
 83                2 atd_               like atd,
 84                2 lo                 fixed bin (35),
 85                2 hi                 fixed bin (35),
 86                2 opt2               fixed bin (35),
 87                2 subsize            fixed bin (35);
 88 
 89      dcl     1 conformant_array_td  based,                  /* - conformant */
 90                2 atd_               like atd,
 91                2 pthigh             ptr,
 92                2 ptlow              ptr;
 93 
 94      dcl     1 records_td           based,                  /* record type descriptor */
 95                2 tdh_               like tdh,
 96                2 recvar             ptr,
 97                2 fstfld             ptr;
 98 
 99      dcl     1 files_td             based,                  /* type descriptor */
100                2 tdh_               like tdh,
101                2 feltype            ptr;
102 
103      dcl     1 monormod_td          based,                  /* monormod descriptor */
104                2 tdh_               like tdh,
105                2 motype             fixed bin (35),
106                2 niveau             fixed bin (35),
107                2 moaddr             fixed bin (35),
108                2 nbparmo            fixed bin (35),
109                2 ptpar              ptr,
110                2 ptvarloc           ptr,
111                2 ptentr             ptr,
112                2 initmoproc         ptr,
113                2 finitmoproc        ptr,
114                2 blocenglob         ptr;
115 
116      dcl     1 aliastype_td         based,                  /* aliastype descriptor */
117                2 tdh_               like tdh,
118                2 realtype           ptr;
119 
120 /* CONST */
121 
122      dcl     1 cdh                  based,                  /* const descriptor header */
123                2 cth_               like cth,
124                2 succ               ptr,
125                2 contype            ptr,
126                2 typofconst         fixed bin (35);
127 
128      dcl     1 wordconst_cd         based,                  /* word const descriptor */
129                2 cdh_               like cdh,
130                2 values             fixed bin (35);
131 
132      dcl     1 dwordconst_cd        based,                  /* dword const descriptor */
133                2 cdh_               like cdh,
134                2 valreel            float bin (63);
135 
136      dcl     1 alfaconst_cd         based,                  /* alfa const descriptor */
137                2 cdh_               like cdh,
138                2 alfadeb            ptr,
139                2 alfalong           fixed bin (35),
140                2 alfalevel          fixed bin (35),
141                2 unddeb             fixed bin (35);
142 
143 /* PROC */
144 
145      dcl     1 proc_d               based,                  /* procedure descriptor */
146                2 cth_               like cth,
147                2 proctype           ptr,
148                2 formals            ptr,
149                2 prockind           fixed bin (35),
150                2 proclevel          fixed bin (35),
151                2 procaddr           fixed bin (35),
152                2 segsize            fixed bin (35),
153                2 nbparproc          fixed bin (35),
154                2 locincode          fixed bin (35),
155                2 procisassigned     fixed bin (35),
156                2 predefproc         fixed bin (35),
157                2 procinscope        fixed bin (35),
158                2 pisrefincode       fixed bin (35),
159                2 phasdescriptor     fixed bin (35),
160                2 ploc               fixed bin (35),
161                2 procextitem        ptr,
162                2 ptypesymbolplace   ptr unal,
163                2 recur              fixed bin (35),
164                2 procaccesslevel    fixed bin (35),
165                2 processus          fixed bin (35),
166                2 pure               fixed bin (35),
167                2 chaineentree       ptr,
168                2 procnode           ptr,
169                2 procincbloc        fixed bin (35),
170                2 procfirstexit      ptr,
171                2 procfirsttofinit   ptr,
172                2 procstackinitsize  fixed bin (35),
173                2 procwasforwarddef  fixed bin (35),
174                2 procdef            fixed bin (35),
175                2 pwantsdescs        fixed bin (35),
176                2 pdescsaddrplace    fixed bin (35),
177                2 procisactive       fixed bin (35),
178                2 pextcalltrapinfoplace fixed bin (35),
179                2 pwantspl1descriptors fixed bin (35);
180 
181 /* VARS */
182 
183      dcl     1 var_d                based,                  /* variable descriptor */
184                2 cth_               like cth,
185                2 vtype              ptr,
186                2 vkind              fixed bin (35),
187                2 vfilelocation      fixed bin (35),
188                2 vaddr              fixed bin (35),
189                2 vdispl             fixed bin (35),
190                2 vdescaddr          fixed bin (35),
191                2 vlevel             fixed bin (35),
192                2 vlink_is_generated fixed bin (35),
193                2 visused            fixed bin (35),
194                2 visset             fixed bin (35),
195                2 visreadonly        fixed bin (35),
196                2 varparam           fixed bin (35),
197                2 visrefincode       fixed bin (35),
198                2 vptextitem         ptr;
199 
200 /* FIELD */
201 
202      dcl     1 field_d              based,                  /* field descriptor */
203                2 cth_               like cth,
204                2 fldtype            ptr,
205                2 fldaddr            fixed bin (35),
206                2 bytwidth           fixed bin (35);
207 
208 /* TAGFIELD */
209 
210      dcl     1 fdh                  based,                  /* tagfield descriptor header */
211                2 cth_               like cth,
212                2 casesize           fixed bin (35),
213                2 variants           ptr,
214                2 tagval             fixed bin (35);
215 
216      dcl     1 not_tagval_fd        based,
217                2 fdh_               like fdh,
218                2 casetype           ptr,
219                2 selectorfield      ptr;
220 
221      dcl     1 tagval_fd            based,
222                2 fdh_               like fdh,
223                2 caseval            fixed bin (35),
224                2 firstfield         ptr;
225 
226 /* DUMMYCLASS */
227 
228      dcl     1 dummyclass_d         based,
229                2 cth_               like cth;
230 
231 
232 /* declaration of scalar types used */
233 
234      dcl     (false                 init (0),               /* boolean */
235              true                   init (1)) int static options (constant);
236 
237      dcl     (actual                init (0),               /* idkinds */
238              formal                 init (1),
239              arraybound             init (2),
240              exportable             init (3),
241              imported               init (4)) int static options (constant);
242 
243      dcl     (reel                  init (0),               /* typform */
244              numeric                init (1),
245              scalar                 init (2),
246              pointer                init (3),
247              power                  init (4),
248              arrays                 init (5),
249              records                init (6),
250              monormod               init (7),
251              condition              init (8),
252              files                  init (9),
253              aliastype              init (10)) int static options (constant);
254 
255      dcl     (module                init (0),               /* motypes */
256              monitor                init (1)) int static options (constant);
257 
258      dcl     (standdef              init (0),               /* idprocdef */
259              forwdef                init (1),
260              extdef                 init (2),
261              initdef                init (3),
262              finitdef               init (4)) int static options (constant);
263 
264      dcl     (schema                init (0),               /* idclass */
265              types                  init (1),
266              konst                  init (2),
267              proc                   init (3),
268              vars                   init (4),
269              field                  init (5),
270              tagfield               init (6),
271              dummyclass             init (7)) int static options (constant);
272 
273      dcl     (wordconst             init (0),               /* consttype */
274              dwordconst             init (1),
275              alfaconst              init (2)) int static options (constant);
276 
277      dcl     (notpredef             init (0),               /* proclocation */
278              instdpure              init (1),
279              instdcompiler          init (2),
280              instdsol               init (3),
281              instdextend            init (4),
282              instdcomputer          init (5)) int static options (constant);
283 
284      dcl     (notafile              init (0),               /* filelocation */
285              permanentfile          init (1),
286              workfile               init (2),
287              localfile              init (3),
288              standardfile           init (4)) int static options (constant);
289 
290 
291      dcl     1 blocknodeheader      based,                  /* PASCAL blocknode */
292                2 father             ptr,
293                2 brother            ptr,
294                2 son                ptr,
295                2 codebegin          fixed bin (35),
296                2 codeend            fixed bin (35),
297                2 first              ptr,
298                2 blocktp            fixed bin (35);
299 
300      dcl     1 procnode             based,
301                2 header             like blocknodeheader,
302                2 blockbox           ptr,
303                2 structureplace     fixed bin (35),
304                2 firstlabel         ptr,
305                2 nextproc           ptr;
306 
307      dcl     1 withnode             based,
308                2 header             like blocknodeheader,
309                2 wbase              fixed bin (35),
310                2 wdisp              fixed bin (35),
311                2 windirect          fixed bin (35),
312                2 wstrfile           fixed bin (35),
313                2 wstrindex          fixed bin (35),
314                2 wstrlength         fixed bin (35),
315                2 recordptr          ptr;
316 
317      dcl     (procblock             init (0),               /* blocktype */
318              withblock              init (1)) int static options (constant);
319 
320      dcl     (statics               init (0),               /* vararea */
321              locals                 init (1)) int static options (constant);
322 
323 /* box for strings constants */
324 
325      dcl     1 alfabox              based,
326                2 next               ptr,
327                2 string             char (16);
328 
329 /* box for labels */
330 
331      dcl     1 labelblock           based,
332                2 number             fixed bin (35),
333                2 locinbytes         fixed bin (35),
334                2 next               ptr,
335                2 brother            ptr,
336                2 procnode           ptr,
337                2 dclfile            fixed bin (35),
338                2 dclline            fixed bin (35),
339                2 deffile            fixed bin (35),
340                2 defline            fixed bin (35),
341                2 references         ptr;
342 
343 /* box for references */
344 
345      dcl     1 reflist              based,
346                2 nextref            ptr,
347                2 refnbr             fixed bin (35),
348                2 refs               (25),
349                  3 filen            fixed bin (35),
350                  3 linen            fixed bin (35),
351                  3 sttmapindex      fixed bin (35),
352                  3 place            fixed bin (35);
353 
354 /* .... END INCLUDE FILE pascal_context_table.incl.pl1 */