public void ExpressionEvaluator_Visit_FactorOperation() { FactorExpressionNode sumExpression = new FactorExpressionNode() { Left = new FloatValueNode { Value = 10.5f }, OperationNode = new FactorOperationNode() { Operator = Operators.MultOp }, Right = new IntValueNode { Value = 5 } }; ExpressionEvaluator <float> evaluator = new ExpressionEvaluator <float>(new FloatCalculator(sumExpression.Token)); sumExpression.Accept(evaluator); Assert.That(evaluator.Result == 52.5f, "evaluator.Result == 52.5"); }
public void Visit(FactorExpressionNode factorExpressionNode) { factorExpressionNode.Left.Accept(this); T a = Result; factorExpressionNode.Right.Accept(this); T b = Result; switch (factorExpressionNode.OperationNode.Operator) { case Operators.MultOp: Result = Calculator.Multiply(a, b); break; case Operators.DivOp: Result = Calculator.Divide(a, b); break; default: DazelLogger.EmitError($"Operation {factorExpressionNode.OperationNode.Operator} is not valid.", factorExpressionNode.Token); break; } }
public void Visit(FactorExpressionNode factorExpressionNode) { factorExpressionNode.Left.Accept(this); factorExpressionNode.OperationNode.Accept(this); factorExpressionNode.Right.Accept(this); }
public void Visit(FactorExpressionNode factorExpressionNode) { }