bool SpaceObject::ParseNode(const TiXmlNode * node, Player * player) { if (!Location::ParseNode(node->FirstChild("Location"), mGame)) return false; ArrayParser arrayParser(*mGame); mOwner = player; const TiXmlElement * tie = node->ToElement(); mID = atol(tie->Attribute("IDNumber")); arrayParser.ParseArray(node->FirstChild("SeenBy"), "Race", "Number", mSeenBy); return true; }
void PromelaDataModel::setForeach(const std::string& item, const std::string& array, const std::string& index, uint32_t iteration) { // assign array element to item std::stringstream ss; ss << array << "[" << iteration << "]"; PromelaParser itemParser(item, 1, PromelaParser::PROMELA_EXPR); if (itemParser.ast->type != PML_NAME) ERROR_EXECUTION_THROW("Expression '" + item + "' is no valid item"); PromelaParser arrayParser(ss.str(), 1, PromelaParser::PROMELA_EXPR); setVariable(itemParser.ast, getVariable(arrayParser.ast)); if (index.length() > 0) { PromelaParser indexParser(index, 1, PromelaParser::PROMELA_EXPR); setVariable(indexParser.ast, iteration); } }