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); }
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); }
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)); } }
public TablaTransiciones(TextReader txtLector) : base(txtLector) { if (this.m_dtTablaDatos != null) { this.m_estadoTransicionActual = EstadoTransicion.Listo; this.m_blTablaSimbolosConjugados = this._TablaDeSimbolosConjugados(); } }
public TablaTransiciones() : base() { this.m_estadoTransicionActual = EstadoTransicion.SinDatos; this.m_intIndiceEstadoActual = 0; this.m_intIndiceSimboloActual = 0; this.m_strEstadoActual = null; // this.m_strSimboloActual = null; }
public TablaTransiciones(string strRutaArchivo) : base(strRutaArchivo) { if (this.m_dtTablaDatos != null) { this.m_estadoTransicionActual = EstadoTransicion.Listo; this.m_blTablaSimbolosConjugados = this._TablaDeSimbolosConjugados(); } }