anchor.diff:              repeat
                 if c^ = '.' then
                   if LDot then
  -                  raise Exception.Create('Unexpected number format')
  +                  raise EVisualGridParserException.Create('Unexpected number format')
                   else
                     LDot:=true;
                 LValue^:=LValue^+c^;
  
positive.code:     ekSet: (SetKind: TSetKind);
    end;
  
    TVisualGridSearchParser = class
    public
      class procedure Parse(const AExpression: utf8string;
  
negative.code:       tkOpeningBracket, tkOpeningParenthesis: AExpressionKind:=ekSet;
        tkLess..tkGreaterOrEqual, tkNum: AExpressionKind:=ekNum;
      else
        raise EVisualGridParserException.Create('Unexpected char in expression');
      end;
  
      // text mode is special so part of tokens are used as normal characters
  