Browse Source

* Fix cvar;export; parsing

Michaël Van Canneyt 3 years ago
parent
commit
4dd01de381

+ 1 - 1
packages/fcl-passrc/src/pparser.pp

@@ -4677,7 +4677,7 @@ begin
   NextToken;
   if not (CurToken in [tkString,tkIdentifier]) then
     begin
-    if (CurToken=tkSemicolon) and (ExtMod in [vmExternal,vmPublic]) then
+    if (CurToken=tkSemicolon) and (ExtMod in [vmExternal,vmPublic,vmExport]) then
       exit;
     ParseExcSyntaxError;
     end;

+ 7 - 0
packages/fcl-passrc/tests/tcvarparser.pas

@@ -56,6 +56,7 @@ Type
     procedure TestVarExternalLibNoName;
     Procedure TestVarCVar;
     Procedure TestVarCVarExternal;
+    Procedure TestVarCVarExport;
     Procedure TestVarPublic;
     Procedure TestVarPublicName;
     Procedure TestVarDeprecatedExternalName;
@@ -395,6 +396,12 @@ begin
   AssertEquals('Variable modifiers',[vmcvar,vmexternal],TheVar.VarModifiers);
 end;
 
+procedure TTestVarParser.TestVarCVarExport;
+begin
+  ParseVar('integer; cvar; export','');
+  AssertEquals('Variable modifiers',[vmCVar,vmExport],TheVar.VarModifiers);
+end;
+
 procedure TTestVarParser.TestVarPublic;
 begin
   ParseVar('integer; public','');

+ 2 - 2
packages/fcl-passrc/tests/testpassrc.lpi

@@ -24,13 +24,13 @@
     </PublishOptions>
     <RunParams>
       <local>
-        <CommandLineParams Value="--suite=TTestScanner.TestObjCClass2"/>
+        <CommandLineParams Value="--suite=TTestVarParser.TestVarCVarExport"/>
       </local>
       <FormatVersion Value="2"/>
       <Modes Count="1">
         <Mode0 Name="default">
           <local>
-            <CommandLineParams Value="--suite=TTestScanner.TestObjCClass2"/>
+            <CommandLineParams Value="--suite=TTestVarParser.TestVarCVarExport"/>
           </local>
         </Mode0>
       </Modes>