mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 10:45:08 +02:00
* Fixed parsing of hints in alias types
git-svn-id: trunk@15063 -
This commit is contained in:
parent
332b67ecfb
commit
154b30b724
@ -117,6 +117,7 @@ type
|
||||
AParent: TPasElement): TPasElement;overload;
|
||||
function CreateElement(AClass: TPTreeElement; const AName: String;
|
||||
AParent: TPasElement; AVisibility: TPasMemberVisibility): TPasElement;overload;
|
||||
Function IsHint(Const S : String; AHint : TPasMemberHint) : Boolean;
|
||||
Function CheckHint(Element : TPasElement; ExpectSemiColon : Boolean) : TPasMemberHints;
|
||||
public
|
||||
Options : set of TPOptions;
|
||||
@ -331,30 +332,43 @@ begin
|
||||
Result:=ParseType(Parent,'');
|
||||
end;
|
||||
|
||||
Function TPasParser.IsHint(Const S : String; AHint : TPasMemberHint) : Boolean;
|
||||
|
||||
Var
|
||||
T : string;
|
||||
|
||||
begin
|
||||
T:=LowerCase(S);
|
||||
Result:=(T='deprecated');
|
||||
If Result then
|
||||
Ahint:=hDeprecated
|
||||
else
|
||||
begin
|
||||
Result:=(T='library');
|
||||
if Result then
|
||||
Ahint:=hLibrary
|
||||
else
|
||||
begin
|
||||
Result:=(T='platform');
|
||||
If result then
|
||||
AHint:=hPlatform;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
Function TPasParser.CheckHint(Element : TPasElement; ExpectSemiColon : Boolean) : TPasMemberHints;
|
||||
|
||||
Var
|
||||
Found : Boolean;
|
||||
|
||||
h : TPasMemberHint;
|
||||
|
||||
begin
|
||||
Result:=[];
|
||||
Repeat
|
||||
NextToken;
|
||||
Found:=CompareText(CurTokenString,'deprecated')=0;
|
||||
Found:=IsHint(CurTokenString,h);
|
||||
If Found then
|
||||
Include(Result,hDeprecated)
|
||||
else
|
||||
begin
|
||||
Found:=CompareText(CurTokenString,'library')=0;
|
||||
if Found then
|
||||
Include(Result,hLibrary)
|
||||
else
|
||||
begin
|
||||
Found:=CompareText(CurTokenString,'platform')=0;
|
||||
If Found then
|
||||
Include(Result,hPlatform);
|
||||
end;
|
||||
end;
|
||||
Include(Result,h)
|
||||
Until Not Found;
|
||||
UnGetToken;
|
||||
If Assigned(Element) then
|
||||
@ -1180,7 +1194,8 @@ var
|
||||
Prefix : String;
|
||||
HadPackedModifier : Boolean; // 12/04/04 - Dave - Added
|
||||
IsBitPacked : Boolean;
|
||||
|
||||
H : TPasMemberHint;
|
||||
|
||||
begin
|
||||
TypeName := CurTokenString;
|
||||
ExpectToken(tkEqual);
|
||||
@ -1248,7 +1263,7 @@ begin
|
||||
end
|
||||
else
|
||||
Prefix:='';
|
||||
if CurToken = tkSemicolon then
|
||||
if (CurToken = tkSemicolon) or IsHint(CurtokenString,h)then
|
||||
begin
|
||||
UngetToken;
|
||||
UngetToken;
|
||||
@ -1276,7 +1291,8 @@ begin
|
||||
Result.Free;
|
||||
raise;
|
||||
end;
|
||||
end else
|
||||
end
|
||||
else
|
||||
begin
|
||||
UngetToken;
|
||||
UngetToken;
|
||||
|
Loading…
Reference in New Issue
Block a user