Пример #1
0
        public Linea  BuscarMinimaExpresion(Linea _linea, string _contexto)
        {
            _linea.logs = "";
            Linea linea = _linea.Clone();

            linea.logs = "";

            if (!String.IsNullOrEmpty(linea.ToString()))
            {
                _linea.logs += $"┌──────> ANALIZA: [{linea.ToString()}] \n";
            }
            bool  iterar = true;
            Linea actual = _linea.Clone();

            while (iterar)
            {
                linea        = generalFacade.Reducir(linea, _contexto);
                _linea.logs += linea.logs;
                if (actual.Equals(linea))
                {
                    iterar = false;
                }
                else
                {
                    actual = linea.Clone();
                }
            }
            if (!String.IsNullOrEmpty(linea.ToString()))
            {
                _linea.logs += $"└>No hay más coinsidencias, termina el analisis. \n\n";
            }

            linea.instrucciones.Clear();
            linea.logs = _linea.logs;
            foreach (Instruccion i in actual.instrucciones)
            {
                linea.instrucciones.Add((Instruccion)i.Clone());
            }

            return(linea);
        }