anchor.diff:        LValue^:=LValue^+TokenToStr(LToken);
   
       if LPrevToken in [tkClosingBracket, tkClosingParenthesis] then
  -      raise ESearchExpressionParserException.Create('Invaild expression (char detected after closing bracket)');
  +      raise ESearchExpressionParserException.Create(sInvaildExpression_CharDetectedAfterClosingBracket);
   
       // rules
       case LToken of
         tkNum:
           if LExpressionKind = ekSet then
             if not (LPrevToken in [tkOpeningBracket, tkOpeningParenthesis, tkComma]) then
  -            raise ESearchExpressionParserException.CreateFmt('Unexpected token found : "%s"', [TokenToStr(LToken)]);
  +            raise ESearchExpressionParserException.CreateFmt(sUnexpectedTokenFound, [TokenToStr(LToken)]);
         tkText:
           if LExpressionKind in [ekSet, ekNum] then
  -          raise ESearchExpressionParserException.Create('Unexpected string literal in expression');
  +          raise ESearchExpressionParserException.Create(sUnexpectedStringLiteralInExpression);
         tkClosingBracket:
           if (LExpressionKind = ekSet) then
             if (AExpressionRecord.SetKind<>skNumericBetweenInclusive) then
  -            raise ESearchExpressionParserException.Create('Badly closed "between" expression')
  +            raise ESearchExpressionParserException.Create(sBadlyClosedBetweenExpression)
             else if LPrevToken <> tkNum then
  -            raise ESearchExpressionParserException.Create('Missing number in expression');
  +            raise ESearchExpressionParserException.Create(sMissingNumberInExpression);
         tkClosingParenthesis:
           if (LExpressionKind = ekSet) then
             if (AExpressionRecord.SetKind<>skNumericBetweenExclusive) then
  -            raise ESearchExpressionParserException.Create('Badly closed "between" expression')
  +            raise ESearchExpressionParserException.Create(sBadlyClosedBetweenExpression)
             else if LPrevToken <> tkNum then
  -            raise ESearchExpressionParserException.Create('Missing number in expression');
  +            raise ESearchExpressionParserException.Create(sMissingNumberInExpression);
         tkComma:
           if LExpressionKind = ekSet then
             if not (LPrevToken = tkNum) then
  -            raise ESearchExpressionParserException.Create('Unexpected occurrence of comma found')
  +            raise ESearchExpressionParserException.CreateFmt(sUnexpectedOccurrenceOf_Found, [','])
             else
               NextValue;
         tkPercent:
           if LExpressionKind = ekText then
           begin
             if LLastPercent then
  -            raise ESearchExpressionParserException.Create('Unexpected occurrence of % found');
  +            raise ESearchExpressionParserException.CreateFmt(sUnexpectedOccurrenceOf_Found, ['%']);
             case LPrevToken of
               tkText, tkNum: // tkNum is here because is possible to parse: 123%
                 begin
  
positive.code: class procedure TArrayTool<T>.MoveItem(var Values : array of T; FromIndex, ToIndex : SizeInt);
  var i : Integer; item : T;
  begin
    if (FromIndex < Low(Values)) OR (FromIndex > High(Values)) then Raise Exception.Create('Invalid Parameter: FromIndex out of bounds');
    if (ToIndex < Low(Values)) OR (ToIndex > High(Values)) then Raise Exception.Create('Invalid Parameter: ToIndex out of bounds');
  
    item := Values[FromIndex];
    if FromIndex < ToIndex then begin
  
negative.code:               end;
              ekNum:
                if not (LPrevToken in NUM_OPERATORS) then
                  raise ESearchExpressionParserException.Create(sBadNumericExpression)
                else
                begin
                  while c^ in [#1..#32] do Inc(c);
  