Beispiel #1
0
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);
	}

}