public FormCompilador() { InitializeComponent(); archivo = Archivo.ObtenerInstancia(); }
private void IniciarProducciones() { listaProducciones = new List <Produccion>(); string[] producciones = Archivo.LeerArchivo("../../gramatica.txt").Split('\n'); foreach (string produccion in producciones) { if (!produccion.Equals("")) { string[] produccionDividida = produccion.Split(','); string[] simbolosLadoDerecho = produccionDividida[1].Split(' '); Simbolo[] simbolos = new Simbolo[simbolosLadoDerecho.Length]; for (int i = 0; i < simbolos.Length; i++) { simbolos[i] = new Simbolo(simbolosLadoDerecho[i]); } listaProducciones.Add(new Produccion(produccionDividida[0], simbolos)); } } Console.WriteLine("--------------PRODUCCIONES--------------"); foreach (Produccion produccion in listaProducciones) { Console.WriteLine(produccion.ToString()); } Console.WriteLine("----------------------------------------"); terminales.Add("start"); terminales.Add(":"); terminales.Add("final"); terminales.Add("juice"); terminales.Add("xmain"); terminales.Add("void"); terminales.Add("->"); terminales.Add("tint"); terminales.Add("{"); terminales.Add("}"); terminales.Add("give"); terminales.Add("!"); terminales.Add("comma"); terminales.Add("tbool"); terminales.Add("tfloat"); terminales.Add("tchar"); terminales.Add("xid"); terminales.Add("xvar"); terminales.Add("xvar1"); terminales.Add("xvar2"); terminales.Add("xvar3"); terminales.Add("xvar4"); terminales.Add("xvar5"); terminales.Add("xvar6"); terminales.Add("xvar7"); terminales.Add("xvar8"); terminales.Add("xfun"); terminales.Add("xfun1"); terminales.Add("xfun2"); terminales.Add("xfun3"); terminales.Add("xfun4"); terminales.Add("xfun5"); terminales.Add("xfun6"); terminales.Add("xfun7"); terminales.Add("xqcThonk"); terminales.Add("("); terminales.Add(")"); terminales.Add("xqcWut"); terminales.Add("="); terminales.Add("agane"); terminales.Add("not"); terminales.Add("null"); terminales.Add("true"); terminales.Add("false"); terminales.Add("and"); terminales.Add("or"); terminales.Add("equals"); terminales.Add("bigger"); terminales.Add("lower"); terminales.Add("biggerOrEqual"); terminales.Add("lowerOrEqual"); terminales.Add("+"); terminales.Add("-"); terminales.Add("*"); terminales.Add("/"); terminales.Add("0"); terminales.Add("1"); terminales.Add("2"); terminales.Add("3"); terminales.Add("4"); terminales.Add("5"); terminales.Add("6"); terminales.Add("7"); terminales.Add("8"); terminales.Add("9"); terminales.Add("'"); terminales.Add("a"); terminales.Add("b"); terminales.Add("c"); terminales.Add("d"); terminales.Add("e"); terminales.Add("f"); terminales.Add("g"); terminales.Add("h"); terminales.Add("i"); terminales.Add("j"); terminales.Add("k"); terminales.Add("l"); terminales.Add("m"); terminales.Add("n"); terminales.Add("o"); terminales.Add("p"); terminales.Add("q"); terminales.Add("r"); terminales.Add("s"); terminales.Add("t"); terminales.Add("u"); terminales.Add("v"); terminales.Add("w"); terminales.Add("x"); terminales.Add("y"); terminales.Add("z"); noTerminales.Add("PROGRAM"); noTerminales.Add("BODY"); noTerminales.Add("RETORNO"); noTerminales.Add("EXTRA"); noTerminales.Add("FUNCTION"); noTerminales.Add("ARGS"); noTerminales.Add("ARGS2"); noTerminales.Add("FTYPE"); noTerminales.Add("TYPE"); noTerminales.Add("ID"); noTerminales.Add("EXPRESION"); noTerminales.Add("CONDICIONAL"); noTerminales.Add("LLAMADA"); noTerminales.Add("DECLARACION"); noTerminales.Add("CICLO"); noTerminales.Add("CONDICION"); noTerminales.Add("VALOR"); noTerminales.Add("BOOL"); noTerminales.Add("OPERADOR"); noTerminales.Add("OPERACION"); noTerminales.Add("EXP"); noTerminales.Add("EXP1"); noTerminales.Add("EXP2"); noTerminales.Add("EXP4"); noTerminales.Add("EXP3"); noTerminales.Add("NUM"); noTerminales.Add("CARACTER"); noTerminales.Add("LETRA"); simboloInicial = "PROGRAM"; foreach (string noTerminal in noTerminales) { primeros.Add(new Conjunto(noTerminal, "")); siguientes.Add(new Conjunto(noTerminal, "")); } }