fcl-passrc: parser: dot after true,false,char,string

git-svn-id: trunk@41275 -
This commit is contained in:
Mattias Gaertner 2019-02-10 09:59:04 +00:00
parent a387e0b9bb
commit 663ac37c1c
2 changed files with 54 additions and 1 deletions

View File

@ -5955,7 +5955,10 @@ begin
end;
tkEOF:
CheckToken(tkend);
tkAt,tkAtAt,tkBraceOpen,tkIdentifier,tkNumber,tkSquaredBraceOpen,tkMinus,tkPlus,tkinherited:
tkAt,tkAtAt,
tkIdentifier,tkNumber,tkString,tkfalse,tktrue,tkChar,
tkBraceOpen,tkSquaredBraceOpen,
tkMinus,tkPlus,tkinherited:
begin
// Do not check this here:
// if (CurToken=tkAt) and not (msDelphi in CurrentModeswitches) then

View File

@ -915,6 +915,8 @@ type
Procedure TestTypeHelper_EnumDotValueFail;
Procedure TestTypeHelper_EnumHelperDotProcFail;
Procedure TestTypeHelper_Enumerator;
Procedure TestTypeHelper_String;
Procedure TestTypeHelper_Boolean;
Procedure TestTypeHelper_Constructor_NewInstance;
Procedure TestTypeHelper_InterfaceFail;
@ -17079,6 +17081,54 @@ begin
ParseProgram;
end;
procedure TTestResolver.TestTypeHelper_String;
begin
StartProgram(false);
Add([
'{$modeswitch typehelpers}',
'type',
' TStringHelper = type helper for String',
' procedure DoIt;',
' end;',
' TCharHelper = type helper for char',
' procedure Fly;',
' end;',
'procedure TStringHelper.DoIt;',
'begin',
' Self[1]:=Self[2];',
'end;',
'procedure TCharHelper.Fly;',
'begin',
' Self:=''c'';',
' Self:=Self;',
'end;',
'begin',
' ''abc''.DoIt;',
' ''xyz''.DoIt();',
' ''c''.Fly;',
'']);
ParseProgram;
end;
procedure TTestResolver.TestTypeHelper_Boolean;
begin
StartProgram(false);
Add([
'{$modeswitch typehelpers}',
'type',
' THelper = type helper for boolean',
' procedure DoIt;',
' end;',
'procedure THelper.DoIt;',
'begin',
' Self:=not Self;',
'end;',
'begin',
' false.DoIt;',
' true.DoIt();']);
ParseProgram;
end;
procedure TTestResolver.TestTypeHelper_Constructor_NewInstance;
var
aMarker: PSrcMarker;