mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 20:59:42 +02:00
* Fix bug #30720, } is processed wrongly when scanning and PPIsSkipping
git-svn-id: trunk@34879 -
This commit is contained in:
parent
1f498123c6
commit
5d4f605a39
@ -1641,6 +1641,7 @@ var
|
||||
i: TToken;
|
||||
OldLength, SectionLength, NestingLevel, Index: Integer;
|
||||
begin
|
||||
result:=tkLineEnding;
|
||||
if TokenStr = nil then
|
||||
if not FetchLine then
|
||||
begin
|
||||
@ -2005,7 +2006,7 @@ begin
|
||||
begin
|
||||
if not(po_delphi in Options) and (TokenStr[0] = '{') then
|
||||
Inc(NestingLevel)
|
||||
else if TokenStr[0] = '}' then
|
||||
else if (TokenStr[0] = '}') and not PPIsSkipping then
|
||||
Dec(NestingLevel);
|
||||
Inc(TokenStr);
|
||||
end;
|
||||
|
@ -209,6 +209,7 @@ type
|
||||
Procedure TestDefine11;
|
||||
Procedure TestDefine12;
|
||||
Procedure TestDefine13;
|
||||
Procedure TestDefine14;
|
||||
Procedure TestInclude;
|
||||
Procedure TestInclude2;
|
||||
Procedure TestUnDefine1;
|
||||
@ -1396,6 +1397,26 @@ begin
|
||||
TestTokens([tkin],'{$IFDEF ALWAYS} }; ą è {$ELSE} in {$ENDIF}');
|
||||
end;
|
||||
|
||||
procedure TTestScanner.TestDefine14;
|
||||
Const
|
||||
Source = '{$ifdef NEVER_DEFINED}' +sLineBreak+
|
||||
'type'+sLineBreak+
|
||||
' TNPEventModel = ('+sLineBreak+
|
||||
' NPEventModelCarbon = 0,'+sLineBreak+
|
||||
' NPEventModelCocoa = 1'+sLineBreak+
|
||||
'}; // yes, this is an error... except this code should never be included.'+sLineBreak+
|
||||
'ą'+sLineBreak+
|
||||
'|'+sLineBreak+
|
||||
'{$endif}'+sLineBreak+
|
||||
''+sLineBreak+
|
||||
'begin'+sLineBreak+
|
||||
'end.'+sLineBreak;
|
||||
begin
|
||||
NewSource(Source,True);
|
||||
While FScanner.fetchToken<>tkEOF do
|
||||
|
||||
end;
|
||||
|
||||
procedure TTestScanner.TestInclude;
|
||||
begin
|
||||
FResolver.AddStream('myinclude.inc',TStringStream.Create('if true then'));
|
||||
|
Loading…
Reference in New Issue
Block a user