コード例 #1
0
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);
	}

}
コード例 #2
0
GameMaster::GameMaster(GameCycle *gameCycle)
	: gameCycle_(gameCycle)
{
	ItemParser itemParser(this);
	if (itemParser.bladWczytywania()) {
		gameCycle_->displayErrorMessage(QString::fromUtf8("Wystąpił błąd przy wczytywaniu danych przedmiotow\n\n") + itemParser.trescBledu, blad_parsera_przedmiotow);
		return;
	}
	qDebug() << QString::fromUtf8("Informacje o przedmiotach wczytano poprawnie");

	PrizeParser prizeParser(this);
	if (prizeParser.bladWczytywania()) {
		gameCycle_->displayErrorMessage(QString::fromUtf8("Wystąpił błąd przy wczytywaniu danych nagród\n\n") + prizeParser.trescBledu, blad_parsera_nagrod);
		return;
	}
	qDebug() << QString::fromUtf8("Informacje o prizech wczytano poprawnie");

	EnemyParser enemyParser(this);
	if (enemyParser.bladWczytywania()) {
		gameCycle_->displayErrorMessage(QString::fromUtf8("Wystąpił błąd przy wczytywaniu danych przeciwników\n\n") + enemyParser.trescBledu, blad_parsera_przeciwnikow);
		return;
	} else if (enemyGroups_.size() != EnemyGroupCount) {
		gameCycle_->displayErrorMessage(QString::fromUtf8("Wczytano za mało albo za dużo grup przedmiotów.\n\n"), blad_liczby_grup_przeciwnikow);
		return;
	}
	qDebug() << QString::fromUtf8("Informacje o przeciwnikach wczytano poprawnie");

	QuestParser questParser(this);
	if (questParser.bladWczytywania()) {
		gameCycle_->displayErrorMessage(QString::fromUtf8("Wystąpił błąd przy wczytywaniu danych zadań\n\n") + questParser.trescBledu, blad_parsera_zadan);
		return;
	} else if (quests_.size() < QuestsInTavernCount) {
		gameCycle_->displayErrorMessage(QString::fromUtf8("Wczytano za mało zadań.\n\n"), blad_liczby_zadan);
		return;
	}
	qDebug() << QString::fromUtf8("Informacje o zadaniach wczytano poprawnie");
}