public override string ToString() { return(NV.ToString() + NR.ToString() + NC.ToString() + NL.ToString() + N_BPT.ToString() + N_UPT.ToString() + NOA.ToString() + NT.ToString() + NIOA.ToString() + NTR.ToString()); }
// Gera um autômato a partir dessa Gramática public Automato GetAutomato() { Automato ret = new Automato(); Random rand = new Random(); string novo = rand.Next(100).ToString(); foreach (char NT in SimbolosNaoTerminais) { ret.addEstado(NT.ToString()); } ret.addEstado(novo); ret.estadoInicial = Inicial.ToString(); foreach (char T in SimbolosTerminais) { ret.simbolos.Add(T.ToString()); } ret.estadosFinais.Add(novo); foreach (KeyValuePair <char, Regular> Pr in Producoes) { foreach (string P in Pr.Value.Proximos) { string nt = ""; string t = ""; foreach (char NT in SimbolosNaoTerminais) { if (P.Contains(NT)) { nt += NT; } } foreach (char T in SimbolosTerminais) { if (P.Contains(T)) { t += T; } } if (nt.Length != 0 && t.Length != 0) { foreach (char c in t) { ret.addTransicao(Pr.Key.ToString(), c.ToString(), nt); } } else if (nt.Length == 0) { foreach (char c in t) { ret.addTransicao(Pr.Key.ToString(), c.ToString(), novo); } } } } return(ret); }