Beispiel #1
0
        private bool _AnalizarSimboloConjugado(string strCadena)
        {
            this.m_intIndiceEstadoActual  = 1;
            this.m_estadoTransicionActual = EstadoTransicion.Analizando;

            for (this.m_intIndiceSimboloActual = 1; this.m_intIndiceSimboloActual <= CantidadSimbolos; this.m_intIndiceSimboloActual++)
            {
                if (this.m_dtTablaDatos.Rows[0][this.m_intIndiceSimboloActual].ToString() == strCadena)
                {
                    this.m_strEstadoActual = this.m_dtTablaDatos.Rows[this.m_intIndiceEstadoActual][this.m_intIndiceSimboloActual].ToString();

                    if (this.m_strEstadoActual.ToLower() == "error")
                    {
                        this.m_estadoTransicionActual = EstadoTransicion.Terminado;
                        return(false);
                    }

                    this.m_intIndiceEstadoActual = _ObtenerIndiceEstado(this.m_strEstadoActual);
                    break;
                }
            }

            this.m_estadoTransicionActual = EstadoTransicion.Terminado;
            return(true);
        }
Beispiel #2
0
        private bool _AnalizarSimbolo(string strCadena)
        {
            this.m_intIndiceEstadoActual = 1;
            char[] caCaracteres = strCadena.ToArray();
            this.m_estadoTransicionActual = EstadoTransicion.Analizando;
            string strSimbolo;

            for (int c = 0; c < caCaracteres.Length; c++)
            {
                for (this.m_intIndiceSimboloActual = 1; this.m_intIndiceSimboloActual <= CantidadSimbolos; this.m_intIndiceSimboloActual++)
                {
                    strSimbolo = this.m_dtTablaDatos.Rows[0][this.m_intIndiceSimboloActual].ToString();
                    if (strSimbolo == caCaracteres[c].ToString())
                    {
                        this.m_strEstadoActual = this.m_dtTablaDatos.Rows[this.m_intIndiceEstadoActual][this.m_intIndiceSimboloActual].ToString();

                        if (this.m_strEstadoActual.ToLower() == "error")
                        {
                            this.m_estadoTransicionActual = EstadoTransicion.Terminado;
                            return(false);
                        }

                        this.m_intIndiceEstadoActual = _ObtenerIndiceEstado(this.m_strEstadoActual);
                        break;
                    }
                }
            }

            this.m_estadoTransicionActual = EstadoTransicion.Terminado;
            return(true);
        }
Beispiel #3
0
        public bool EstablecerCadena(string strCadena)
        {
            if (this.m_estadoTransicionActual == EstadoTransicion.SinDatos)
            {
                throw new InvalidOperationException("No se ha establecido datos a la tabla...");
            }
            if (this.m_estadoTransicionActual == EstadoTransicion.Analizando)
            {
                throw new InvalidOperationException("La tabla de transiciones ya empezo su recorrido, espere que termine...");
            }

            if (this.m_estadoTransicionActual == EstadoTransicion.Terminado)
            {
                this.m_estadoTransicionActual = EstadoTransicion.Listo;
            }

            if (this.m_blTablaSimbolosConjugados)
            {
                return(_AnalizarSimboloConjugado(strCadena));
            }
            else
            {
                return(_AnalizarSimbolo(strCadena));
            }
        }
Beispiel #4
0
 public TablaTransiciones(TextReader txtLector) : base(txtLector)
 {
     if (this.m_dtTablaDatos != null)
     {
         this.m_estadoTransicionActual    = EstadoTransicion.Listo;
         this.m_blTablaSimbolosConjugados = this._TablaDeSimbolosConjugados();
     }
 }
Beispiel #5
0
 public TablaTransiciones() : base()
 {
     this.m_estadoTransicionActual = EstadoTransicion.SinDatos;
     this.m_intIndiceEstadoActual  = 0;
     this.m_intIndiceSimboloActual = 0;
     this.m_strEstadoActual        = null;
     // this.m_strSimboloActual = null;
 }
Beispiel #6
0
 public TablaTransiciones(string strRutaArchivo) : base(strRutaArchivo)
 {
     if (this.m_dtTablaDatos != null)
     {
         this.m_estadoTransicionActual    = EstadoTransicion.Listo;
         this.m_blTablaSimbolosConjugados = this._TablaDeSimbolosConjugados();
     }
 }