Jelajahi Sumber

* PChar -> PAnsiChar

Michaël Van Canneyt 2 tahun lalu
induk
melakukan
49e41873b0

+ 2 - 2
packages/regexpr/examples/demowd.pp

@@ -9,7 +9,7 @@
 {$h+}
 {$h+}
 uses cwstring,uregexpr;
 uses cwstring,uregexpr;
 
 
-Function ReplaceRegExpr(ARegExpr, AInputStr, AReplaceStr : Unicodestring) : string;
+Function ReplaceRegExpr(ARegExpr, AInputStr, AReplaceStr : Unicodestring) : AnsiString;
 
 
 begin
 begin
   with TRegExpr.Create do
   with TRegExpr.Create do
@@ -24,4 +24,4 @@ end;
 
 
 begin    
 begin    
   Writeln(ReplaceRegExpr('\w+', UTF8Decode('test слово ŕáćéí ϸϬϛ ュユョ'), '<$0>'));
   Writeln(ReplaceRegExpr('\w+', UTF8Decode('test слово ŕáćéí ϸϬϛ ュユョ'), '<$0>'));
-end.
+end.

+ 2 - 2
packages/regexpr/examples/testreg1.pp

@@ -9,7 +9,7 @@ uses
 var
 var
    r         : tregexprengine;
    r         : tregexprengine;
    index,len : longint;
    index,len : longint;
-   S         : String;
+   S         : AnsiString;
    Dest	     : AnsiString;
    Dest	     : AnsiString;
 
 
 procedure do_error(i : longint);
 procedure do_error(i : longint);
@@ -286,7 +286,7 @@ begin
      do_error(103);
      do_error(103);
    DestroyregExprEngine(r);
    DestroyregExprEngine(r);
 
 
-   { start and end of string handling }
+   { start and end of AnsiString handling }
    initok:=GenerateRegExprEngine('^TEST1(ANOTHER)$',[],r);
    initok:=GenerateRegExprEngine('^TEST1(ANOTHER)$',[],r);
    if not initok then
    if not initok then
      do_error(103);
      do_error(103);

+ 29 - 29
packages/regexpr/src/old/regexpr.pp

@@ -48,7 +48,7 @@ unit regexpr;
     { some procedures return pregexprentry but programs which   }
     { some procedures return pregexprentry but programs which   }
     { use this unit shouldn't access this data structures        }
     { use this unit shouldn't access this data structures        }
     type
     type
-       tcharset = set of char;
+       tcharset = set of AnsiChar;
        tregexprentrytype = (ret_charset,ret_or,
        tregexprentrytype = (ret_charset,ret_or,
           ret_illegalend,ret_backtrace,ret_startline,
           ret_illegalend,ret_backtrace,ret_startline,
           ret_endline,ret_pattern);
           ret_endline,ret_pattern);
@@ -101,11 +101,11 @@ unit regexpr;
          @param(RegExprEngine The actual encoded version of the regular expression)
          @param(RegExprEngine The actual encoded version of the regular expression)
          @returns(true if success, otherwise syntax error in compiling regular expression)
          @returns(true if success, otherwise syntax error in compiling regular expression)
      }
      }
-     function GenerateRegExprEngine(regexpr : pchar;flags : tregexprflags;var RegExprEngine: TRegExprEngine): boolean;
+     function GenerateRegExprEngine(regexpr : PAnsiChar;flags : tregexprflags;var RegExprEngine: TRegExprEngine): boolean;
 
 
 {$IFDEF FPC}
 {$IFDEF FPC}
     {** Backward compatibility routine }
     {** Backward compatibility routine }
-     function GenerateRegExprEngine(regexpr : pchar;flags : tregexprflags): TREGExprEngine;
+     function GenerateRegExprEngine(regexpr : PAnsiChar;flags : tregexprflags): TREGExprEngine;
 {$ENDIF}
 {$ENDIF}
 
 
      {** Frees all up resources used for the encoded regular expression }
      {** Frees all up resources used for the encoded regular expression }
@@ -119,13 +119,13 @@ unit regexpr;
         @param(len length of the match)
         @param(len length of the match)
         @returns(true if there was a match, otherwise false)
         @returns(true if there was a match, otherwise false)
      }
      }
-     function RegExprPos(RegExprEngine : TRegExprEngine;p : pchar;var index,len : longint) : boolean;
+     function RegExprPos(RegExprEngine : TRegExprEngine;p : PAnsiChar;var index,len : longint) : boolean;
 
 
      function RegExprReplaceAll(RegExprEngine : TRegExprEngine;const src,newstr : ansistring;var dest : ansistring) : sizeint;
      function RegExprReplaceAll(RegExprEngine : TRegExprEngine;const src,newstr : ansistring;var dest : ansistring) : sizeint;
 
 
      { This function Escape known regex chars and place the result on Return. If something went wrong the
      { This function Escape known regex chars and place the result on Return. If something went wrong the
        function will return false. }
        function will return false. }
-     function RegExprEscapeStr (const S : string) : string;
+     function RegExprEscapeStr (const S : AnsiString) : AnsiString;
 
 
   implementation
   implementation
 
 
@@ -145,7 +145,7 @@ unit regexpr;
 
 
     const
     const
 
 
-      typ2str : array[tregexprentrytype] of string =
+      typ2str : array[tregexprentrytype] of AnsiString =
       (
       (
         'ret_charset',
         'ret_charset',
         'ret_or',
         'ret_or',
@@ -158,7 +158,7 @@ unit regexpr;
 
 
 
 
      { Dumps all the next elements of a tree }
      { Dumps all the next elements of a tree }
-     procedure dumptree(space: string; regentry: pregexprentry);
+     procedure dumptree(space: AnsiString; regentry: pregexprentry);
       begin
       begin
         while assigned(regentry) do
         while assigned(regentry) do
           begin
           begin
@@ -219,7 +219,7 @@ unit regexpr;
          patlength:=count;
          patlength:=count;
        end;
        end;
 
 
-     function GenerateRegExprEngine(regexpr : pchar;flags : tregexprflags; var RegExprEngine:TRegExprEngine) : boolean;
+     function GenerateRegExprEngine(regexpr : PAnsiChar;flags : tregexprflags; var RegExprEngine:TRegExprEngine) : boolean;
 
 
        var
        var
           first : pregexprentry;
           first : pregexprentry;
@@ -232,13 +232,13 @@ unit regexpr;
          end;
          end;
 
 
        var
        var
-          currentpos : pchar;
+          currentpos : PAnsiChar;
           error : boolean;
           error : boolean;
 
 
        procedure readchars(var chars: tcharset);
        procedure readchars(var chars: tcharset);
 
 
          var
          var
-            c1 : char;
+            c1 : AnsiChar;
 
 
          begin
          begin
             chars:=[];
             chars:=[];
@@ -404,10 +404,10 @@ unit regexpr;
           elements. In case of error, sets error to true and returns false,
           elements. In case of error, sets error to true and returns false,
           otherwise returns true and set minoccurs and maxoccurs accordingly
           otherwise returns true and set minoccurs and maxoccurs accordingly
           (-1 if not present). *)
           (-1 if not present). *)
-       function parseoccurences(var currentpos: pchar; var minoccurs,maxoccurs: integer): boolean;
+       function parseoccurences(var currentpos: PAnsiChar; var minoccurs,maxoccurs: integer): boolean;
          var
          var
-          minOccursString: string;
-          maxOccursString: string;
+          minOccursString: AnsiString;
+          maxOccursString: AnsiString;
          begin
          begin
            parseoccurences:=false;
            parseoccurences:=false;
            minOccurs:=-1;
            minOccurs:=-1;
