Browse Source

* Enable multiline strings in delphi mode

Michaël Van Canneyt 1 year ago
parent
commit
f3d93a47de
2 changed files with 17 additions and 1 deletions
  1. 1 1
      packages/fcl-passrc/src/pscanner.pp
  2. 16 0
      packages/fcl-passrc/tests/tcscanner.pas

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

@@ -1272,7 +1272,7 @@ const
      msOut,msDefaultPara,msDuplicateNames,msHintDirective,
      msOut,msDefaultPara,msDuplicateNames,msHintDirective,
      msProperty,msDefaultInline,msExcept,msAdvancedRecords,msTypeHelpers,
      msProperty,msDefaultInline,msExcept,msAdvancedRecords,msTypeHelpers,
      msPrefixedAttributes,msArrayOperators,msImplicitFunctionSpec,
      msPrefixedAttributes,msArrayOperators,msImplicitFunctionSpec,
-     msFunctionReferences,msAnonymousFunctions
+     msFunctionReferences,msAnonymousFunctions,msDelphiMultiLineStrings
      ];
      ];
 
 
   DelphiUnicodeModeSwitches = delphimodeswitches + [msSystemCodePage,msDefaultUnicodestring];
   DelphiUnicodeModeSwitches = delphimodeswitches + [msSystemCodePage,msDefaultUnicodestring];

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

@@ -147,6 +147,7 @@ type
     procedure TestDelphiMultiLineTrailingGarbage2;
     procedure TestDelphiMultiLineTrailingGarbage2;
     procedure TestDelphiMultiLineTrailingGarbage3;
     procedure TestDelphiMultiLineTrailingGarbage3;
     procedure TestDelphiMultiLineEmbeddedQuotes;
     procedure TestDelphiMultiLineEmbeddedQuotes;
+    procedure TestDelphiMultiLineInDelphiMode;
     Procedure TestTextBlockDirective;
     Procedure TestTextBlockDirective;
     procedure TestNumber;
     procedure TestNumber;
     procedure TestChar;
     procedure TestChar;
@@ -1041,6 +1042,21 @@ begin
   AssertEquals('Correct string',SingleQuote+S1+sLineBreak+S2+sLineBreak+S3+SingleQuote,TestTokenString);
   AssertEquals('Correct string',SingleQuote+S1+sLineBreak+S2+sLineBreak+S3+SingleQuote,TestTokenString);
 end;
 end;
 
 
+procedure TTestScanner.TestDelphiMultiLineInDelphiMode;
+
+  var
+    S1,S2 : String;
+
+  begin
+    S1:='Line 1';
+    S2:='Line 2';
+    FMultiLine:='{$mode delphi}'+sLineBreak+CreateDelphiMultiLine([S1,S2]);
+    TestTokens([pscanner.tkComment, pscanner.tkLineEnding,pscanner.tkWhitespace,pscanner.tkString],FMultiLine);
+
+    AssertEquals('Correct string',SingleQuote+S1+sLineBreak+S2+SingleQuote,TestTokenString);
+
+end;
+
 
 
 procedure TTestScanner.TestDelphiMultiLine;
 procedure TTestScanner.TestDelphiMultiLine;