mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 05:00:12 +02:00
fcl-passrc: parser: dot after true,false,char,string
git-svn-id: trunk@41275 -
This commit is contained in:
parent
a387e0b9bb
commit
663ac37c1c
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user