@@ -449,7 +449,7 @@ unit regexpr;
                 end;
                 end;
                 if currentpos^= '}' then
                 if currentpos^= '}' then
                  begin
                  begin
-                   { If the length of the string is zero, then there is
+                   { If the length of the AnsiString is zero, then there is
                      no upper bound. }
                      no upper bound. }
                    if length(maxOccursString) > 0 then
                    if length(maxOccursString) > 0 then
                       Val(maxOccursString,maxOccurs)
                       Val(maxOccursString,maxOccurs)
@@ -854,7 +854,7 @@ unit regexpr;
 
 
 
 
 {$IFDEF FPC}
 {$IFDEF FPC}
-    function GenerateRegExprEngine(regexpr : pchar;flags : tregexprflags): TREGExprEngine;
+    function GenerateRegExprEngine(regexpr : PAnsiChar;flags : tregexprflags): TREGExprEngine;
     var
     var
      r: TRegExprEngine;
      r: TRegExprEngine;
     begin
     begin
@@ -880,18 +880,18 @@ unit regexpr;
           regexpr.DestroyList:=nil;
           regexpr.DestroyList:=nil;
        end;
        end;
 
 
-     function RegExprPos(regexprengine : TRegExprEngine;p : pchar;var index,len : longint) : boolean;
+     function RegExprPos(regexprengine : TRegExprEngine;p : PAnsiChar;var index,len : longint) : boolean;
 
 
        var
        var
-          lastpos : pchar;
-          firstpos: pchar;
+          lastpos : PAnsiChar;
+          firstpos: PAnsiChar;
 
 
        { Does the actual search of the data - return true if the term was found }
        { Does the actual search of the data - return true if the term was found }
-       function dosearch(regexprentry : pregexprentry;pos : pchar) : boolean;
+       function dosearch(regexprentry : pregexprentry;pos : PAnsiChar) : boolean;
        var
        var
           found: boolean;
           found: boolean;
           checkvalue: boolean;
           checkvalue: boolean;
-          savedpos: pchar;
+          savedpos: PAnsiChar;
           counter: word;
           counter: word;
 
 
          begin
          begin
@@ -1119,11 +1119,11 @@ unit regexpr;
   function RegExprReplaceAll(RegExprEngine : TRegExprEngine;const src,newstr : ansistring;var dest : ansistring) : sizeint;
   function RegExprReplaceAll(RegExprEngine : TRegExprEngine;const src,newstr : ansistring;var dest : ansistring) : sizeint;
     var
     var
       index,len : longint;
       index,len : longint;
-      pos,lastpos : pchar;
+      pos,lastpos : PAnsiChar;
       first : boolean;
       first : boolean;
       oldlength : PtrInt;
       oldlength : PtrInt;
     begin
     begin
-      pos:=pchar(src);
+      pos:=PAnsiChar(src);
       lastpos:=nil;
       lastpos:=nil;
       first:=true;
       first:=true;
       Result:=0;
       Result:=0;
@@ -1134,7 +1134,7 @@ unit regexpr;
           inc(pos,index);
           inc(pos,index);
           if (lastpos = nil) or (pos>lastpos) then
           if (lastpos = nil) or (pos>lastpos) then
             begin
             begin
-              if lastpos = nil then lastpos := pchar(src);
+              if lastpos = nil then lastpos := PAnsiChar(src);
               { copy skipped part }
               { copy skipped part }
 
 
               { because we cheat with SetLength a SetLength(...,0) isn't what we want
               { because we cheat with SetLength a SetLength(...,0) isn't what we want
@@ -1144,13 +1144,13 @@ unit regexpr;
                 begin
                 begin
                   SetLength(dest,(pos-lastpos));
                   SetLength(dest,(pos-lastpos));
                   { cast dest here because it is already unified }
                   { cast dest here because it is already unified }
-                  move(lastpos^,char(dest[1]),pos-lastpos);
+                  move(lastpos^,AnsiChar(dest[1]),pos-lastpos);
                 end
                 end
               else
               else
                 begin
                 begin
                   oldlength:=Length(dest);
                   oldlength:=Length(dest);
                   SetLength(dest,oldlength+(pos-lastpos));
                   SetLength(dest,oldlength+(pos-lastpos));
-                  move(lastpos^,char(dest[oldlength+1]),pos-lastpos);
+                  move(lastpos^,AnsiChar(dest[oldlength+1]),pos-lastpos);
                 end;
                 end;
               first:=false;
               first:=false;
             end;
             end;
@@ -1165,21 +1165,21 @@ unit regexpr;
       if first then
       if first then
         begin
         begin
           SetLength(dest,len);
           SetLength(dest,len);
-          move(pos^,char(dest[length(dest)+1]),len);
+          move(pos^,AnsiChar(dest[length(dest)+1]),len);
         end
         end
       else
       else
         begin
         begin
           oldlength:=Length(dest);
           oldlength:=Length(dest);
           SetLength(dest,oldlength+len);
           SetLength(dest,oldlength+len);
-          move(pos^,char(dest[oldlength+1]),len);
+          move(pos^,AnsiChar(dest[oldlength+1]),len);
         end
         end
     end;
     end;
 
 
 
 
-  function RegExprEscapeStr (const S : string) : string;
+  function RegExprEscapeStr (const S : AnsiString) : AnsiString;
     var
     var
      i, len   : integer;
      i, len   : integer;
-     s1: string;
+     s1: AnsiString;
     begin
     begin
       RegExprEscapeStr:= '';
       RegExprEscapeStr:= '';
       s1:='';
       s1:='';

+ 11 - 10
packages/regexpr/src/oldregexpr.pp

@@ -19,7 +19,8 @@
 
 
 unit OldRegExpr;
 unit OldRegExpr;
 
 
-{$mode objfpc}{$H+}
+{$mode objfpc}
+{$H-}
 
 
 interface
 interface
 
 
@@ -39,18 +40,18 @@ type
 
 
    TRegExprEngine = TRegexEngine;
    TRegExprEngine = TRegexEngine;
 
 
-function GenerateRegExprEngine(regexpr : pchar;flags : tregexprflags;var RegExprEngine: TRegExprEngine): boolean;
-function GenerateRegExprEngine(regexpr : pchar;flags : tregexprflags): TREGExprEngine;
+function GenerateRegExprEngine(regexpr : PAnsiChar;flags : tregexprflags;var RegExprEngine: TRegExprEngine): boolean;
+function GenerateRegExprEngine(regexpr : PAnsiChar;flags : tregexprflags): TREGExprEngine;
 procedure DestroyRegExprEngine(var regexpr : TRegExprEngine);
 procedure DestroyRegExprEngine(var regexpr : TRegExprEngine);
 
 
-function RegExprPos(RegExprEngine : TRegExprEngine;p : pchar;var index,len : integer) : boolean;
+function RegExprPos(RegExprEngine : TRegExprEngine;p : PAnsiChar;var index,len : integer) : boolean;
 function RegExprReplaceAll(RegExprEngine : TRegExprEngine;const src,newstr : ansistring;var dest : ansistring) : sizeint;
 function RegExprReplaceAll(RegExprEngine : TRegExprEngine;const src,newstr : ansistring;var dest : ansistring) : sizeint;
 
 
-function RegExprEscapeStr (const S : string) : string;
+function RegExprEscapeStr (const S : AnsiString) : AnsiString;
 
 
 implementation
 implementation
 
 
-function GenerateRegExprEngine(regexpr: pchar; flags: tregexprflags;
+function GenerateRegExprEngine(regexpr: PAnsiChar; flags: tregexprflags;
   var RegExprEngine: TRegExprEngine): boolean;
   var RegExprEngine: TRegExprEngine): boolean;
 var ErrorPos  : Integer;
 var ErrorPos  : Integer;
     ErrorCode : TRegexError;
     ErrorCode : TRegexError;
@@ -62,7 +63,7 @@ begin
   Result := RegExprEngine.Parse(ErrorPos,ErrorCode);
   Result := RegExprEngine.Parse(ErrorPos,ErrorCode);
 end;
 end;
 
 
-function GenerateRegExprEngine(regexpr: pchar; flags: tregexprflags
+function GenerateRegExprEngine(regexpr: PAnsiChar; flags: tregexprflags
   ): TREGExprEngine;
   ): TREGExprEngine;
 
 
 var r: TRegExprEngine;
 var r: TRegExprEngine;
@@ -79,7 +80,7 @@ begin
   regexpr := nil;
   regexpr := nil;
 end;
 end;
 
 
-function RegExprPos(RegExprEngine: TRegExprEngine; p: pchar; var index,
+function RegExprPos(RegExprEngine: TRegExprEngine; p: PAnsiChar; var index,
   len: integer): boolean;
   len: integer): boolean;
 begin
 begin
   Len := 1;
   Len := 1;
@@ -99,10 +100,10 @@ begin
   result := RegExprEngine.ReplaceAllString(src,newstr,Dest);
   result := RegExprEngine.ReplaceAllString(src,newstr,Dest);
 end;
 end;
 
 
-function RegExprEscapeStr(const S: string): string;
+function RegExprEscapeStr(const S: AnsiString): AnsiString;
 var
 var
   i, len   : integer;
   i, len   : integer;
-  s1: string;
+  s1: AnsiString;
 begin
 begin
   RegExprEscapeStr:= '';
   RegExprEscapeStr:= '';
   s1:='';
   s1:='';

+ 28 - 27
packages/regexpr/src/regex.pp

@@ -21,7 +21,8 @@
 
 
 unit Regex;
 unit Regex;
 
 
-{$mode Delphi}{$H+}
+{$mode Delphi}
+{$H-}
 {$INLINE ON}
 {$INLINE ON}
 
 
 interface
 interface
@@ -42,8 +43,8 @@ interface
                  <atom> '*' |                    - zero or more
                  <atom> '*' |                    - zero or more
                  <atom> 'n,m' |                  - min n, max m (added by Joost)
                  <atom> 'n,m' |                  - min n, max m (added by Joost)
                  <atom> '+'                      - one or more
                  <atom> '+'                      - one or more
-    <atom> ::= <char> |
-               '.' |                             - any char
+    <atom> ::= <AnsiChar> |
+               '.' |                             - any AnsiChar
                '(' <expr> ') |                   - parentheses
                '(' <expr> ') |                   - parentheses
                '[' <charclass> ']' |             - normal class
                '[' <charclass> ']' |             - normal class
                '[^' <charclass> ']'              - negated class
                '[^' <charclass> ']'              - negated class
@@ -51,7 +52,7 @@ interface
                     <charrange><charclass>
                     <charrange><charclass>
     <charrange> ::= <ccchar> |
     <charrange> ::= <ccchar> |
                     <ccchar> '-' <ccchar>
                     <ccchar> '-' <ccchar>
-    <char> ::= <any character except metacharacters> |
+    <AnsiChar> ::= <any character except metacharacters> |
                '\' <any character at all>
                '\' <any character at all>
     <ccchar> ::= <any character except '-' and ']'> |
     <ccchar> ::= <any character except '-' and ']'> |
                  '\' <any character at all>
                  '\' <any character at all>
@@ -80,8 +81,8 @@ type
 
 
   TRegexError = (    {error codes for invalid regex strings}
   TRegexError = (    {error codes for invalid regex strings}
      recNone,          {..no error}
      recNone,          {..no error}
-     recSuddenEnd,     {..unexpected end of string}
-     recMetaChar,      {..read metacharacter, but needed normal char}
+     recSuddenEnd,     {..unexpected end of String}
+     recMetaChar,      {..read metacharacter, but needed normal AnsiChar}
      recNoCloseParen,  {..expected close paren, but not there}
      recNoCloseParen,  {..expected close paren, but not there}
      recExtraChars     {..not at end of string after parsing regex}
      recExtraChars     {..not at end of string after parsing regex}
      );
      );
@@ -93,7 +94,7 @@ type
      );
      );
 
 
   PCharSet = ^TCharSet;
   PCharSet = ^TCharSet;
