public bool nombreVariable(string nomVariable, ErroresReconocidos errorR, int linea) { if (auxDeclaracionMultiple != declaracionMultiple) { tipoDato(auxType); } declaracionMultiple++; if (!searchOnTDS(nomVariable.Substring(1, nomVariable.Length - 1), errorR, linea)) // si se encuentra el nombre de la variable ya declarada no entra { if (this.listaTDS.Count > 0) { this.listaTDS[this.listaTDS.Count - 1].nametk = nomVariable.Substring(1, nomVariable.Length - 1); } return(true); } else { if (this.listaTDS.Count > 0) { eliminarIdentificador(); } return(false); } }
public TokensReconocidos(string[] txt_lineas, List <Token> listAlfabeto, TDSManager claseMgTDS, ErroresReconocidos erroresR) { this.listAlfabeto = listAlfabeto; this.listTokensReconocidos = new List <Token>(); this.listErrores = new List <Object[]>(); this.claseMgTDS = claseMgTDS; this.erroresR = erroresR; this.lineas_codigo = txt_lineas; }
public TokensReconocidos(string ruta, List <Token> listAlfabeto, TDSManager claseMgTDS, ErroresReconocidos erroresR) { this.listAlfabeto = listAlfabeto; this.listTokensReconocidos = new List <Token>(); this.listErrores = new List <Object[]>(); this.claseMgTDS = claseMgTDS; this.erroresR = erroresR; this.lineas_codigo = abriArchivo(ruta); }
public AnalizadorSLR(List <Token> listaTokensReconocidos, List <Token> listAlfabeto, CargarSLR cargar_slr, TablaCompacta tablaCompacta, ErroresReconocidos erroresReconocidos) { this.erroresReconocidos = erroresReconocidos; this.lista_pila = new List <Object>(); this.listaTokens = listaTokensReconocidos; this.matrizAccion = cargar_slr.matriz_tabla_transicionAccion; this.matrizGoTo = cargar_slr.matriz_tabla_transicionGoTo; this.listaX = cargar_slr.listX; this.listP = cargar_slr.listP; this.listaN = cargar_slr.listN; this.listAlfabeto = listAlfabeto; this.nroNewRegla = listAlfabeto.Count + 1; // +1 porque se agraga nueva regla this.tablaCompacta = tablaCompacta; listReglasReconocidas = new List <Regla_produccion>(); }
public bool searchOnTDS(String nombreVariable, ErroresReconocidos erroresR, int linea) { bool errorCaracteres = false; if (nombreVariable.Length <= 8) // debe ser <= a ocho cara { return(this.listaTDS.FindIndex(x => x.nametk.Equals(nombreVariable)) > -1 ? true : false); } else { // si la cadena supera los 8 caracteries, recorto la cadena errorCaracteres = this.listaTDS.FindIndex(x => (x.nametk.Length > 8? x.nametk.Substring(0, 8): x.nametk).Equals(nombreVariable.Substring(0, 8))) > -1 ? true : false; if (errorCaracteres) { erroresR.insertarErroresReconocidos(-105, nombreVariable, linea); // Error -105 : Limite de caracteres sobrepasado.El 8vo caracter debe ser diferente. return(true); } else { return(false); } } }
//public static string erroresEjecucion; public static void inicializarError(string ruta) { claseErroresReconocidos = new ErroresReconocidos(ruta); }