浏览代码

fcl-passrc: allow to generate implementations of class methods and class constructors/destructors (new field IsClassMethod in TPasProcedureImpl and related code in TPasWriter.WriteProcImpl)

git-svn-id: trunk@37038 -
maciej-izak 8 年之前
父节点
当前提交
9c6b78f11e
共有 2 个文件被更改,包括 3 次插入0 次删除
  1. 1 0
      packages/fcl-passrc/src/pastree.pp
  2. 2 0
      packages/fcl-passrc/src/paswrite.pp

+ 1 - 0
packages/fcl-passrc/src/pastree.pp

@@ -1084,6 +1084,7 @@ Type
     ProcType: TPasProcedureType;
     ProcType: TPasProcedureType;
     Locals: TFPList;
     Locals: TFPList;
     Body: TPasImplBlock;
     Body: TPasImplBlock;
+    IsClassMethod: boolean;
   end;
   end;
 
 
   { TPasConstructorImpl - used by mkxmlrpc, not by pparser }
   { TPasConstructorImpl - used by mkxmlrpc, not by pparser }

+ 2 - 0
packages/fcl-passrc/src/paswrite.pp

@@ -387,6 +387,8 @@ var
   i: Integer;
   i: Integer;
 begin
 begin
   PrepareDeclSection('');
   PrepareDeclSection('');
+  if AProc.IsClassMethod then
+    wrt('class ');
   wrt(AProc.TypeName + ' ');
   wrt(AProc.TypeName + ' ');
 
 
   if AProc.Parent.ClassType = TPasClassType then
   if AProc.Parent.ClassType = TPasClassType then