anchor.diff:          LParams := TrimLeft(Copy(LParams, 3, Length(LParams) - 2));
         end;
       end;
  +  end
  +  else
  +  if (Pos('DECLARED(', LParams) = 1) then
  +  begin
  +    LDefine := Copy(LParams, 10, Pos(')', LParams) - 10);
  +    Result := IsDeclared(LDefine);
  +    //TODO: support NOT, OR, AND
     end else
       Result := False;
   end;
  
positive.code: 
      procedure AddDefine(const ADefine: string);
      procedure RemoveDefine(const ADefine: string);
      function IsDefined(const ADefine: string): Boolean;
      procedure ClearDefines;
      procedure InitDefinesDefinedByCompiler;
  
negative.code:   FTokenID := ptIntegerConst;
    while CharInSet(FBuffer.Buf[FBuffer.Run], ['0'..'9', 'A'..'F', 'a'..'f']) do
      Inc(FBuffer.Run);
  end;
  
  function TmwBasePasLex.IsDeclared(const ASymbol: string): Boolean;
  begin
    Result := SameText(ASymbol, 'ANSICHAR');
  end;
  
  function TmwBasePasLex.IsDefined(const ADefine: string): Boolean;
  