public override void processing() { //передвинул по программе дальше model.getState().tranzakts.ElementAt(model.getState().idProcessingTranzact). my_place += 1; if (parameters[1] == "AC1")//время нахождения транзакта в системе, СЧА { model.getState().tranzakts.ElementAt(model.getState().idProcessingTranzact). set_parameter(parameters[0], model.getState().tranzakts.ElementAt(model. getState().idProcessingTranzact).time_in_system.ToString());//записал параметр return; } //определение переменной, СЧА длина должна быть больше двух(V$Var-пример) if (parameters[1].Count() > 2) { //Если длинна меньше двух, то нет смысла проверять на СЧА if (parameters[1].Remove(2) == "V$") { //поиск переменной по ее имени string name = parameters[1].Remove(0, 2); for (int k = 0; k < model.getState().variables.Count(); k++) { if (model.getState().variables.ElementAt(k).get_name() == name) { //расчет значения string value = ModelingFunctionParser.go_parse(model.getState(), model.getState().variables.ElementAt(k).get_function(), model.getState().idProcessingTranzact); if (value != "syntaxis_error") { model.getState().tranzakts.ElementAt(model.getState(). idProcessingTranzact).set_parameter(parameters[0], value); } else//иначе синтаксическая ошибка { int id_str = model.getState().tranzakts.ElementAt(model. getState().idProcessingTranzact).my_place - 1; throw new SyntaxisErrorException("Syntaxis error on line: " + id_str); } break; } if (k == model.getState().variables.Count() - 1)//переменная не найдена { int id_str = model.getState().tranzakts.ElementAt(model. getState().idProcessingTranzact).my_place - 1; throw new SyntaxisErrorException("Unknown variable on line" + id_str); } } return; } } //иначе это обычный параметр, алгоритм сюда дайдет, если он не увидит какие-либо СЧА model.getState().tranzakts.ElementAt(model.getState().idProcessingTranzact). set_parameter(parameters[0], parameters[1]); //записал параметр }
public override void processing() { for (int n = 0; n < model.getState().variables.Count; n++) { if (model.getState().variables.ElementAt(n).get_name() == parameters[0]) { //определение переменной, СЧА длина должна быть больше двух(V$Var-пример) if (parameters[1].Count() > 2) { if (parameters[1].Remove(2) == "V$") { //поиск переменной по ее имени string parametersName = parameters[1].Remove(0, 2); for (int k = 0; k < model.getState().variables.Count(); k++) { if (model.getState().variables.ElementAt(k).get_name() == parametersName) { //расчет значения string value = ModelingFunctionParser.go_parse(model. getState(), model.getState().variables.ElementAt(k). get_function(), model.getState().idProcessingTranzact); if (value != "syntaxis_error") { model.getState().variables.ElementAt(n).value = value; } else//иначе синтаксическая ошибка { int id_str = model.getState().tranzakts.ElementAt(model. getState().idProcessingTranzact).my_place - 1; throw new SyntaxisErrorException("Syntaxis error on line: " + id_str); } break; } //переменная не найдена if (k == model.getState().variables.Count() - 1) { int id_str = model.getState().tranzakts.ElementAt(model. getState().idProcessingTranzact).my_place - 1; throw new SyntaxisErrorException("Unknown variable on line" + id_str); } } continue; } } break; } } //передвигаем далее транзакт model.getState().tranzakts.ElementAt(model.getState().idProcessingTranzact).my_place++; return; }