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.ChangeText(nameVariable, (instruction[0] as Text).Value); } //Es un tipo number else { FunctionArithmetic ecuation = ConvertToConditionalFunction.FetchFunction(instruction); //Guardar variable en la memoria if (ecuation != null) { Memory.ChangeVariable(nameVariable, ecuation.Evaluate(0)); } } } }
public void Execute(List <Expression> instruction) { //Eliminar keyword de tipo IExecutable. No lo necesito para compilar. instruction.RemoveAt(0); if (SyntacticAnalysis(instruction)) { if (instruction.Count == 1 && (instruction[0] is Text)) { if ((instruction[0] as Text).isOnlyText) { Display._output.Text += string.Format("{0}\n", (instruction[0] as Text).Value); } else { Display._output.Text += string.Format("{0}\n", Memory.GetText((instruction[0] as Text).Name)); } } else { FunctionArithmetic ecuation = ConvertToConditionalFunction.FetchFunction(instruction); float toShow = 0; if (ecuation != null) { toShow = ecuation.Evaluate(0); } if (!Compiler._haveError) { Display._output.Text += string.Format("{0}\n", toShow); } } } }
public override float Evaluate(float x) { return(proposition.Evaluate(x) ? body.Evaluate(x) : ptrElse.Evaluate(x)); }
public override float Evaluate(float x) { return((_first.Evaluate(x) + _second.Evaluate(x) + _third.Evaluate(x)) / (float)3.0); }