anchor.diff:          '%':
             begin
               if not (AExpressionKind in [ekText,ekUnknown]) then
  -              Exception.Create('Bad numeric expression');
  +              EVisualGridParserException.Create('Bad numeric expression');
               if (c+1)^ = '%' then
               begin
                 LToken := tkText;
  
positive.code:                 tkGreaterOrEqual: NumericComparisionKind:=nckNumericGTE;
                end;
            ekSet:
              raise Exception.CreateFmt('Unexpected token found : "%s"', [TokenToStr(LToken)]);
          end;
        tkOpeningParenthesis, tkOpeningBracket:
          if AExpressionKind = ekSet then
            if LPrevToken <> tkNone then
              raise Exception.CreateFmt('Bad "between" expression. Unexpected "%s"', [TokenToStr(LToken)])
            else
            with AExpressionRecord do
            case LToken of
  
negative.code:       LValue^:=LValue^+TokenToStr(LToken);
  
      if LPrevToken in [tkClosingBracket, tkClosingParenthesis] then
        raise EVisualGridParserException.Create('Invaild expression (char detected after closing bracket)');
  
      // rules
      case LToken of
        tkNum:
          if AExpressionKind = ekSet then
            if not (LPrevToken in [tkOpeningBracket, tkOpeningParenthesis, tkComma]) then
              raise EVisualGridParserException.CreateFmt('Unexpected token found : "%s"', [TokenToStr(LToken)]);
        tkText:
          if AExpressionKind in [ekSet, ekNum] then
            raise EVisualGridParserException.Create('Unexpected string literal in expression');
        tkClosingBracket:
          if (AExpressionKind = ekSet) then
            if (AExpressionRecord.SetKind<>skNumericBetweenInclusive) then
              raise EVisualGridParserException.Create('Badly closed "between" expression')
            else if LPrevToken <> tkNum then
              raise EVisualGridParserException.Create('Missing number in expression');
        tkClosingParenthesis:
          if (AExpressionKind = ekSet) then
            if (AExpressionRecord.SetKind<>skNumericBetweenExclusive) then
              raise EVisualGridParserException.Create('Badly closed "between" expression')
            else if LPrevToken <> tkNum then
              raise EVisualGridParserException.Create('Missing number in expression');
        tkComma:
          if AExpressionKind = ekSet then
            if not (LPrevToken = tkNum) then
              raise EVisualGridParserException.Create('Unexpected occurrence of comma found')
            else
              NextValue;
        tkPercent:
  