Browse Source

* $IFDEF also handles macros

git-svn-id: trunk@19997 -
michael 13 years ago
parent
commit
eb2b836b06
2 changed files with 10 additions and 1 deletions
  1. 2 1
      packages/fcl-passrc/src/pscanner.pp
  2. 8 0
      packages/fcl-passrc/tests/tcscanner.pas

+ 2 - 1
packages/fcl-passrc/src/pscanner.pp

@@ -1158,7 +1158,6 @@ Var
   ML : TMacroReader;
   ML : TMacroReader;
 
 
 begin
 begin
-//  Writeln('Handling macro ',FMacros[AIndex]);
   PushStackItem;
   PushStackItem;
   M:=FMacros.Objects[AIndex] as TMacroDef;
   M:=FMacros.Objects[AIndex] as TMacroDef;
   ML:=TMacroReader.Create(FCurFileName,M.Value);
   ML:=TMacroReader.Create(FCurFileName,M.Value);
@@ -1617,6 +1616,8 @@ begin
               begin
               begin
                 Param := UpperCase(Param);
                 Param := UpperCase(Param);
                 Index := Defines.IndexOf(Param);
                 Index := Defines.IndexOf(Param);
+                if Index < 0 then
+                  Index := Macros.IndexOf(Param);
                 if Index < 0 then
                 if Index < 0 then
                 begin
                 begin
                   PPSkipMode := ppSkipIfBranch;
                   PPSkipMode := ppSkipIfBranch;

+ 8 - 0
packages/fcl-passrc/tests/tcscanner.pas

@@ -184,6 +184,7 @@ type
     Procedure TestInclude2;
     Procedure TestInclude2;
     Procedure TestMacro1;
     Procedure TestMacro1;
     procedure TestMacro2;
     procedure TestMacro2;
+    procedure TestMacro3;
   end;
   end;
 
 
 implementation
 implementation
@@ -1281,6 +1282,13 @@ begin
   TestTokens([tkbegin,tkend,tkDot],'{$DEFINE MM:=begin end}'#13#10'MM .',True,False);
   TestTokens([tkbegin,tkend,tkDot],'{$DEFINE MM:=begin end}'#13#10'MM .',True,False);
 end;
 end;
 
 
+procedure TTestScanner.TestMacro3;
+begin
+  FScanner.SkipComments:=True;
+  FScanner.SkipWhiteSpace:=True;
+  TestTokens([tkof],'{$DEFINE MM:=begin end}'#13#10'{$IFDEF MM} of {$ELSE} in {$ENDIF}');
+end;
+