anchor.diff:      procedure DoProcTable(AChar: Char);
       function IsIdentifiers(AChar: Char): Boolean; inline;
       function HashValue(AChar: Char): Integer;
  +    function EvaluateConditionalExpression(const AParams: String): Boolean;
     protected
       procedure SetLine(const Value: string); virtual;
       procedure SetOrigin(NewValue: PChar); virtual;
  
positive.code:           FOnIfOptDirect(Self);
        end;
      PtIfDirect:
        begin
          if FUseDefines then
          begin
            Param := DirectiveParam;
            if Pos('DEFINED', Param) = 1 then
            begin
              Def := Copy(Param, 9, Pos(')', Param) - 9);
              EnterDefineBlock(IsDefined(Def));
            end else
            if Pos('NOT DEFINED', Param) = 1 then
            begin
              Def := Copy(Param, 13, Pos(')', Param) - 13);
              EnterDefineBlock(not IsDefined(Def));
            end else
              EnterDefineBlock(False);
          end;
          if Assigned(FOnIfDirect) then
            FOnIfDirect(Self);
        end;
  
negative.code:   end;
  
  implementation
  
  type
    TmwPasLexExpressionEvaluation = (leeNone, leeAnd, leeOr);
  
  procedure MakeIdentTable;
  var
  