DEADSOFTWARE

Remove batch
[gpcp-linux.git] / gpcp / ClassMaker.cp
1 (* ============================================================ *)
2 (* ClassMaker is the abstract class for all code emitters. *)
3 (* The method Target.Select(mod, <name>) will allocate a *)
4 (* ClassMaker object of an appropriate kind, and will call *)
5 (* classMaker.Emit() *)
6 (* Copyright (c) John Gough 1999, 2000. *)
7 (* ============================================================ *)
9 MODULE ClassMaker;
11 IMPORT
12 GPCPcopyright,
13 Console,
14 IdDesc;
16 (* ============================================================ *)
18 TYPE
19 ClassEmitter* = POINTER TO ABSTRACT
20 RECORD
21 mod* : IdDesc.BlkId;
22 END;
24 Assembler* = POINTER TO ABSTRACT
25 RECORD
26 END;
28 (* ============================================================ *)
30 PROCEDURE (maker : ClassEmitter)Init*(),NEW,EMPTY;
31 PROCEDURE (maker : ClassEmitter)ObjectFeatures*(),NEW,EMPTY;
32 PROCEDURE (maker : ClassEmitter)Emit*(),NEW,ABSTRACT;
33 PROCEDURE (asmbl : Assembler)Assemble*(),NEW,EMPTY;
35 (* ============================================================ *)
36 END ClassMaker.
37 (* ============================================================ *)