DEADSOFTWARE

Remove batch
[gpcp-linux.git] / gpcp / PeUtilForJVM.cp
1 (* ============================================================ *)
2 (* PeUtil is the module which writes PE files using the *)
3 (* managed interface. *)
4 (* Copyright (c) John Gough 1999, 2000. *)
5 (* ============================================================ *)
6 (* ============================================================ *)
7 (* THIS IS THE EMPTY VERSION, THAT IS REQUIRED TO BOOTSTRAP *)
8 (* THE JVM VERSION WITHOUT THE MSCORLIB ASSEMBLY AVAILABLE. *)
9 (* ============================================================ *)
10 (* ============================================================ *)
11
12 MODULE PeUtil;
13
14 IMPORT
15 GPCPcopyright,
16 Mu := MsilUtil,
17 Id := IdDesc,
18 Lv := LitValue,
19 Sy := Symbols,
20 Ty := TypeDesc;
21
22 (* ============================================================ *)
23
24 TYPE PeFile* = POINTER TO RECORD (Mu.MsilFile)
25 (* Fields inherited from MsilFile *
26 * srcS* : LitValue.CharOpen; (* source file name *)
27 * outN* : LitValue.CharOpen; (* output file name *)
28 * proc* : ProcInfo;
29 *)
30 END;
31
32 (* ============================================================ *)
33 (* Constructor Method *)
34 (* ============================================================ *)
35
36 PROCEDURE newPeFile*(IN nam : ARRAY OF CHAR; isDll : BOOLEAN) : PeFile;
37 BEGIN
38 RETURN NIL;
39 END newPeFile;
40
41 (* ============================================================ *)
42
43 PROCEDURE (t : PeFile)fileOk*() : BOOLEAN;
44 BEGIN
45 RETURN FALSE;
46 END fileOk;
47
48 (* ============================================================ *)
49
50 PROCEDURE (os : PeFile)MkNewProcInfo*(proc : Sy.Scope);
51 BEGIN
52 END MkNewProcInfo;
53
54 (* ============================================================ *)
55
56 PROCEDURE (os : PeFile)newLabel*() : Mu.Label;
57 BEGIN
58 RETURN NIL;
59 END newLabel;
60
61 (* ============================================================ *)
62 (* Exported Methods *)
63 (* ============================================================ *)
64
65 PROCEDURE (os : PeFile)MethodDecl*(attr : SET; proc : Id.Procs);
66 END MethodDecl;
67
68 (* ============================================================ *)
69
70 PROCEDURE (os : PeFile)ExternList*();
71 END ExternList;
72
73 (* ============================================================ *)
74
75 PROCEDURE (os : PeFile)DefLab*(l : Mu.Label);
76 END DefLab;
77
78 (* -------------------------------------------- *)
79
80 PROCEDURE (os : PeFile)DefLabC*(l : Mu.Label; IN c : ARRAY OF CHAR);
81 END DefLabC;
82
83 (* ============================================================ *)
84
85 PROCEDURE (os : PeFile)Code*(code : INTEGER);
86 END Code;
87
88 (* -------------------------------------------- *)
89
90 PROCEDURE (os : PeFile)CodeI*(code,int : INTEGER);
91 END CodeI;
92
93 (* -------------------------------------------- *)
94
95 PROCEDURE (os : PeFile)CodeT*(code : INTEGER; type : Sy.Type);
96 END CodeT;
97
98 (* -------------------------------------------- *)
99
100 PROCEDURE (os : PeFile)CodeTn*(code : INTEGER; type : Sy.Type);
101 END CodeTn;
102
103 (* -------------------------------------------- *)
104
105 PROCEDURE (os : PeFile)CodeL*(code : INTEGER; long : LONGINT);
106 END CodeL;
107
108 (* -------------------------------------------- *)
109
110 PROCEDURE (os : PeFile)CodeR*(code : INTEGER; real : REAL);
111 END CodeR;
112
113 (* -------------------------------------------- *)
114
115 PROCEDURE (os : PeFile)CodeLb*(code : INTEGER; labl : Mu.Label);
116 END CodeLb;
117
118 (* ============================================================ *)
119
120 PROCEDURE (os : PeFile)StaticCall*(s : INTEGER; d : INTEGER);
121 END StaticCall;
122
123 (* -------------------------------------------- *)
124
125 PROCEDURE (os : PeFile)CodeS*(code : INTEGER; str : INTEGER);
126 END CodeS;
127
128 (* ============================================================ *)
129
130 PROCEDURE (os : PeFile)Try*();
131 END Try;
132
133 (* -------------------------------------------- *)
134
135 PROCEDURE (os : PeFile)Catch*(proc : Id.Procs);
136 END Catch;
137
138 (* -------------------------------------------- *)
139
140 PROCEDURE (os : PeFile)CloseCatch*();
141 END CloseCatch;
142
143 (* -------------------------------------------- *)
144
145 PROCEDURE (os : PeFile)CopyCall*(typ : Ty.Record);
146 END CopyCall;
147
148 (* -------------------------------------------- *)
149
150 PROCEDURE (os : PeFile)PushStr*(IN str : ARRAY OF CHAR);
151 END PushStr;
152
153 (* ============================================================ *)
154
155 PROCEDURE (os : PeFile)CallIT*(code : INTEGER;
156 proc : Id.Procs;
157 type : Ty.Procedure);
158 END CallIT;
159
160 (* ============================================================ *)
161
162 PROCEDURE (os : PeFile)CallCT*(proc : Id.Procs;
163 type : Ty.Procedure);
164 END CallCT;
165
166 (* ============================================================ *)
167
168 PROCEDURE (os : PeFile)CallDelegate*(typ : Ty.Procedure);
169 END CallDelegate;
170
171 (* ============================================================ *)
172
173 PROCEDURE (os : PeFile)PutGetS*(code : INTEGER;
174 blk : Id.BlkId;
175 fId : Id.VarId);
176 END PutGetS;
177
178 (* -------------------------------------------- *)
179
180 PROCEDURE (os : PeFile)GetValObj*(code : INTEGER; ptrT : Ty.Pointer);
181 END GetValObj;
182
183 (* -------------------------------------------- *)
184
185 PROCEDURE (os : PeFile)PutGetXhr*(code : INTEGER;
186 proc : Id.Procs;
187 locl : Id.LocId);
188 END PutGetXhr;
189
190 (* -------------------------------------------- *)
191
192 PROCEDURE (os : PeFile)PutGetF*(code : INTEGER;
193 fId : Id.FldId);
194 END PutGetF;
195
196 (* ============================================================ *)
197 (* ============================================================ *)
198
199 PROCEDURE (os : PeFile)MkNewRecord*(typ : Ty.Record);
200 END MkNewRecord;
201
202 (* ============================================================ *)
203 (* ============================================================ *)
204
205 PROCEDURE (os : PeFile)MkNewProcVal*(p : Sy.Idnt; (* src Proc *)
206 t : Sy.Type); (* dst Type *)
207 END MkNewProcVal;
208
209 (* ============================================================ *)
210
211 PROCEDURE (os : PeFile)CallSuper*(rTp : Ty.Record;
212 prc : Id.PrcId);
213 END CallSuper;
214
215 (* ============================================================ *)
216
217 PROCEDURE (os : PeFile)InitHead*(rTp : Ty.Record;
218 prc : Id.PrcId);
219 END InitHead;
220
221 (* ============================================================ *)
222
223 PROCEDURE (os : PeFile)CopyHead*(typ : Ty.Record);
224 END CopyHead;
225
226 (* ============================================================ *)
227
228 PROCEDURE (os : PeFile)MarkInterfaces*(IN seq : Sy.TypeSeq);
229 END MarkInterfaces;
230
231 (* ============================================================ *)
232
233 PROCEDURE (os : PeFile)MainHead*(xAtt : SET);
234 END MainHead;
235
236 PROCEDURE (os : PeFile)SubSys*(xAtt : SET);
237 END SubSys;
238
239 (* ============================================================ *)
240
241 PROCEDURE (os : PeFile)StartBoxClass*(rec : Ty.Record;
242 att : SET;
243 blk : Id.BlkId);
244 END StartBoxClass;
245
246
247 PROCEDURE (os : PeFile)MainTail*();
248 END MainTail;
249
250 (* ------------------------------------------------------------ *)
251
252 PROCEDURE (os : PeFile)MethodTail*(id : Id.Procs);
253 END MethodTail;
254
255 (* ------------------------------------------------------------ *)
256
257 PROCEDURE (os : PeFile)ClinitTail*();
258 END ClinitTail;
259
260 (* ------------------------------------------------------------ *)
261
262 PROCEDURE (os : PeFile)CopyTail*();
263 END CopyTail;
264
265 (* ------------------------------------------------------------ *)
266
267 PROCEDURE (os : PeFile)InitTail*(typ : Ty.Record);
268 END InitTail;
269
270 (* ============================================================ *)
271
272 PROCEDURE (os : PeFile)ClinitHead*();
273 END ClinitHead;
274
275 (* ============================================================ *)
276
277 PROCEDURE (os : PeFile)EmitField*(id : Id.AbVar; att : SET);
278 END EmitField;
279
280 (* ============================================================ *)
281
282 PROCEDURE (os : PeFile)EmitEventMethods*(id : Id.AbVar);
283 END EmitEventMethods;
284
285 (* ============================================================ *)
286
287 PROCEDURE (os : PeFile)MkAndLinkDelegate*(dl : Sy.Idnt;
288 id : Sy.Idnt;
289 ty : Sy.Type;
290 isA : BOOLEAN);
291 END MkAndLinkDelegate;
292
293 (* ============================================================ *)
294 (* ============================================================ *)
295
296 PROCEDURE (os : PeFile)EmitPTypeBody*(tId : Id.TypId);
297 END EmitPTypeBody;
298
299 (* ============================================================ *)
300 (* End of Procedure Variable and Event Stuff *)
301 (* ============================================================ *)
302
303 PROCEDURE (os : PeFile)Line*(nm : INTEGER),EMPTY;
304
305 (* ============================================================ *)
306
307 PROCEDURE (os : PeFile)LoadType*(id : Sy.Idnt);
308 END LoadType;
309
310 (* ============================================================ *)
311
312 PROCEDURE (os : PeFile)Finish*();
313 END Finish;
314
315 (* ============================================================ *)
316
317 PROCEDURE (os : PeFile)RefRTS*();
318 END RefRTS;
319
320 (* ============================================================ *)
321
322 PROCEDURE (os : PeFile)StartNamespace*(nm : Lv.CharOpen);
323 END StartNamespace;
324
325 (* ============================================================ *)
326
327 PROCEDURE (os : PeFile)MkBodyClass*(mod : Id.BlkId);
328 END MkBodyClass;
329
330 (* ============================================================ *)
331
332 PROCEDURE (os : PeFile)ClassHead*(attSet : SET;
333 thisRc : Ty.Record;
334 superT : Ty.Record);
335 END ClassHead;
336
337 (* ============================================================ *)
338
339 PROCEDURE (os : PeFile)CheckNestedClass*(typ : Ty.Record;
340 scp : Sy.Scope;
341 rNm : Lv.CharOpen);
342 END CheckNestedClass;
343
344 (* ============================================================ *)
345
346 PROCEDURE (os : PeFile)ClassTail*();
347 END ClassTail;
348
349 (* ============================================================ *)
350
351 PROCEDURE (os : PeFile)MkRecX*(t : Ty.Record; s : Sy.Scope);
352 END MkRecX;
353
354 (* ============================================================ *)
355
356 PROCEDURE (os : PeFile)MkPtrX*(t : Ty.Pointer);
357 END MkPtrX;
358
359 (* ============================================================ *)
360
361 PROCEDURE (os : PeFile)MkArrX*(t : Ty.Array);
362 END MkArrX;
363
364 (* ============================================================ *)
365
366 PROCEDURE (os : PeFile)MkBasX*(t : Ty.Base);
367 END MkBasX;
368
369 (* ============================================================ *)
370
371 PROCEDURE (os : PeFile)MkEnuX*(t : Ty.Enum; s : Sy.Scope);
372 END MkEnuX;
373
374 (* ============================================================ *)
375
376 PROCEDURE (os : PeFile)NumberParams*(pId : Id.Procs;
377 pTp : Ty.Procedure);
378 END NumberParams;
379
380 (* ============================================================ *)
381
382 PROCEDURE (os : PeFile)SwitchHead*(num : INTEGER);
383 END SwitchHead;
384
385 PROCEDURE (os : PeFile)SwitchTail*();
386 END SwitchTail;
387
388 PROCEDURE (os : PeFile)LstLab*(l : Mu.Label);
389 END LstLab;
390
391 (* ============================================================ *)
392 (* ============================================================ *)
393 END PeUtil.
394 (* ============================================================ *)
395 (* ============================================================ *)
396