private TuringMachine(TuringMachineData dado, string estadoInicial, string[] estadoFim, TuringMachineInstrucoes[] instrucoes) { Dado = dado; EstadoAtual = estadoInicial; EstadoFim = estadoFim; Instrucoes = instrucoes; MachineEstado = Estado.Pronto; Resultado = null; }
public static TuringMachine FromText(string[] linhas) { TuringMachineData dado = null; string estadoInicial = null; string[] estadoFim = new string[0]; List <TuringMachineInstrucoes> instrucoes = new List <TuringMachineInstrucoes>(); foreach (var linha in linhas) { var linhaLimpa = linha.Trim(); if (linhaLimpa.StartsWith("@")) { continue; } if (linhaLimpa.StartsWith("fita ")) { dado = new TuringMachineData(linhaLimpa.Substring(5));//Ignore 'fita ' } else if (linhaLimpa.StartsWith("init ")) { estadoInicial = linhaLimpa.Substring(5); } else if (linhaLimpa.StartsWith("accept ")) { estadoFim = linhaLimpa.Substring(7).Trim().Split(","); } else if (!string.IsNullOrWhiteSpace(linhaLimpa)) { var instruction = TuringMachineInstrucoes.FromString(linhaLimpa); instrucoes.Add(instruction); } } return(new TuringMachine(dado, estadoInicial, estadoFim, instrucoes.ToArray())); }