find declaration now supports class interfaces

git-svn-id: trunk@3144 -
This commit is contained in:
mattias 2002-08-18 16:49:56 +00:00
parent 82870643ca
commit 6c2a71138f

View File

@ -631,14 +631,14 @@ function TCodeCompletionCodeTool.CompleteProperty(
property Items[Index1, Index2: integer]: integer read GetItems; default; property Items[Index1, Index2: integer]: integer read GetItems; default;
property X: integer index 1 read GetCoords write SetCoords stored IsStored; property X: integer index 1 read GetCoords write SetCoords stored IsStored;
property C: char read GetC stored False default 'A'; property C: char read GetC stored False default 'A';
property Col8: ICol8 read FCol8 write FCol8 implements ICol8; property Col8: ICol8 read FCol8 write FCol8 implements ICol8, IColor;
property specifiers without parameters: property specifiers without parameters:
;nodefault, ;default ;nodefault, ;default
property specifiers with parameters: property specifiers with parameters:
index <constant>, read <id>, write <id>, implements <id>, index <id or number>, read <id>, write <id>, stored <id>,
stored <id>, default <constant> default <constant>, implements <id>[,<id>...]
} }
type type
TPropPart = (ppName, // property name TPropPart = (ppName, // property name
@ -757,8 +757,8 @@ var AccessParam, AccessParamPrefix, CleanAccessFunc, AccessFunc,
procedure ReadOptionalSpecifiers; procedure ReadOptionalSpecifiers;
begin begin
while (CurPos.StartPos<PropNode.EndPos) and (not AtomIsChar(';')) while (CurPos.StartPos<PropNode.EndPos)
and (not UpAtomIs('END')) do begin and (not (CurPos.Flag in [cafSemicolon,cafEnd])) do begin
if UpAtomIs('STORED') then begin if UpAtomIs('STORED') then begin
ReadSimpleSpec(ppStoredWord,ppStored); ReadSimpleSpec(ppStoredWord,ppStored);
end else if UpAtomIs('DEFAULT') then begin end else if UpAtomIs('DEFAULT') then begin
@ -772,13 +772,21 @@ var AccessParam, AccessParamPrefix, CleanAccessFunc, AccessFunc,
Parts[ppDefault].StartPos:=CurPos.StartPos; Parts[ppDefault].StartPos:=CurPos.StartPos;
ReadConstant(true,false,[]); ReadConstant(true,false,[]);
Parts[ppDefault].EndPos:=LastAtoms.GetValueAt(0).EndPos; Parts[ppDefault].EndPos:=LastAtoms.GetValueAt(0).EndPos;
end else if UpAtomIs('IMPLEMENTS') then begin
ReadSimpleSpec(ppImplementsWord,ppImplements);
end else if UpAtomIs('NODEFAULT') then begin end else if UpAtomIs('NODEFAULT') then begin
if Parts[ppNoDefaultWord].StartPos>=1 then if Parts[ppNoDefaultWord].StartPos>=1 then
RaiseException(ctsNodefaultSpecifierDefinedTwice); RaiseException(ctsNodefaultSpecifierDefinedTwice);
Parts[ppNoDefaultWord]:=CurPos; Parts[ppNoDefaultWord]:=CurPos;
ReadNextAtom; ReadNextAtom;
end else if UpAtomIs('IMPLEMENTS') then begin
ReadSimpleSpec(ppImplementsWord,ppImplements);
while CurPos.Flag=cafComma do begin
ReadNextAtom;
AtomIsIdentifier(true);
if WordIsPropertySpecifier.DoItUpperCase(UpperSrc,CurPos.StartPos,
CurPos.EndPos-CurPos.StartPos) then
RaiseExceptionFmt(ctsIndexParameterExpectedButAtomFound,[GetAtom]);
ReadNextAtom;
end;
end else end else
RaiseExceptionFmt(ctsStrExpectedButAtomFound,[';',GetAtom]); RaiseExceptionFmt(ctsStrExpectedButAtomFound,[';',GetAtom]);
end; end;