Exemple #1
0
        public void Execute(List <Expression> instruction)
        {
            //Eliminar keyword de tipo IExecutable. No lo necesito para compilar.
            instruction.RemoveAt(0);

            if (SyntacticAnalysis(instruction))
            {
                string nameVariable = instruction[0].ToString();

                //Solo trabajar con las expresiones de la derecha del =
                instruction.RemoveAt(0); instruction.RemoveAt(0);

                //Si es un tipo Text y del operador =, y no hay mas tokens
                if (instruction.Count == 1 && (instruction[0] is Text))
                {
                    Memory.SaveText(nameVariable, (instruction[0] as Text).Value);
                }

                //Es un tipo number
                else
                {
                    ConditionalFunction ecuation = ConvertToConditionalFunction.FetchFunction(instruction);

                    if (ecuation != null)
                    {
                        float toSave = ecuation.Evaluate(0);
                        //    Guardar variable en la memoria
                        if (!Compiler._haveError)
                        {
                            Memory.SaveVariable(nameVariable, toSave);
                        }
                    }
                }
            }
        }
Exemple #2
0
        public void Execute(List <Expression> instruction)
        {
            //Eliminar keyword de tipo IExecutable. No lo necesito para compilar.
            instruction.RemoveAt(0);

            if (SyntacticAnalysis(instruction))
            {
                ConditionalFunction functionGraph = ConvertToConditionalFunction.FetchFunction(instruction);

                if (functionGraph != null)
                {
                    Random rn = new Random((Environment.TickCount + instruction.GetHashCode()) % int.MaxValue);

                    float pp = functionGraph.Evaluate(5);


                    Display._fViewer.Functions.Add(new XControls.FunctionInfo()
                    {
                        Name     = "f" + Environment.TickCount.ToString(),
                        Function = x => functionGraph.Evaluate(x),
                        Color    = Color.FromArgb(rn.Next(255), rn.Next(255), rn.Next(255))
                    });

                    Display.onActivateGraph = true;
                }
            }
        }
Exemple #3
0
 /// <summary>
 /// Constructor de Funcion
 /// </summary>
 /// <param name="body">Cuerpo de la funcion</param>
 /// <param name="proposition">Proposicion a evaluar</param>
 /// <param name="ptrElse">Puntero a otra funcion condicional</param>
 public ConditionalFunction(FunctionArithmetic body, FunctionBoolean proposition, ConditionalFunction ptrElse)
 {
     this.body        = body;
     this.proposition = proposition;
     this.ptrElse     = ptrElse;
 }