Index: tol/btol/set_type/setgra.cpp
===================================================================
--- tol/btol/set_type/setgra.cpp	(revision ff4ad677d55b4680fb2cf23f6eb1a802c404135b)
+++ tol/btol/set_type/setgra.cpp	(revision 7e5625dca809bfe4063c830be0d46c66e2509908)
@@ -43,4 +43,5 @@
 #include <tol/tol_btsrgrp.h>
 #include <tol/tol_bstruct.h>
+#include <tol/tol_bclass.h>
 
 #if defined(__USE_TC__)
@@ -130,4 +131,5 @@
   BSyntaxObject* Evaluator(BList* arg) const
   { 
+    if(CheckNonDeclarativeAction("Append")) { return(NULL); }
     BList* lst = arg;
     bool incrementalIndexByName = false;
@@ -472,4 +474,5 @@
 //--------------------------------------------------------------------
 {
+  if(CheckNonDeclarativeAction("PutStructure")) { return; }
   BText    name = Text(Arg(1));
   BStruct* str  = FindStruct(name);
@@ -942,4 +945,5 @@
 //--------------------------------------------------------------------
 {
+  if(CheckNonDeclarativeAction("SetIndexByName")) { return; }
   BSet& set = Set(Arg(1));
   contens_ = set.SetIndexByName();
@@ -2595,4 +2599,5 @@
 //--------------------------------------------------------------------
 {
+  if(CheckNonDeclarativeAction("Tcl_Eval")) { return; }
   BText &script = Text(Arg(1));
   BList * result = NIL;
@@ -2636,4 +2641,5 @@
 //--------------------------------------------------------------------
 {
+  if(CheckNonDeclarativeAction("Tcl_EvalEx")) { return; }
   BSet &cmd = Set(Arg(1));
   BList * result = NIL;
@@ -2751,3 +2757,30 @@
 
 
-
+//--------------------------------------------------------------------
+DeclareContensClass(BSet, BSetTemporary, BSetClassAscentOf);
+DefExtOpr(1, BSetClassAscentOf, "ClassAscentOf", 1, 1,
+	  "Text",
+	  "(Text className)",
+	  I2("Returns the ascent classes of a given class\"\"",
+	     "Retorna las clases ascendientes de una clase dada \"\""),
+	  BOperClassify::General_);
+
+//--------------------------------------------------------------------
+void BSetClassAscentOf::CalcContens()
+//--------------------------------------------------------------------
+{
+  const BText& name = Text(Arg(1));
+  BClass* found = FindClass(name,1);
+  if(found)
+  {
+    BMemberOwner::BClassByNameHash* hash = found->ascentHash_;
+    BMemberOwner::BClassByNameHash::const_iterator iterC;
+    contens_.PrepareStore(hash->size());
+    for(iterC=hash->begin(); iterC!=hash->end(); iterC++)
+    {
+      BText fn = iterC->second->FullName();
+    //Std(BText(""\nBOisCreator::Write BMemberOwner parent ")+fn);
+      contens_.AddElement(new BContensText("",fn,""));
+    }
+  }
+}
