Example #1
0
        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);
            }
        }
Example #2
0
        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;
        }
Example #3
0
        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);
        }
Example #4
0
        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>();
        }
Example #5
0
        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);
                }
            }
        }
Example #6
0
 //public static string erroresEjecucion;
 public static void inicializarError(string ruta)
 {
     claseErroresReconocidos = new ErroresReconocidos(ruta);
 }