X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fyacsloader%2FblocParsers.hxx;h=1ec7dcb9b5ed502c44e5f19d9acb5cf444ac5226;hb=91945d98482a02a05a3f5df7511a4e5760db2a94;hp=c1642f00a56ac9f871cbf371a542e484b7802429;hpb=b797825313f7af9fd691d137c7c6df4950e7de2c;p=modules%2Fyacs.git diff --git a/src/yacsloader/blocParsers.hxx b/src/yacsloader/blocParsers.hxx old mode 100755 new mode 100644 index c1642f00a..1ec7dcb9b --- a/src/yacsloader/blocParsers.hxx +++ b/src/yacsloader/blocParsers.hxx @@ -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::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::foreachloopParser; + else if(element == "foreachdyn")pp=&foreachlooptypeParser::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::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*)child)->post()); + else if(element == "foreachdyn")foreach(((foreachlooptypeParser*)child)->post()); else if(element == "while")while_(((whilelooptypeParser<>*)child)->post()); else if(element == "switch")switch_(((switchtypeParser*)child)->post());