From 53deaee37995a6d253ab9835e2d888da4071a625 Mon Sep 17 00:00:00 2001 From: michael Date: Sun, 31 Aug 2008 21:25:21 +0000 Subject: [PATCH] * Added support for interface delegation (Implements) git-svn-id: trunk@11677 - --- packages/fcl-passrc/src/pastree.pp | 6 +++++- packages/fcl-passrc/src/pparser.pp | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/fcl-passrc/src/pastree.pp b/packages/fcl-passrc/src/pastree.pp index 55dabcd212..e6bb6b1474 100644 --- a/packages/fcl-passrc/src/pastree.pp +++ b/packages/fcl-passrc/src/pastree.pp @@ -357,7 +357,7 @@ type function GetDeclaration(full : boolean) : string; override; public Args: TList; // List of TPasArgument objects - IndexValue, ReadAccessorName, WriteAccessorName, + IndexValue, ReadAccessorName, WriteAccessorName,ImplementsName, StoredAccessorName, DefaultValue: string; IsDefault, IsNodefault: Boolean; end; @@ -1428,7 +1428,11 @@ begin else S:=' '; If Full then + begin Result:=Name+S+': '+Result; + If (ImplementsName<>'') then + Result:=Result+' implements '+ImplementsName; + end; If IsDefault then Result:=Result+'; default' end; diff --git a/packages/fcl-passrc/src/pparser.pp b/packages/fcl-passrc/src/pparser.pp index 3aae62ac63..df8c64c674 100644 --- a/packages/fcl-passrc/src/pparser.pp +++ b/packages/fcl-passrc/src/pparser.pp @@ -1725,6 +1725,9 @@ begin if (CurToken = tkIdentifier) and (UpperCase(CurTokenText) = 'WRITE') then TPasProperty(Element).WriteAccessorName := GetAccessorName else + if (CurToken = tkIdentifier) and (UpperCase(CurTokenText) = 'IMPLEMENTS') then + TPasProperty(Element).ImplementsName := GetAccessorName + else // not write accessor will be recheck for another token UngetToken;