-  TCharSet = set of Char;
+  TCharSet = set of AnsiChar;
 
 
   { TtdRegexEngine }
   { TtdRegexEngine }
 
 
@@ -116,7 +117,7 @@ type
       FIgnoreCase : boolean;
       FIgnoreCase : boolean;
       FMultiLine  : boolean;
       FMultiLine  : boolean;
       FPosn       : PAnsiChar;
       FPosn       : PAnsiChar;
-      FRegexStr   : string;
+      FRegexStr   : AnsiString;
       FStartState : integer;
       FStartState : integer;
       FStateTable : Array of TNFAState;
       FStateTable : Array of TNFAState;
       FStateCount : integer;
       FStateCount : integer;
@@ -136,14 +137,14 @@ type
       procedure DequeGrow;
       procedure DequeGrow;
 
 
       procedure rcSetIgnoreCase(aValue : boolean); virtual;
       procedure rcSetIgnoreCase(aValue : boolean); virtual;
-      procedure rcSetRegexStr(const aRegexStr : string); virtual;
+      procedure rcSetRegexStr(const aRegexStr : AnsiString); virtual;
       procedure rcSetUpcase(aValue : TUpcaseFunc); virtual;
       procedure rcSetUpcase(aValue : TUpcaseFunc); virtual;
       procedure rcSetMultiLine(aValue : Boolean); virtual;
       procedure rcSetMultiLine(aValue : Boolean); virtual;
 
 
       procedure rcClear; virtual;
       procedure rcClear; virtual;
       procedure rcError(aIndex      : integer); virtual;
       procedure rcError(aIndex      : integer); virtual;
       procedure rcLevel1Optimize; virtual;
       procedure rcLevel1Optimize; virtual;
