//Este metodo es el encargado de crear las nuevas producciones, recibe una cadena que es de //donde se extraeran los tokens al igual que una lista de tokens, regresa la nueva produccion //si es que se pudo crear. private Produccion nuevaprod(string cadena, CTK listokens) { Produccion prodaux = new Produccion(); if (prodaux.crealistok(cadena, listokens) == true) { return(prodaux); } else { return(null); } }
public int agregar(Produccion nuevoCuadruplo) { string[] datos = new string[4]; int num = listaCuadruplos.Count; listaCuadruplos.Add(nuevoCuadruplo); datos[0] = nuevoCuadruplo.LISTATOKENS[0].NOMBRE; datos[1] = nuevoCuadruplo.LISTATOKENS[1].NOMBRE; datos[2] = nuevoCuadruplo.LISTATOKENS[2].NOMBRE; datos[3] = nuevoCuadruplo.LISTATOKENS[3].NOMBRE; tablaCu.Rows.Add(datos); return(listaCuadruplos.Count - 1); }
public CCuadruplos(RichTextBox codigo, DataGridView tablaCu, CVariables listaVar, RichTextBox consola, Form1 comp) { this.codigo = codigo; this.tablaCu = tablaCu; this.listaVar = listaVar; this.consola = consola; this.compilador = comp; listaCuadruplos = new List <Produccion>(); iterador = 0; cuadruplo = null; espera = false; modoAnt = 0; filaAux = 0; fila = 0; }
public void finREAD(string captura) { cuadruplo.LISTATOKENS[3].VALOR = captura; listaVar.ActualizaVariable(cuadruplo.LISTATOKENS[3].NOMBRE); espera = false; if (modoAnt == 3) { cuadruplo = null; codigo.Select(); } else { cuadruplo = null; tablaCu.Select(); } ejecutaCuadruplos(0); }
public void modo_3() { if (cuadruplo != null) { filaAux = fila; do { evaluaCuadruplo(); if (espera == true) { seleccionar(filaAux); break; } fila = listaCuadruplos[iterador].FILA; if (fila == filaAux) { cuadruplo = listaCuadruplos[iterador]; if (iterador < listaCuadruplos.Count) { iterador++; } } } while (fila == filaAux); if (espera == false) { cuadruplo = null; } } if (iterador < listaCuadruplos.Count && espera == false) { cuadruplo = listaCuadruplos[iterador]; resaltaCuadruplo(); seleccionar(listaCuadruplos[iterador].FILA); fila = listaCuadruplos[iterador].FILA; iterador++; if (iterador == listaCuadruplos.Count) { MessageBox.Show("Fin de programa, el resultado es: " + listaCuadruplos[iterador - 2].LISTATOKENS[3].VALOR); compilador.activaBoton(0); fila = 0; cuadruplo = null; filaAux = 0; } } }
/// Este metodo compara si esta Produccion es igual a otra Produccion. public bool comparaprod(Produccion prec) { int aux = 0; if (prec.ltok.Count != ltok.Count) { return(false); } foreach (NT tk in ltok) { if (tk.nom != prec.ltok[aux].nom) { return(false); } aux++; } return(true); }
public void Terminal() { esTerminal = true; primero = null; siguiente = null; }
//Este metodo inicializa los NT. public void NoTerminal() { esTerminal = false; primero = new Produccion(); siguiente = new Produccion(); }
public CVariables(DataGridView tablaSi) { this.tablaSi = tablaSi; listaVariables = new Produccion(); varTemp = 1; }