* @throws IncorrectODEEquationException
*/
@Override
public System parseEquationsSystem(List<String> inputs) throws IncorrectODEEquationException
{
System system = new System();
List<Character> functionalVariables = new ArrayList<Character>(inputs.size());
for (String input : inputs)
{
input = input.replace(" ", "").toLowerCase();
String[] parts = input.split(",");
Equation equation = new Equation(parts[0]);
equation.setOrder(longestRun(parts[0], '\'', 1));
if (equation.getOrder() < parts.length - 1)
throw new IncorrectODEEquationException("lack of initial values");
List<String> init = new ArrayList<String>(parts.length - 1);
for (int i = 1; i < parts.length; i++)
init.add(parts[i]);
equation.setInitValues(parseInitialValues(init));
equation.setFunctionVariable(parseFunctionVariable(parts[0]));
functionalVariables.add(equation.getFunctionVariable());
system.addEquation(equation);
}
List<Equation> equations = system.getEquations();
char independentVariable = parseIndependentVariable(inputs, functionalVariables);
for (Equation eq : equations)
{
eq.setIndependentVariable(independentVariable);