-      function rcMatchSubString(const S   : string;
+      function rcMatchSubString(const S   : AnsiString;
                                 StartPosn : integer;
                                 StartPosn : integer;
                                 var Len   : integer) : boolean; virtual;
                                 var Len   : integer) : boolean; virtual;
       function rcAddState(aMatchType : TNFAMatchType;
       function rcAddState(aMatchType : TNFAMatchType;
@@ -167,20 +168,20 @@ type
       Function rcReturnEscapeChar : AnsiChar; virtual;
       Function rcReturnEscapeChar : AnsiChar; virtual;
     public
     public
       procedure WriteTable;
       procedure WriteTable;
-      constructor Create(const aRegexStr : string);
+      constructor Create(const aRegexStr : AnsiString);
       destructor Destroy; override;
       destructor Destroy; override;
 
 
       function Parse(out aErrorPos : integer;
       function Parse(out aErrorPos : integer;
                      out aErrorCode: TRegexError) : boolean; virtual;
                      out aErrorCode: TRegexError) : boolean; virtual;
-      function MatchString(const S : string; out MatchPos : integer; var Offset : integer) : boolean; virtual;
-      function ReplaceAllString(const src, newstr: ansistring; out DestStr : string): Integer;
+      function MatchString(const S : AnsiString; out MatchPos : integer; var Offset : integer) : boolean; virtual;
+      function ReplaceAllString(const src, newstr: ansistring; out DestStr : AnsiString): Integer;
 
 
 
 
       property IgnoreCase : boolean
       property IgnoreCase : boolean
                   read FIgnoreCase write rcSetIgnoreCase;
                   read FIgnoreCase write rcSetIgnoreCase;
       property MultiLine : boolean
       property MultiLine : boolean
                   read FMultiLine write rcSetMultiLine;
                   read FMultiLine write rcSetMultiLine;
-      property RegexString : string
+      property RegexString : AnsiString
                   read FRegexStr write rcSetRegexStr;
                   read FRegexStr write rcSetRegexStr;
       property Upcase : TUpcaseFunc
       property Upcase : TUpcaseFunc
                   read FUpcase write rcSetUpcase;
                   read FUpcase write rcSetUpcase;
@@ -222,7 +223,7 @@ end;
 
 
 
 
 {===TRegexEngine===================================================}
 {===TRegexEngine===================================================}
-constructor TRegexEngine.Create(const aRegexStr : string);
+constructor TRegexEngine.Create(const aRegexStr : AnsiString);
 begin
 begin
   inherited Create;
   inherited Create;
   FRegexStr := aRegexStr;
   FRegexStr := aRegexStr;
@@ -247,12 +248,12 @@ begin
   inherited Destroy;
   inherited Destroy;
 end;
 end;
 {--------}
 {--------}
-function TRegexEngine.MatchString(const S : string; out MatchPos : integer; var Offset : integer): boolean;
+function TRegexEngine.MatchString(const S : AnsiString; out MatchPos : integer; var Offset : integer): boolean;
 var
 var
   i : integer;
   i : integer;
   ErrorPos  : integer;
   ErrorPos  : integer;
   ErrorCode : TRegexError;
   ErrorCode : TRegexError;
-  pc : pchar;
+  pc : PAnsiChar;
   x:integer;
   x:integer;
 begin
 begin
   if Offset>length(S) then
   if Offset>length(S) then
@@ -271,7 +272,7 @@ begin
   case FRegexType of
   case FRegexType of
     rtSingleChar :
     rtSingleChar :
       begin
       begin
-      MatchPos := PosEx(char(FRegexStr[1]),s,Offset);
+      MatchPos := PosEx(AnsiChar(FRegexStr[1]),s,Offset);
       Offset := MatchPos+1;
       Offset := MatchPos+1;
       Result := (MatchPos>0);
       Result := (MatchPos>0);
       end;
       end;
@@ -322,7 +323,7 @@ begin
     end; {case}
     end; {case}
 end;
 end;
 
 
-function TRegexEngine.ReplaceAllString(const src, newstr: ansistring; out DestStr : string): Integer;
+function TRegexEngine.ReplaceAllString(const src, newstr: ansistring; out DestStr : AnsiString): Integer;
 
 
 type TReplRec = record
 type TReplRec = record
                   Pos : integer;
                   Pos : integer;
@@ -357,7 +358,7 @@ begin
     inc(racount);
     inc(racount);
     end;
     end;
 
 
-  SetLength(DestStr, SizeOf(Char)*DestSize);
+  SetLength(DestStr, SizeOf(AnsiChar)*DestSize);
   MatchPos:=1; LastPos:=1;
   MatchPos:=1; LastPos:=1;
 
 
   if size_newstr<>0 then for i := 0 to racount -1 do
   if size_newstr<>0 then for i := 0 to racount -1 do
@@ -534,7 +535,7 @@ begin
   end;
   end;
 end;
 end;
 {--------}
 {--------}
-function TRegexEngine.rcMatchSubString(const s   : string;
+function TRegexEngine.rcMatchSubString(const s   : AnsiString;
                                          StartPosn : integer;
                                          StartPosn : integer;
                                          var Len   : integer)
                                          var Len   : integer)
                                                             : boolean;
                                                             : boolean;
@@ -785,7 +786,7 @@ begin
     Result := #0;
     Result := #0;
     Exit;
     Exit;
   end;
   end;
-  {if the current char is a metacharacter (at least in terms of a
+  {if the current AnsiChar is a metacharacter (at least in terms of a
    character class), it's an error}
    character class), it's an error}
   if FPosn^ in [']', '-'] then begin
   if FPosn^ in [']', '-'] then begin
     FErrorCode := recMetaChar;
     FErrorCode := recMetaChar;
@@ -815,7 +816,7 @@ begin
     FErrorCode := recSuddenEnd;
     FErrorCode := recSuddenEnd;
     Exit;
     Exit;
   end;
   end;
-  {if the current char is one of the metacharacters, it's an error}
+  {if the current AnsiChar is one of the metacharacters, it's an error}
   if FPosn^ in MetaCharacters then begin
   if FPosn^ in MetaCharacters then begin
     Result := ErrorState;
     Result := ErrorState;
     FErrorCode := recMetaChar;
     FErrorCode := recMetaChar;
@@ -969,7 +970,7 @@ var
   StartStateAtom : integer;
   StartStateAtom : integer;
   EndStateAtom   : integer;
   EndStateAtom   : integer;
   TempEndStateAtom : integer;
   TempEndStateAtom : integer;
-  Int            : string;
+  Int            : AnsiString;
   n,m,nState     : integer;
   n,m,nState     : integer;
   i              : integer;
   i              : integer;
 begin
 begin
@@ -1132,7 +1133,7 @@ begin
          be
          be
            - an open parenthesis
            - an open parenthesis
            - an open square bracket
            - an open square bracket
-           - an any char operator
+           - an any AnsiChar operator
            - a character that's not a metacharacter
            - a character that's not a metacharacter
          i.e., the three possibilities for the start of an "atom" in
          i.e., the three possibilities for the start of an "atom" in
          our grammar}
          our grammar}
@@ -1159,7 +1160,7 @@ procedure TRegexEngine.WriteTable;
 var i : integer;
 var i : integer;
 begin
 begin
   for i := 0 to FStateCount-1 do with FStateTable[i] do
   for i := 0 to FStateCount-1 do with FStateTable[i] do
-    writeln('s:',i,' mt:',sdMatchType ,' ns1:',sdNextState1,' ns2:',sdNextState2,' char:',sdChar);
+    writeln('s:',i,' mt:',sdMatchType ,' ns1:',sdNextState1,' ns2:',sdNextState2,' AnsiChar:',sdChar);
 end;
 end;
 
 
 procedure TRegexEngine.DequeEnqueue(aValue: integer);
 procedure TRegexEngine.DequeEnqueue(aValue: integer);
@@ -1234,7 +1235,7 @@ begin
   end;
   end;
 end;
 end;
 {--------}
 {--------}
-procedure TRegexEngine.rcSetRegexStr(const aRegexStr : string);
+procedure TRegexEngine.rcSetRegexStr(const aRegexStr : AnsiString);
 begin
 begin
   if (aRegexStr <> FRegexStr) then begin
   if (aRegexStr <> FRegexStr) then begin
     rcClear;
     rcClear;

+ 43 - 43
packages/regexpr/src/regexpr.pas

@@ -154,7 +154,7 @@ type
   TRegExprCharset = set of byte;
   TRegExprCharset = set of byte;
 
 
 const
 const
-  // Escape char ('\' in common r.e.) used for escaping metachars (\w, \d etc)
+  // Escape AnsiChar ('\' in common r.e.) used for escaping metachars (\w, \d etc)
   EscChar = '\';
   EscChar = '\';
 
 
   // Substitute method: prefix of group reference: $1 .. $9 and $<name>
   // Substitute method: prefix of group reference: $1 .. $9 and $<name>
@@ -232,7 +232,7 @@ type
        // А-Я additionally includes 'Ё', and а-Я includes all Russian letters.
        // А-Я additionally includes 'Ё', and а-Я includes all Russian letters.
        // Turn it off if it interferes with your national alphabet.
        // Turn it off if it interferes with your national alphabet.
     S: boolean;
     S: boolean;
-       // Dot '.' matches any char, otherwise only [^\n].
+       // Dot '.' matches any AnsiChar, otherwise only [^\n].
     G: boolean;
     G: boolean;
        // Greedy. Switching it off switches all operators to non-greedy style,
        // Greedy. Switching it off switches all operators to non-greedy style,
        // so if G=False, then '*' works like '*?', '+' works like '+?' and so on.
        // so if G=False, then '*' works like '*?', '+' works like '+?' and so on.
@@ -241,7 +241,7 @@ type
        // matching at only the very start/end of the string to the start/end
        // matching at only the very start/end of the string to the start/end
        // of any line anywhere within the string.
        // of any line anywhere within the string.
     X: boolean;
     X: boolean;
-       // Allow comments in regex using # char.
+       // Allow comments in regex using # AnsiChar.
   end;
   end;
 
 
 function IsModifiersEqual(const A, B: TRegExprModifiers): boolean;
 function IsModifiersEqual(const A, B: TRegExprModifiers): boolean;
@@ -314,16 +314,16 @@ type
     {$ENDIF}
     {$ENDIF}
 
 
     // work variables for Exec routines - save stack in recursion
     // work variables for Exec routines - save stack in recursion
-    regInput: PRegExprChar; // pointer to currently handling char of input string
-    fInputStart: PRegExprChar; // pointer to first char of input string
-    fInputEnd: PRegExprChar; // pointer after last char of input string
-    fRegexStart: PRegExprChar; // pointer to first char of regex
-    fRegexEnd: PRegExprChar; // pointer after last char of regex
+    regInput: PRegExprChar; // pointer to currently handling AnsiChar of input string
+    fInputStart: PRegExprChar; // pointer to first AnsiChar of input string
+    fInputEnd: PRegExprChar; // pointer after last AnsiChar of input string
+    fRegexStart: PRegExprChar; // pointer to first AnsiChar of regex
+    fRegexEnd: PRegExprChar; // pointer after last AnsiChar of regex
     regCurrentGrp: integer; // index of group handling by OP_OPEN* opcode
     regCurrentGrp: integer; // index of group handling by OP_OPEN* opcode
     regRecursion: integer; // current level of recursion (?R) (?1); always 0 if no recursion is used
     regRecursion: integer; // current level of recursion (?R) (?1); always 0 if no recursion is used
 
 
     // work variables for compiler's routines
     // work variables for compiler's routines
-    regParse: PRegExprChar; // pointer to currently handling char of regex
+    regParse: PRegExprChar; // pointer to currently handling AnsiChar of regex
     regNumBrackets: integer; // count of () brackets
     regNumBrackets: integer; // count of () brackets
     regDummy: REChar; // dummy pointer, used to detect 1st/2nd pass of Compile
     regDummy: REChar; // dummy pointer, used to detect 1st/2nd pass of Compile
                       // if p=@regDummy, it is pass-1: opcode memory is not yet allocated
                       // if p=@regDummy, it is pass-1: opcode memory is not yet allocated
@@ -570,7 +570,7 @@ type
     function ExecNext(ABackward: boolean {$IFDEF DefParam} = False{$ENDIF}): boolean;
     function ExecNext(ABackward: boolean {$IFDEF DefParam} = False{$ENDIF}): boolean;
 
 
     // find match for InputString starting from AOffset position
     // find match for InputString starting from AOffset position
-    // (AOffset=1 - first char of InputString)
+    // (AOffset=1 - first AnsiChar of InputString)
     function ExecPos(AOffset: integer {$IFDEF DefParam} = 1{$ENDIF}): boolean;
     function ExecPos(AOffset: integer {$IFDEF DefParam} = 1{$ENDIF}): boolean;
     {$IFDEF OverMeth} overload;
     {$IFDEF OverMeth} overload;
     function ExecPos(AOffset: integer; ATryOnce, ABackward: boolean): boolean; overload;
     function ExecPos(AOffset: integer; ATryOnce, ABackward: boolean): boolean; overload;
@@ -1078,7 +1078,7 @@ end;
 
 
 {$IFDEF UNICODEEX}
 {$IFDEF UNICODEEX}
 procedure IncUnicode(var p: PRegExprChar); {$IFDEF InlineFuncs}inline;{$ENDIF}
 procedure IncUnicode(var p: PRegExprChar); {$IFDEF InlineFuncs}inline;{$ENDIF}
-// make additional increment if we are on low-surrogate char
+// make additional increment if we are on low-surrogate AnsiChar
 // no need to check p<fInputEnd, at the end of string we have chr(0)
 // no need to check p<fInputEnd, at the end of string we have chr(0)
 var
 var
   ch: REChar;
   ch: REChar;
@@ -1367,13 +1367,13 @@ begin
             // comment beginning!
             // comment beginning!
             i0 := i;
             i0 := i;
             Inc(i);
             Inc(i);
-            if ARegExpr[i] = ']' // first ']' inside [] treated as simple char, no need to check '['
+            if ARegExpr[i] = ']' // first ']' inside [] treated as simple AnsiChar, no need to check '['
             then
             then
               Inc(i);
               Inc(i);
             while (i <= Len) and (ARegExpr[i] <> ']') do
             while (i <= Len) and (ARegExpr[i] <> ']') do
               if ARegExpr[i] = EscChar // ###0.942
               if ARegExpr[i] = EscChar // ###0.942
               then
               then
-                Inc(i, 2) // skip 'escaped' char to prevent stopping at '\]'
+                Inc(i, 2) // skip 'escaped' AnsiChar to prevent stopping at '\]'
               else
               else
                 Inc(i);
                 Inc(i);
             if (i > Len) or (ARegExpr[i] <> ']') // ###0.942
             if (i > Len) or (ARegExpr[i] <> ']') // ###0.942
@@ -1395,7 +1395,7 @@ begin
           end;
           end;
         // here is no 'else' clause - we simply skip ordinary chars
         // here is no 'else' clause - we simply skip ordinary chars
       end; // of case
       end; // of case
-      Inc(i); // skip scanned char
+      Inc(i); // skip scanned AnsiChar
       // ! can move after Len due to skipping quoted symbol
       // ! can move after Len due to skipping quoted symbol
     end;
     end;
 
 
@@ -1426,7 +1426,7 @@ const
   OP_EOL = TREOp(2); // -    Match "" at end of line
   OP_EOL = TREOp(2); // -    Match "" at end of line
   OP_ANY = TREOp(3); // -    Match any one character
   OP_ANY = TREOp(3); // -    Match any one character
   OP_ANYOF = TREOp(4); // Str  Match any character in string Str
   OP_ANYOF = TREOp(4); // Str  Match any character in string Str
-  OP_ANYBUT = TREOp(5); // Str  Match any char. not in string Str
+  OP_ANYBUT = TREOp(5); // Str  Match any AnsiChar. not in string Str
   OP_BRANCH = TREOp(6); // Node Match this alternative, or the next
   OP_BRANCH = TREOp(6); // Node Match this alternative, or the next
   OP_BACK = TREOp(7); // -    Jump backward (Next < 0)
   OP_BACK = TREOp(7); // -    Jump backward (Next < 0)
   OP_EXACTLY = TREOp(8); // Str  Match string Str
   OP_EXACTLY = TREOp(8); // Str  Match string Str
@@ -1437,8 +1437,8 @@ const
   OP_NOTDIGIT = TREOp(13); // -    Match not digit (equiv [0-9])
   OP_NOTDIGIT = TREOp(13); // -    Match not digit (equiv [0-9])
   OP_ANYLETTER = TREOp(14); // -    Match any letter from property WordChars
   OP_ANYLETTER = TREOp(14); // -    Match any letter from property WordChars
   OP_NOTLETTER = TREOp(15); // -    Match not letter from property WordChars
   OP_NOTLETTER = TREOp(15); // -    Match not letter from property WordChars
-  OP_ANYSPACE = TREOp(16); // -    Match any space char (see property SpaceChars)
-  OP_NOTSPACE = TREOp(17); // -    Match not space char (see property SpaceChars)
+  OP_ANYSPACE = TREOp(16); // -    Match any space AnsiChar (see property SpaceChars)
+  OP_NOTSPACE = TREOp(17); // -    Match not space AnsiChar (see property SpaceChars)
   OP_BRACES = TREOp(18);
   OP_BRACES = TREOp(18);
   // Node,Min,Max Match this (simple) thing from Min to Max times.
   // Node,Min,Max Match this (simple) thing from Min to Max times.
   // Min and Max are TREBracesArg
   // Min and Max are TREBracesArg
@@ -1447,7 +1447,7 @@ const
   OP_ANYOFCI = TREOp(21);
   OP_ANYOFCI = TREOp(21);
   // Str  Match any character in string Str, case insensitive
   // Str  Match any character in string Str, case insensitive
   OP_ANYBUTCI = TREOp(22);
   OP_ANYBUTCI = TREOp(22);
-  // Str  Match any char. not in string Str, case insensitive
+  // Str  Match any AnsiChar. not in string Str, case insensitive
   OP_LOOPENTRY = TREOp(23); // Node Start of loop (Node - LOOP for this loop)
   OP_LOOPENTRY = TREOp(23); // Node Start of loop (Node - LOOP for this loop)
   OP_LOOP = TREOp(24); // Node,Min,Max,LoopEntryJmp - back jump for LOOPENTRY.
   OP_LOOP = TREOp(24); // Node,Min,Max,LoopEntryJmp - back jump for LOOPENTRY.
   // Min and Max are TREBracesArg
   // Min and Max are TREBracesArg
@@ -1637,7 +1637,7 @@ begin
     reeUnmatchedSqBrackets:
     reeUnmatchedSqBrackets:
       Result := 'TRegExpr compile: unmatched []';
       Result := 'TRegExpr compile: unmatched []';
     reeInternalUrp:
     reeInternalUrp:
-      Result := 'TRegExpr compile: internal fail on char "|", ")"';
+      Result := 'TRegExpr compile: internal fail on AnsiChar "|", ")"';
     reeQuantifFollowsNothing:
     reeQuantifFollowsNothing:
       Result := 'TRegExpr compile: quantifier ?+*{ follows nothing';
       Result := 'TRegExpr compile: quantifier ?+*{ follows nothing';
     reeTrailingBackSlash:
     reeTrailingBackSlash:
@@ -1704,7 +1704,7 @@ begin
     reeExecNextWithoutExec:
     reeExecNextWithoutExec:
       Result := 'TRegExpr exec: ExecNext without Exec(Pos)';
       Result := 'TRegExpr exec: ExecNext without Exec(Pos)';
     reeBadOpcodeInCharClass:
     reeBadOpcodeInCharClass:
-      Result := 'TRegExpr exec: invalid opcode in char class';
+      Result := 'TRegExpr exec: invalid opcode in AnsiChar class';
     reeDumpCorruptedOpcode:
     reeDumpCorruptedOpcode:
       Result := 'TRegExpr dump: corrupted opcode';
       Result := 'TRegExpr dump: corrupted opcode';
     reeLoopStackExceeded:
     reeLoopStackExceeded:
@@ -1980,7 +1980,7 @@ end;
 {$IFDEF FastUnicodeData}
 {$IFDEF FastUnicodeData}
 function TRegExpr.IsWordChar(AChar: REChar): boolean;
 function TRegExpr.IsWordChar(AChar: REChar): boolean;
 begin
 begin
-  // bit 7 in value: is word char
+  // bit 7 in value: is word AnsiChar
   Result := CharCategoryArray[Ord(AChar)] and 128 <> 0;
   Result := CharCategoryArray[Ord(AChar)] and 128 <> 0;
 end;
 end;
 
 
@@ -2083,7 +2083,7 @@ begin
 end;
 end;
 
 
 function CheckCharCategory(AChar: REChar; Ch0, Ch1: REChar): boolean;
 function CheckCharCategory(AChar: REChar; Ch0, Ch1: REChar): boolean;
-// AChar: check this char against opcode
+// AChar: check this AnsiChar against opcode
 // Ch0, Ch1: opcode operands after OP_*CATEGORY
 // Ch0, Ch1: opcode operands after OP_*CATEGORY
 var
 var
   N: byte;
   N: byte;
@@ -2375,7 +2375,7 @@ end;
 {$IFDEF FastUnicodeData}
 {$IFDEF FastUnicodeData}
 procedure TRegExpr.FindCategoryName(var scan: PRegExprChar; var ch1, ch2: REChar);
 procedure TRegExpr.FindCategoryName(var scan: PRegExprChar; var ch1, ch2: REChar);
 // scan: points into regex string after '\p', to find category name
 // scan: points into regex string after '\p', to find category name
-// ch1, ch2: 2-char name of category; ch2 can be #0
+// ch1, ch2: 2-AnsiChar name of category; ch2 can be #0
 var
 var
   ch: REChar;
   ch: REChar;
   pos1, pos2, namePtr: PRegExprChar;
   pos1, pos2, namePtr: PRegExprChar;
@@ -2519,7 +2519,7 @@ const
   {$ENDIF}
   {$ENDIF}
 
 
 function TRegExpr.FindInCharClass(ABuffer: PRegExprChar; AChar: REChar; AIgnoreCase: boolean): boolean;
 function TRegExpr.FindInCharClass(ABuffer: PRegExprChar; AChar: REChar; AIgnoreCase: boolean): boolean;
-// Buffer contains char pairs: (Kind, Data), where Kind is one of OpKind_ values,
+// Buffer contains AnsiChar pairs: (Kind, Data), where Kind is one of OpKind_ values,
 // and Data depends on Kind
 // and Data depends on Kind
 var
 var
   OpKind: REChar;
   OpKind: REChar;
@@ -3258,7 +3258,7 @@ begin
           InsertOperator(TheOp, Result, REOpSz + RENextOffSz);
           InsertOperator(TheOp, Result, REOpSz + RENextOffSz);
         end;
         end;
         if NonGreedyCh or PossessiveCh then
         if NonGreedyCh or PossessiveCh then
-          Inc(regParse); // Skip extra char ('?')
+          Inc(regParse); // Skip extra AnsiChar ('?')
       end; { of case '*' }
       end; { of case '*' }
     '+':
     '+':
       begin
       begin
@@ -3300,7 +3300,7 @@ begin
           InsertOperator(TheOp, Result, REOpSz + RENextOffSz);
           InsertOperator(TheOp, Result, REOpSz + RENextOffSz);
         end;
         end;
         if NonGreedyCh or PossessiveCh then
         if NonGreedyCh or PossessiveCh then
-          Inc(regParse); // Skip extra char ('?')
+          Inc(regParse); // Skip extra AnsiChar ('?')
       end; { of case '+' }
       end; { of case '+' }
     '?':
     '?':
       begin
       begin
@@ -3337,7 +3337,7 @@ begin
           OpTail(Result, NextNode);
           OpTail(Result, NextNode);
         end;
         end;
         if NonGreedyCh or PossessiveCh then
         if NonGreedyCh or PossessiveCh then
-          Inc(regParse); // Skip extra char ('?')
+          Inc(regParse); // Skip extra AnsiChar ('?')
       end; { of case '?' }
       end; { of case '?' }
     '{':
     '{':
       begin
       begin
@@ -3400,7 +3400,7 @@ begin
           EmitComplexBraces(BracesMin, BracesMax, NonGreedyOp);
           EmitComplexBraces(BracesMin, BracesMax, NonGreedyOp);
         end;
         end;
         if NonGreedyCh or PossessiveCh then
         if NonGreedyCh or PossessiveCh then
-          Inc(regParse); // Skip extra char '?'
+          Inc(regParse); // Skip extra AnsiChar '?'
       end; // of case '{'
       end; // of case '{'
     // else // here we can't be
     // else // here we can't be
   end; { of case op }
   end; { of case op }
@@ -3463,7 +3463,7 @@ begin
         end;
         end;
       end;
       end;
     'x':
     'x':
-      begin // \x: hex char
+      begin // \x: hex AnsiChar
         Result := #0;
         Result := #0;
         Inc(APtr);
         Inc(APtr);
         if APtr >= AEnd then
         if APtr >= AEnd then
@@ -3681,7 +3681,7 @@ begin
 
 
         if regParse^ = ']' then
         if regParse^ = ']' then
         begin
         begin
-          // first ']' inside [] treated as simple char, no need to check '['
+          // first ']' inside [] treated as simple AnsiChar, no need to check '['
           EmitRangeChar(regParse^, (regParse + 1)^ = '-');
           EmitRangeChar(regParse^, (regParse + 1)^ = '-');
           Inc(regParse);
           Inc(regParse);
         end;
         end;
@@ -3698,7 +3698,7 @@ begin
             Break;
             Break;
           end;
           end;
 
 
-          // char '-' which (maybe) makes a range
+          // AnsiChar '-' which (maybe) makes a range
           if (regParse^ = '-') and ((regParse + 1) < fRegexEnd) and CanBeRange then
           if (regParse^ = '-') and ((regParse + 1) < fRegexEnd) and CanBeRange then
           begin
           begin
             Inc(regParse);
             Inc(regParse);
@@ -3783,7 +3783,7 @@ begin
               {$ENDIF}
               {$ENDIF}
               begin
               begin
                 TempChar := UnQuoteChar(regParse, fRegexEnd);
                 TempChar := UnQuoteChar(regParse, fRegexEnd);
-                // False if '-' is last char in []
+                // False if '-' is last AnsiChar in []
                 DashForRange :=
                 DashForRange :=
                   (regParse + 2 < fRegexEnd) and
                   (regParse + 2 < fRegexEnd) and
                   ((regParse + 1)^ = '-') and
                   ((regParse + 1)^ = '-') and
@@ -3793,7 +3793,7 @@ begin
             end
             end
             else
             else
             begin
             begin
-              // False if '-' is last char in []
+              // False if '-' is last AnsiChar in []
               DashForRange :=
               DashForRange :=
                 (regParse + 2 < fRegexEnd) and
                 (regParse + 2 < fRegexEnd) and
                 ((regParse + 1)^ = '-') and
                 ((regParse + 1)^ = '-') and
@@ -4168,22 +4168,22 @@ begin
               FlagParse := FlagParse or FLAG_HASWIDTH or FLAG_SIMPLE;
               FlagParse := FlagParse or FLAG_HASWIDTH or FLAG_SIMPLE;
             end;
             end;
           's':
           's':
-            begin // r.e.extension - any space char
+            begin // r.e.extension - any space AnsiChar
               ret := EmitNode(OP_ANYSPACE);
               ret := EmitNode(OP_ANYSPACE);
               FlagParse := FlagParse or FLAG_HASWIDTH or FLAG_SIMPLE;
               FlagParse := FlagParse or FLAG_HASWIDTH or FLAG_SIMPLE;
             end;
             end;
           'S':
           'S':
-            begin // r.e.extension - not space char
+            begin // r.e.extension - not space AnsiChar
               ret := EmitNode(OP_NOTSPACE);
               ret := EmitNode(OP_NOTSPACE);
               FlagParse := FlagParse or FLAG_HASWIDTH or FLAG_SIMPLE;
               FlagParse := FlagParse or FLAG_HASWIDTH or FLAG_SIMPLE;
             end;
             end;
           'w':
           'w':
-            begin // r.e.extension - any english char / digit / '_'
+            begin // r.e.extension - any english AnsiChar / digit / '_'
               ret := EmitNode(OP_ANYLETTER);
               ret := EmitNode(OP_ANYLETTER);
               FlagParse := FlagParse or FLAG_HASWIDTH or FLAG_SIMPLE;
               FlagParse := FlagParse or FLAG_HASWIDTH or FLAG_SIMPLE;
             end;
             end;
           'W':
           'W':
-            begin // r.e.extension - not english char / digit / '_'
+            begin // r.e.extension - not english AnsiChar / digit / '_'
               ret := EmitNode(OP_NOTLETTER);
               ret := EmitNode(OP_NOTLETTER);
               FlagParse := FlagParse or FLAG_HASWIDTH or FLAG_SIMPLE;
               FlagParse := FlagParse or FLAG_HASWIDTH or FLAG_SIMPLE;
             end;
             end;
@@ -4357,7 +4357,7 @@ begin
     OP_ANY:
     OP_ANY:
       begin
       begin
         // note - OP_ANYML cannot be proceeded in FindRepeated because can skip
         // note - OP_ANYML cannot be proceeded in FindRepeated because can skip
-        // more than one char at once
+        // more than one AnsiChar at once
         {$IFDEF UnicodeEx}
         {$IFDEF UnicodeEx}
         for i := 1 to TheMax do
         for i := 1 to TheMax do
           IncUnicode2(scan, Result);
           IncUnicode2(scan, Result);
@@ -4368,7 +4368,7 @@ begin
       end;
       end;
 
 
     OP_EXACTLY:
     OP_EXACTLY:
-      begin // in opnd can be only ONE char !!!
+      begin // in opnd can be only ONE AnsiChar !!!
         {
         {
         // Alexey: commented because of https://github.com/andgineer/TRegExpr/issues/145
         // Alexey: commented because of https://github.com/andgineer/TRegExpr/issues/145
         NLen := PLongInt(opnd)^;
         NLen := PLongInt(opnd)^;
@@ -4384,7 +4384,7 @@ begin
       end;
       end;
 
 
     OP_EXACTLYCI:
     OP_EXACTLYCI:
-      begin // in opnd can be only ONE char !!!
+      begin // in opnd can be only ONE AnsiChar !!!
         {
         {
         // Alexey: commented because of https://github.com/andgineer/TRegExpr/issues/145
         // Alexey: commented because of https://github.com/andgineer/TRegExpr/issues/145
         NLen := PLongInt(opnd)^;
         NLen := PLongInt(opnd)^;
@@ -5827,7 +5827,7 @@ begin
     else
     else
     begin
     begin
       if (Ch = EscChar) and (p < TemplateEnd) then
       if (Ch = EscChar) and (p < TemplateEnd) then
-      begin // quoted or special char followed
+      begin // quoted or special AnsiChar followed
         Ch := p^;
         Ch := p^;
         Inc(p);
         Inc(p);
         case Ch of
         case Ch of
@@ -5889,7 +5889,7 @@ begin
     else
     else
     begin
     begin
       if (Ch = EscChar) and (p < TemplateEnd) then
       if (Ch = EscChar) and (p < TemplateEnd) then
-      begin // quoted or special char followed
+      begin // quoted or special AnsiChar followed
         Ch := p^;
         Ch := p^;
         Inc(p);
         Inc(p);
         case Ch of
         case Ch of
@@ -5901,7 +5901,7 @@ begin
           'x', 't', 'r', 'f', 'a', 'e':
           'x', 't', 'r', 'f', 'a', 'e':
             begin
             begin
               p := p - 1;
               p := p - 1;
-              // UnquoteChar expects the escaped char under the pointer
+              // UnquoteChar expects the escaped AnsiChar under the pointer
               QuotedChar := UnQuoteChar(p, TemplateEnd);
               QuotedChar := UnQuoteChar(p, TemplateEnd);
               p := p + 1;
               p := p + 1;
               // Skip after last part of the escaped sequence - UnquoteChar stops on the last symbol of it
               // Skip after last part of the escaped sequence - UnquoteChar stops on the last symbol of it

+ 8 - 8
packages/regexpr/tests/tcregexp.pp

@@ -18,7 +18,7 @@ type
   private
   private
     FRE: TRegExpr;
     FRE: TRegExpr;
   protected
   protected
-    class function PrintableString(AString: string): string;
+    class function PrintableString(AString: AnsiString): AnsiString;
     Procedure RunRETest(aIndex : Integer);
     Procedure RunRETest(aIndex : Integer);
     procedure SetUp; override;
     procedure SetUp; override;
     procedure TearDown; override;
     procedure TearDown; override;
@@ -56,10 +56,10 @@ implementation
 
 
 Type
 Type
   TRegExTest = record
   TRegExTest = record
-    Expression: string;
-    InputText: string;
-    SubstitutionText: string;
-    ExpectedResult: string;
+    Expression: AnsiString;
+    InputText: AnsiString;
+    SubstitutionText: AnsiString;
+    ExpectedResult: AnsiString;
     MatchStart: integer;
     MatchStart: integer;
   end;
   end;
 
 
@@ -375,10 +375,10 @@ begin
 end;
 end;
 
 
 
 
-Class function TOrgTestRegexpr.PrintableString(AString: string): string;
+Class function TOrgTestRegexpr.PrintableString(AString: AnsiString): AnsiString;
 
 
 var
 var
-    ch: Char;
+    ch: AnsiChar;
 
 
 begin
 begin
   Result := '';
   Result := '';
@@ -394,7 +394,7 @@ procedure TOrgTestRegexpr.RunRETest(aIndex: Integer);
 
 
 var
 var
   T: TRegExTest;
   T: TRegExTest;
-  act : String;
+  act : AnsiString;
 
 
 begin
 begin
   T:=testCases[aIndex];
   T:=testCases[aIndex];

+ 16 - 16
packages/regexpr/tests/tests.pp

@@ -43,12 +43,12 @@ type
   protected
   protected
     procedure RunRETest(aIndex: Integer);
     procedure RunRETest(aIndex: Integer);
     procedure CompileRE(const AExpression: RegExprString);
     procedure CompileRE(const AExpression: RegExprString);
-    procedure IsNotNull(AErrorMessage: string; AObjectToCheck: TObject);
-    procedure IsTrue(AErrorMessage: string; AConditionToCheck: boolean);
-    procedure IsFalse(AErrorMessage: string; AConditionToCheck: boolean);
-    procedure AreEqual(AErrorMessage: string; s1, s2: string); overload;
-    procedure AreEqual(AErrorMessage: string; i1, i2: integer); overload;
-    procedure TestBadRegex(const AErrorMessage: string; const AExpression: RegExprString);
+    procedure IsNotNull(AErrorMessage: AnsiString; AObjectToCheck: TObject);
+    procedure IsTrue(AErrorMessage: AnsiString; AConditionToCheck: boolean);
+    procedure IsFalse(AErrorMessage: AnsiString; AConditionToCheck: boolean);
+    procedure AreEqual(AErrorMessage: AnsiString; s1, s2: AnsiString); overload;
+    procedure AreEqual(AErrorMessage: AnsiString; i1, i2: integer); overload;
+    procedure TestBadRegex(const AErrorMessage: AnsiString; const AExpression: RegExprString);
   published
   published
     procedure TestEmpty;
     procedure TestEmpty;
     procedure TestNotFound;
     procedure TestNotFound;
@@ -144,10 +144,10 @@ Type
     MatchStart: integer;
     MatchStart: integer;
   end;
   end;
 
 
-function PrintableString(const S: RegExprString): string;
+function PrintableString(const S: RegExprString): AnsiString;
 var
 var
-  buf: string;
-  ch: char;
+  buf: AnsiString;
+  ch: AnsiChar;
   i: integer;
   i: integer;
 begin
 begin
   Result := '';
   Result := '';
@@ -719,12 +719,12 @@ const
     )
     )
   );
   );
 
 
-procedure TTestRegexpr.IsFalse(AErrorMessage: string; AConditionToCheck: boolean);
+procedure TTestRegexpr.IsFalse(AErrorMessage: AnsiString; AConditionToCheck: boolean);
 begin
 begin
   IsTrue(AErrorMessage, not AConditionToCheck)
   IsTrue(AErrorMessage, not AConditionToCheck)
 end;
 end;
 
 
-procedure TTestRegexpr.IsTrue(AErrorMessage: string; AConditionToCheck: boolean);
+procedure TTestRegexpr.IsTrue(AErrorMessage: AnsiString; AConditionToCheck: boolean);
 begin
 begin
   {$IFDEF FPC}
   {$IFDEF FPC}
   AssertTrue(AErrorMessage, AConditionToCheck);
   AssertTrue(AErrorMessage, AConditionToCheck);
@@ -733,7 +733,7 @@ begin
   {$ENDIF}
   {$ENDIF}
 end;
 end;
 
 
-procedure TTestRegexpr.IsNotNull(AErrorMessage: string; AObjectToCheck: TObject
+procedure TTestRegexpr.IsNotNull(AErrorMessage: AnsiString; AObjectToCheck: TObject
   );
   );
 begin
 begin
   {$IFDEF FPC}
   {$IFDEF FPC}
@@ -743,7 +743,7 @@ begin
   {$ENDIF}
   {$ENDIF}
 end;
 end;
 
 
-procedure TTestRegexpr.AreEqual(AErrorMessage: string; s1, s2: string);
+procedure TTestRegexpr.AreEqual(AErrorMessage: AnsiString; s1, s2: AnsiString);
 begin
 begin
   {$IFDEF FPC}
   {$IFDEF FPC}
   AssertEquals(AErrorMessage, s1,s2);
   AssertEquals(AErrorMessage, s1,s2);
@@ -752,7 +752,7 @@ begin
   {$ENDIF}
   {$ENDIF}
 end;
 end;
 
 
-procedure TTestRegexpr.AreEqual(AErrorMessage: string; i1, i2: integer);
+procedure TTestRegexpr.AreEqual(AErrorMessage: AnsiString; i1, i2: integer);
 begin
 begin
   {$IFDEF FPC}
   {$IFDEF FPC}
   AssertEquals(AErrorMessage, i1,i2);
   AssertEquals(AErrorMessage, i1,i2);
@@ -761,7 +761,7 @@ begin
   {$ENDIF}
   {$ENDIF}
 end;
 end;
 
 
-procedure TTestRegexpr.TestBadRegex(const AErrorMessage: string;
+procedure TTestRegexpr.TestBadRegex(const AErrorMessage: AnsiString;
   const AExpression: RegExprString);
   const AExpression: RegExprString);
 var
 var
   ok: boolean;
   ok: boolean;
@@ -793,7 +793,7 @@ end;
 {$IFDEF OverMeth}
 {$IFDEF OverMeth}
 procedure TTestRegexpr.TestReplaceOverload;
 procedure TTestRegexpr.TestReplaceOverload;
 var
 var
-  act: string;
+  act: AnsiString;
 begin
 begin
   CompileRE('A\r(\n)'); // just to print compiled re - it will be recompiled below
   CompileRE('A\r(\n)'); // just to print compiled re - it will be recompiled below
   act:=ReplaceRegExpr('A\r(\n)', 'a'#$d#$a, '\n', [rroModifierI, rroUseSubstitution]);
   act:=ReplaceRegExpr('A\r(\n)', 'a'#$d#$a, '\n', [rroModifierI, rroUseSubstitution]);