private Model LinearModel(string line) { line = OperationsOnString.RemoveBeggining(line); string[] table1 = OperationsOnString.SplitRuleToTwoPartsConditionsAndAnother(line); string[] table2 = OperationsOnString.SplitRuleToTwoPartsConditionsAndAnother(table1[0]); List <string> factorsList = OperationsOnString.SplitArguments(table1[1]); List <string> result = OperationsOnString.SplitArguments(table2[0]); List <string> variablesList = OperationsOnString.SplitArgumentsForModel(table2[1]); int semaphorNumber = int.Parse(result.Last()); bool semaphorValue = semaphorNumber == 1; return(new Model(int.Parse(result[0]), result[1], result[2], factorsList, variablesList, semaphorValue)); }