public
procedure generate(members: tlist; output: ttextstream);
end;
implementation
uses members;
type
tcodegenerationvisitor = class (tmembervisitor)
private
foutput: ttextstream;
public
procedure visitfield(instance: tfield); override;
procedure visitmethod(instance: tmethod); override;
procedure visitproperty(instance: tproperty); override;
property output: ttextstream read foutput write foutput;
end;
{ tcodegenerationvisitor }
procedure tcodegenerationvisitor.visitfield(instance: tfield);
begin
output.writelnfmt(' %s: %s;', [instance.name, instance.dataname]);
end;
procedure tcodegenerationvisitor.visitmethod(instance: tmethod);
var
mkstr, dtstr: string;