Changeset 11f1f94 in tol


Ignore:
Timestamp:
May 31, 2011, 7:50:30 AM (15 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
1b18f14
Parents:
344d264
Message:

Fixes #1223
Fixes #1226
Fixes #1228
Refs #1220

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@3588 be4846ae-f051-483a-831f-b64e7d08527f

Location:
tol/btol/bgrammar
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • tol/btol/bgrammar/class.cpp

    r344d264 r11f1f94  
    6161  isMethod_    (false),
    6262  method_      (NULL),
     63  firstParent_ (NULL),
    6364  parent_      (NULL),
    6465  deleteBranch_(false),
    6566  isStatic_    (false),
    66   static_      (NULL)
     67  static_      (NULL),
     68  description_ ("")
    6769{
    6870}
    … …  
    7880  isMethod_    (false),
    7981  method_      (NULL),
     82  firstParent_ (NULL),
    8083  parent_      (NULL),
    8184  deleteBranch_(false),
    8285  isStatic_    (false),
    83   static_      (NULL) 
     86  static_      (NULL),
     87  description_ ("")
    8488{
    8589  Copy(mbr);
    … …  
    9599  isMethod_    (false),
    96100  method_      (NULL),
     101  firstParent_ (NULL),
    97102  parent_      (NULL),
    98103  deleteBranch_(false),
    99104  isStatic_    (false),
    100   static_      (NULL)
     105  static_      (NULL),
     106  description_ ("")
    101107{
    102108  List* cdr;
    103109  BCore* car;
     110  firstParent_ = parent;
    104111  parent_ = parent;
    105112  isGood_ = true;
    … …  
    319326  if(!cls) { return(dump); }
    320327  if((name[0]=='_')&&(name[1]!='.')) { return(dump); }
    321   if(name.BeginWith("_.autodoc.member.")) { return(dump); }
    322   BSyntaxObject* adm = cls->FindStaticMember(BText("_.autodoc.member.")+name, false);
    323328  dump += BText("//")+
    324329    BText((isStatic_)?"Static":"Non static")+ " "+
    … …  
    326331    BText((isMethod_)?"method":"member")+
    327332    " defined at " + cls->FullName()+"\n";
    328   if(adm)
     333  if(description_.HasName())
    329334  {
    330335    dump+="/* "; 
    331     dump+=Text(adm); 
     336    dump+=description_; 
    332337    dump+=" */\n";
    333338  }
    … …  
    350355  definition_   = mbr.definition_; 
    351356  isMethod_     = mbr.isMethod_;   
     357  firstParent_  = mbr.firstParent_;
    352358  parent_       = mbr.parent_;
    353359  method_       = mbr.method_;
    … …  
    507513  memberHash_  (NULL),
    508514  lastPosition_(0),
    509   notImplementedMethods_(0)
     515  notImplementedMethods_(0),
     516  docMbrHash_(NULL),
     517  docMbr_(0)
    510518{
    511519}
    … …  
    522530  memberHash_  (NULL),
    523531  lastPosition_(0),
    524   notImplementedMethods_(0)
     532  notImplementedMethods_(0),
     533  docMbrHash_(NULL),
     534  docMbr_(0)
    525535{
    526536  Copy(mbrOwn);
    … …  
    551561  mbrDefHash_  = new BMemberByNameHash;
    552562  memberHash_  = new BMbrNumByNameHash;
     563  docMbrHash_  = new BAutodocMemberHash;
    553564  SetEmptyKey  ((*mbrDecHash_), NULL);
    554565  SetEmptyKey  ((*mbrDefHash_), NULL);
    555566  SetEmptyKey  ((*memberHash_), NULL);
     567  SetEmptyKey  ((*docMbrHash_), NULL);
    556568  SetDeletedKey((*mbrDecHash_), name_del_key());
    557569  SetDeletedKey((*mbrDefHash_), name_del_key());
    558570  SetDeletedKey((*memberHash_), name_del_key());
     571  SetDeletedKey((*docMbrHash_), name_del_key());
    559572}
    560573
    … …  
    633646    }
    634647  }
     648  for(n=0; n<=docMbr_.Size(); n++)
     649  {
     650    delete docMbr_[n];
     651  }
    635652  if(mbrDecHash_) { delete mbrDecHash_; }
    636653  if(mbrDefHash_) { delete mbrDefHash_; }
    637654  if(memberHash_) { delete memberHash_; }
     655  if(docMbrHash_) { delete docMbrHash_; }
    638656  mbrDecHash_ = NULL;
    639657  mbrDefHash_ = NULL;
    640658  memberHash_ = NULL;
     659  docMbrHash_ = NULL;
    641660}
    642661
    … …  
    763782
    764783//--------------------------------------------------------------------
     784bool BMemberOwner::AddAutodocMember(
     785  const BText& name, const BText& desc, const BMemberOwner* parent)
     786//--------------------------------------------------------------------
     787{
     788  return(true);
     789}
     790
     791//--------------------------------------------------------------------
     792  bool BMemberOwner::AddAutodocMember(BMember* mbrPtr)
     793//--------------------------------------------------------------------
     794{
     795  return(true);
     796}
     797
     798
     799//--------------------------------------------------------------------
    765800  bool BMemberOwner::AddMember(BMember* newMember)
    766801//! Adds a new member if it's compatible with existant ones
    … …  
    771806  const BText& name = newMember->name_;
    772807  assert(name.HasName()&& dec.HasName());
     808
     809  if(OwnerType()==BCLASS)
     810  {
     811    if(name.BeginWith("_.autodoc.member."))
     812    {
     813      bool ok = AddAutodocMember(newMember);
     814      delete newMember;
     815      return(ok);
     816    }
     817  }
    773818#ifndef USE_STATIC_INHERITAGE
    774819  if(newMember->isStatic_ && (newMember->parent_!=this))
    … …  
    838883      (*memberHash_)[name] = newMbrNum;
    839884      (*mbrDefHash_)[dec ] = newMember;
     885      newMember->firstParent_ = mbrDef->firstParent_;
    840886    }
    841887    else if(mbrDec)
    … …  
    854900        notImplementedMethods_--;
    855901      }
     902      newMember->firstParent_ = mbrDec->firstParent_;
    856903    }
    857904  }
    … …  
    877924            I2(" by declaration ", " por la declaración ")+
    878925            "\n"+newMember->FullExpression()+"\n");
     926    }
     927    else
     928    {
     929      newMember->firstParent_ = mbrDef->firstParent_;
    879930    }
    880931  }
    … …  
    913964    (*parentHash_)[name] = parent;
    914965    //Adds parent members to
    915     n=0;
    916966    for(n=0; n<parent->member_.Size(); n++)
    917967    {
    918968      ok = ok && AddMember(parent->member_[n]->member_);
     969    }
     970    for(n=0; n<parent->docMbr_.Size(); n++)
     971    {
     972      BAutoDocInf& a = *(parent->docMbr_[n]);
     973      ok = ok && AddAutodocMember(a.name_,a.desc_,a.parent_);
    919974    }
    920975  }
    … …  
    10961151}
    10971152
     1153
    10981154//--------------------------------------------------------------------
    10991155  BText BNameBlockMemberOwner::getFullName() const
    … …  
    13941450
    13951451//--------------------------------------------------------------------
     1452  bool BClass::AddAutodocMember(const BText& name, const BText& desc, const BMemberOwner* parent)
     1453//! Adds a new member if it's compatible with existant ones
     1454//--------------------------------------------------------------------
     1455{
     1456  bool ok = true;
     1457  BAutodocMemberHash::const_iterator found = docMbrHash_->find(name);
     1458  if(found!=docMbrHash_->end())
     1459  {
     1460    int s = found->second;
     1461    BClass* cls = (BClass*)parent;
     1462    BClass* oldCls = (BClass*)docMbr_[s]->parent_;
     1463    if(cls==oldCls)
     1464    {
     1465      Error(I2("Special documentation member ",
     1466             "El miembro especial de documentación ")+
     1467          cls->getFullNameRef()+"::"+name+
     1468          I2(" is already defined.",
     1469             " ya está definido."));
     1470      ok=false;
     1471    }
     1472    else
     1473    {
     1474/*
     1475      Std(BText("TRACE Changing inherited _.autodoc_member from ")+
     1476        oldCls->getFullNameRef()+"::"+name+"='"+docMbr_[s]->desc_+"' to "+
     1477        cls->getFullNameRef()+"::"+name+"='"+desc+"'\n");
     1478*/
     1479      docMbr_[s]->desc_ = desc;
     1480      docMbr_[s]->parent_ = parent;
     1481    }
     1482  }
     1483  else
     1484  {
     1485    int s = docMbr_.Size();
     1486/*
     1487    BClass* cls = (BClass*)parent;
     1488    Std(BText("TRACE Adding [")+s+"] _.autodoc_member "+
     1489        cls->getFullNameRef()+"::"+name+"='"+desc+"'\n");
     1490*/
     1491    docMbr_.Add(new BAutoDocInf(name, desc, parent));
     1492    (*docMbrHash_)[docMbr_[s]->name_] = s;
     1493  }
     1494  return(ok);
     1495}
     1496
     1497//--------------------------------------------------------------------
     1498  bool BClass::AddAutodocMember(BMember* mbrPtr)
     1499//! Adds a new member if it's compatible with existant ones
     1500//--------------------------------------------------------------------
     1501{
     1502  BMember& mbr = *mbrPtr;
     1503  bool ok = true;
     1504  if(!mbr.static_)
     1505  {
     1506    Error(I2("Special documentation member ",
     1507             "El miembro especial de documentación ")+
     1508          getFullNameRef()+"::"+mbr.name_+
     1509          I2(" is corrupted or it didn't have declared as static.",
     1510             " está corrupto o no se declaró como static."));
     1511    ok = false;
     1512  }
     1513  else if(mbr.static_->Grammar()!=GraText())
     1514  {
     1515    Error(I2("Special documentation member ",
     1516             "El miembro especial de documentación ")+
     1517          getFullNameRef()+"::"+mbr.name_+
     1518          I2(" should be a Text instead of a ",
     1519             " debería ser un Text en lugar de un ")+
     1520          mbr.static_->Grammar()->Name());
     1521    ok = false;
     1522  }
     1523  else
     1524  {
     1525    BText desc = Text(mbr.static_);
     1526    BText name = mbr.name_.SubString(17,mbr.name_.Length());
     1527    ok = AddAutodocMember(name, desc, this);
     1528  }
     1529  return(true);
     1530}
     1531
     1532//--------------------------------------------------------------------
     1533  bool BClass::PutMemberDescription(
     1534    const BText& name,
     1535    const BText& desc,
     1536    bool autodoc)
     1537//--------------------------------------------------------------------
     1538{
     1539  bool ok = true;
     1540  BMember* mbr = FindMember(name);
     1541  if(!mbr)
     1542  {
     1543    ok = false;
     1544    if(autodoc)
     1545    {
     1546      Warning(I2("Special documentation member ",
     1547                 "El miembro especial de documentación ")+
     1548              getFullNameRef()+"::_.autodoc.member."+name+
     1549              I2(" is irrelevant due it doesn't exist a member nor method called ",
     1550                 " es irrelevante porque no existe ningún miembro ni método llamado ")+
     1551              name);
     1552    }
     1553    else
     1554    {
     1555      Warning(I2("Cannot apply PutDescription to inexistent member ",
     1556                 "No se puede aplicar PutDescription al miembro inexistente ")+
     1557              getFullNameRef()+"::"+name);
     1558    }
     1559  }
     1560  else
     1561  {
     1562    BSyntaxObject* obj = NULL;
     1563/*
     1564    if(mbr->description_.HasName())
     1565    {
     1566      Warning(I2("Description of member ","La descripción del miembro ")+
     1567              getFullNameRef()+"::"+name+
     1568              I2(" is already defined in"," ya ha sido definida en ")+
     1569              parent->getFullNameRef());
     1570    }
     1571    else
     1572    {
     1573      mbr->description_ = desc;
     1574    }
     1575*/
     1576    BClass* parent = (BClass*)mbr->parent_;
     1577    BClass* firstParent = (BClass*)mbr->firstParent_;
     1578    if(( mbr->method_ && (parent     ==this)) ||
     1579       (!mbr->method_ && (firstParent==mbr->parent_)) )
     1580       
     1581    {
     1582      mbr->description_ = desc;
     1583      if(mbr->method_) { obj = mbr->method_; }
     1584      else if(mbr->static_) { obj = mbr->static_; }
     1585      if(obj)
     1586      {
     1587        obj->PutDescription(desc);
     1588      }
     1589    }
     1590    else
     1591    {
     1592      if(!mbr->method_)
     1593      {
     1594        mbr->description_ = firstParent->FindMember(name)->description_;
     1595      }
     1596      else
     1597      {
     1598        mbr->description_ = desc;
     1599      }
     1600      ok = false;
     1601      if(mbr->method_)
     1602      {
     1603        Warning(I2("Cannot change to non overloaded method ",
     1604                   "No se puede cambiar la descripción de un método no sobrecargado ")+
     1605                getFullNameRef()+"::"+name+
     1606                I2(" inherited from "," heredado de ")+
     1607                parent->getFullNameRef()+"::"+name);
     1608      }
     1609      else
     1610      {
     1611        Warning(I2("Cannot change to non method member ",
     1612                   "No se puede cambiar la descripción de un miembro que no es un método ")+
     1613                getFullNameRef()+"::"+name+
     1614                I2(" originally inherited from "," heredado originalmente de ")+
     1615                firstParent->getFullNameRef()+"::"+name);
     1616      }
     1617    } 
     1618  }
     1619  return(ok);
     1620};
     1621
     1622//--------------------------------------------------------------------
    13961623  bool BClass::CheckAutoDoc()
    13971624//--------------------------------------------------------------------
    … …  
    13991626  bool ok = true;
    14001627  int n=0;
    1401   for(n=0; ok && (n<member_.Size()); n++)
    1402   {
    1403     if(!member_[n]) { continue; }
    1404     BMember& mbr = *(member_[n]->member_);
    1405     BSyntaxObject* obj = NULL;
    1406     if(mbr.name_.BeginWith("_.autodoc.member."))
    1407     {
    1408       if(!mbr.static_)
    1409       {
    1410         Error(I2("Special documentation member ",
    1411                  "El miembro especial de documentación ")+
    1412               getFullNameRef()+"::"+mbr.name_+
    1413               I2(" is corrupted or it didn't have declared as static.",
    1414                  " está corrupto o no se declaró como static."));
    1415         ok = false;
    1416       }
    1417       else if(mbr.static_->Grammar()!=GraText())
    1418       {
    1419         Error(I2("Special documentation member ",
    1420                  "El miembro especial de documentación ")+
    1421               getFullNameRef()+"::"+mbr.name_+
    1422               I2(" should be a Text instead of a ",
    1423                  " debería ser un Text en lugar de un ")+
    1424               mbr.static_->Grammar()->Name());
    1425         ok = false;
    1426       }
    1427       else
    1428       {
    1429         BText& desc = Text(mbr.static_);
    1430         BText auxName = mbr.name_.SubString(17,mbr.name_.Length());
    1431         BMember* auxMember = FindMember(auxName);
    1432         if(!auxMember)
    1433         {
    1434           Warning(I2("Special documentation member ",
    1435                      "El miembro especial de documentación ")+
    1436                   getFullNameRef()+"::"+mbr.name_+
    1437                   I2(" is irrelevant due it doesn't exist a member nor method called ",
    1438                      " es irrelevante porque no existe ningún miembro ni método llamado ")+
    1439                   auxName);
    1440         }
    1441         else
    1442         {
    1443           if(auxMember->method_) { obj = auxMember->method_; }
    1444           else if(auxMember->static_) { obj = auxMember->static_; }
    1445           if(obj)
    1446           {
    1447             obj->PutDescription(desc);
    1448           } 
    1449         }
    1450       }
    1451     }
    1452   } 
     1628  BAutodocMemberHash::const_iterator iterC;
     1629  BAutodocMemberHash& dmh = *docMbrHash_;
     1630  for(iterC=dmh.begin(); iterC!=dmh.end(); iterC++, n++)
     1631  {
     1632    int s = iterC->second;
     1633    const BText& name = docMbr_[s]->name_;
     1634    const BText& desc = docMbr_[s]->desc_;
     1635    PutMemberDescription(name, desc, true);
     1636  };
    14531637  return(ok);
    14541638};
    … …  
    18932077    }
    18942078    const BText& name = mbr->name_;
    1895     if(name.BeginWith("_.autodoc.member.")) { continue; }
     2079  //if(name.BeginWith("_.autodoc.member.")) { continue; }
    18962080    BSet reg;
    18972081    reg.PrepareStore(6);
    … …  
    19132097      definedAtClass = mbr->parent_->getFullName();
    19142098    }
    1915 
    1916     BText desc ="";
    1917     BSyntaxObject* adoc = cls->FindStaticMember(BText("_.autodoc.member.")+name, false);
    1918     if(adoc) { desc = Text(adoc); }
    19192099
    19202100    reg.AddElement(new BContensDat ("",mbr->isStatic_,""));
    … …  
    19242104    reg.AddElement(new BContensText("",access,""));
    19252105    reg.AddElement(new BContensText("",definedAtClass,""));
    1926     reg.AddElement(new BContensText("",desc,""));
     2106    reg.AddElement(new BContensText("",mbr->description_,""));
    19272107
    19282108    reg.PutStruct(strClassMemberInfo_);
  • tol/btol/bgrammar/nameblock.cpp

    r344d264 r11f1f94  
    823823    if(!dsc.HasName())
    824824    {
    825       BText autodocName = BText("_.autodoc.member.")+obj->Name();
    826       BSyntaxObject* autodoc = NULL;
    827825      if(class_)
    828826      {
    829         autodoc = class_->FindStaticMember(autodocName,-1);
     827        BMember* mbr = class_->FindMember(obj->Name());
     828        if(mbr) { obj->PutDescription(mbr->description_); }
    830829      }
    831830      else
    832831      {
     832        BText autodocName = BText("_.autodoc.member.")+obj->Name();
     833        BSyntaxObject* autodoc = NULL;
    833834        autodoc = Member(autodocName);
    834       }
    835       if(autodoc && autodoc->Grammar()==GraText())
    836       {
    837         BText& desc = Text(autodoc);
    838         obj->PutDescription(desc);
     835        if(autodoc && autodoc->Grammar()==GraText())
     836        {
     837          BText& desc = Text(autodoc);
     838          obj->PutDescription(desc);
     839        }
    839840      }
    840841    }
    … …  
    846847    if(!dsc.HasName())
    847848    {
    848       BText autodocName = BText("_.autodoc.member.")+obj->Name();
    849       BSyntaxObject* autodoc = NULL;
    850849      if(class_)
    851850      {
    852         autodoc = class_->FindStaticMember(autodocName,-1);
     851        BMember* mbr = class_->FindMember(obj->Name());
     852        if(mbr) { obj->PutDescription(mbr->description_); }
    853853      }
    854854      else
    855855      {
     856        BText autodocName = BText("_.autodoc.member.")+obj->Name();
     857        BSyntaxObject* autodoc = NULL;
    856858        autodoc = Member(autodocName);
    857       }
    858       if(autodoc && autodoc->Grammar()==GraText())
    859       {
    860         BText& desc = Text(autodoc);
    861         obj->PutDescription(desc);
     859        if(autodoc && autodoc->Grammar()==GraText())
     860        {
     861          BText& desc = Text(autodoc);
     862          obj->PutDescription(desc);
     863        }
    862864      }
    863865    }
  • tol/btol/bgrammar/spfuninst.cpp

    r344d264 r11f1f94  
    10201020            memberName = memberName.SubString(1,memberName.Length());
    10211021            BClass* cls = (BClass*)obj;
    1022             BMember* mbr = cls->FindMember(memberName);
    1023             if(!mbr)
    1024             { 
    1025               Error(third_arg_error);
     1022            if(!cls->PutMemberDescription(memberName, desc, false))
     1023            {
     1024              BSpecialFunction::TestResult(_name_,NIL,tre,NIL,BTRUE);
    10261025            }
    1027             else
    1028             {
    1029               BSyntaxObject* adoc = cls->FindStaticMember(BText("_.autodoc.member.")+memberName, false);
    1030               if(adoc) { Text(adoc)=desc; }
    1031               if(mbr->method_) { obj=mbr->method_; }
    1032               else if(mbr->static_) { obj=mbr->static_; }
    1033             }
     1026            SAFE_DESTROY(desObj,obj);
     1027            return(NULL);
    10341028          }
    10351029          else
    … …  
    22432237
    22442238  AddInstance("PutDescription",
    2245   I2("(Text newDescription, Anything object)",
    2246      "(Text nuevaDescripción, Anything objeto)"),
     2239  I2("(Text newDescription, Anything object [, Text member])",
     2240     "(Text nuevaDescripción, Anything objeto [, Text miembro])"),
    22472241  I2("Puts a new description to an object. "
    22482242     "You also can modify description of a Struct or a Class by "
  • tol/btol/bgrammar/tol_bclass.h

    r344d264 r11f1f94  
    3535class TOL_API BClass;
    3636struct TOL_API BMbrNum;
     37
     38class TOL_API BAutoDocInf
     39{
     40 public:
     41  BText name_;
     42  BText desc_;
     43  const BMemberOwner* parent_;
     44  BAutoDocInf(const BText& name, const BText& desc, const BMemberOwner* parent)
     45  : name_(name), desc_(desc), parent_(parent)
     46  { }
     47  BAutoDocInf(const BAutoDocInf* a)
     48  : name_(a->name_), desc_(a->desc_), parent_(a->parent_)
     49  { }
     50};
     51
    3752template class TOL_API BArray<BClass*>;
    3853template class TOL_API BArray<BMember*>;
    3954template class TOL_API BArray<BMbrNum*>;
     55template class TOL_API BArray<BMemberOwner*>;
     56template class TOL_API BArray<BAutoDocInf*>;
     57
    4058//template class TOL_API BArray<BMember*>;
    4159
    … …  
    5472  List*          branch_;       //!< Parser branch of the member
    5573  bool           isGood_;       //!< False when there are some error
     74  BMemberOwner*  firstParent_;  //!< First Member owner (Class or NameBlock)
    5675  BMemberOwner*  parent_;       //!< Member owner (Class or NameBlock)
    5776  BText          name_;         //!< Member name
    … …  
    6382  BSyntaxObject* method_;       //!< Store for Class member
    6483  BSyntaxObject* static_;       //!< Store for Class static member or method
     84  BText          description_;  //!< Store for Class member description
    6585 public:
    6686  // Constructors and destructors: bgrammar\class.cpp
    … …  
    100120  //! Type for store searchable and sortable members
    101121  typedef hash_map_by_name<BMbrNum*>::dense_ BMbrNumByNameHash;
     122 
     123  //! Type for store searchable and sortable names
     124  typedef hash_map_by_name<int>::dense_ BAutodocMemberHash;
     125
    102126
    103127  //! Type of member owner
    … …  
    105129
    106130  List* tree_;  //!< Parser branch of the Class
    107   bool isGood_;                   //!< False when there are som error
    108   BClassByNameHash*  parentHash_; //!< Classes which inherites from
    109   BClassByNameHash*  ascentHash_; //!< Classes which recursively inherites from
    110   BMemberByNameHash* mbrDecHash_; //!< Members with just declaration
    111   BMemberByNameHash* mbrDefHash_; //!< Members with default value
    112   BMbrNumByNameHash* memberHash_; //!< All members hashed by name
    113   BArray<BMbrNum*>   member_;
     131  bool isGood_;                    //!< False when there are som error
     132  BClassByNameHash*    parentHash_; //!< Classes which inherites from
     133  BClassByNameHash*    ascentHash_; //!< Classes which recursively inherites from
     134  BMemberByNameHash*   mbrDecHash_; //!< Members with just declaration
     135  BMemberByNameHash*   mbrDefHash_; //!< Members with default value
     136  BMbrNumByNameHash*   memberHash_; //!< All members hashed by name
     137  BAutodocMemberHash*  docMbrHash_; //!< Autodoc members
     138  BArray<BMbrNum*>     member_;
     139  BArray<BAutoDocInf*> docMbr_;
    114140  int notImplementedMethods_;
    115141public:
    … …  
    148174  //! Searchs a member with given declaration without default value
    149175  BMember* FindDecMember  (const BText& declaration) const;
     176  //! Adds a new autodoc member
     177  virtual bool AddAutodocMember(const BText& name, const BText& desc, const BMemberOwner* parent);
     178  virtual bool AddAutodocMember(BMember* mbrPtr);
    150179  //! Adds a new member
    151180  bool AddMember(BMember* member);
    … …  
    197226 ~BClass();
    198227
     228  //! Adds a new autodoc member
     229  bool AddAutodocMember(const BText& name, const BText& desc, const BMemberOwner* parent);
     230  bool AddAutodocMember(BMember* mbrPtr);
     231
    199232  // Access & Manipulation: inline
    200233  BOwnerType OwnerType() const { return(BCLASS); }
    … …  
    226259  int GetSortedMethods(BArray<const BMember*>& arr) const;
    227260
     261  bool PutMemberDescription(
     262    const BText& name,
     263    const BText& desc,
     264    bool autodoc);
     265
    228266  DeclareClassNewDelete(BClass);
    229267};
Note: See TracChangeset for help on using the changeset viewer.