/// <summary> /// Constructor /// </summary> public void BuildMachine(String filePath) { int CurrentStateNumber = -1; String[] Lines = File.ReadAllLines(filePath); // Creates machine states, without transitions for (int i = 0; i < Lines.Length; i++) { String[] CurrentState = Lines[i].Split('\t');; if (int.Parse(CurrentState[0]) != CurrentStateNumber) { MachineState m = new MachineState(); Q.Add(m); CurrentStateNumber = int.Parse(CurrentState[0]); } } // Creates machine states, with its transitions for (int i = 0; i < Lines.Length; i++) { String[] CurrentTransition = Lines[i].Split('\t'); int StateNumber = int.Parse(CurrentTransition[0]); string Symbol = CurrentTransition[1] == "blank"?blank:CurrentTransition[1]; int NextState = int.Parse(CurrentTransition[2]); string ReplacingSymbol = CurrentTransition[3] == "blank" ? blank : CurrentTransition[3]; bool moveRight = CurrentTransition[4] == "R" ? true : false; Transition t = new Transition(Symbol, NextState, ReplacingSymbol, moveRight); Q[StateNumber].AddTransition(t); } // Fills the machine tape for (int i = 0; i < Entry.Length; i++) { MachineTape.AddSymbol(Entry[i].ToString()); } // Gets Ready vor Everythin :u CurrentState = Q[CurrentStateNumber]; try { CurrentSymbol = MachineTape.boxes[Pointer]; } catch { return; } }