Salome HOME
bos #26594 Failed KERNEL test: fix typemap for swig 4x
[modules/yacs.git] / src / yacsloader / blocParsers.hxx
old mode 100755 (executable)
new mode 100644 (file)
index c1642f0..1ec7dcb
@@ -1,4 +1,4 @@
-// Copyright (C) 2006-2014  CEA/DEN, EDF R&D
+// Copyright (C) 2006-2021  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -87,6 +87,8 @@ struct bloctypeParser:parser
   virtual void onEnd(const char *el,parser* child);
   virtual void buildAttr(const XML_Char** attr)
     {
+      if (!attr)
+        return;
       this->required("name",attr);
       for (int i = 0; attr[i]; i += 2) 
         {
@@ -176,7 +178,7 @@ struct bloctypeParser:parser
       //fullname += ".splitter";
       //currentProc->nodeMap[fullname]=b->getChildByShortName("splitter");
     }
-  virtual void foreach (YACS::ENGINE::ForEachLoop* const& b)
+  virtual void foreach (YACS::ENGINE::ForEachLoopGen* const& b)
     {
       DEBTRACE( "bloc_foreach_set: " << b->getName() )             
       _bloc->edAddChild(b);
@@ -422,7 +424,8 @@ void bloctypeParser<T>::onStart(const XML_Char* el, const XML_Char** attr)
 
   else if(element == "bloc")pp=&bloctypeParser<>::blocParser;
   else if(element == "forloop")pp=&forlooptypeParser<>::forloopParser;
-  else if(element == "foreach")pp=&foreachlooptypeParser<>::foreachloopParser;
+  else if(element == "foreach")pp=&foreachlooptypeParser<ENGINE::ForEachLoop *>::foreachloopParser;
+  else if(element == "foreachdyn")pp=&foreachlooptypeParser<ENGINE::ForEachLoopDyn *>::foreachloopParser;
   else if(element == "optimizer")pp=&optimizerlooptypeParser<>::optimizerloopParser;
   else if(element == "while")pp=&whilelooptypeParser<>::whileloopParser;
   else if(element == "switch")pp=&switchtypeParser::switchParser;
@@ -456,7 +459,8 @@ void bloctypeParser<T>::onEnd(const char *el,parser* child)
   else if(element == "bloc")bloc(((bloctypeParser<>*)child)->post());
   else if(element == "forloop")forloop(((forlooptypeParser<>*)child)->post());
   else if(element == "optimizer")optimizer(((optimizerlooptypeParser<>*)child)->post());
-  else if(element == "foreach")foreach(((foreachlooptypeParser<>*)child)->post());
+  else if(element == "foreach")foreach(((foreachlooptypeParser<ENGINE::ForEachLoop *>*)child)->post());
+  else if(element == "foreachdyn")foreach(((foreachlooptypeParser<ENGINE::ForEachLoopDyn *>*)child)->post());
   else if(element == "while")while_(((whilelooptypeParser<>*)child)->post());
   else if(element == "switch")switch_(((switchtypeParser*)child)->post());