Exemple #1
0
        private EvaluatorState EvaluateBinaryExpression(BinaryExpression operatorExpression)
        {
            var @operator = operatorExpression.Operator;
            var lhs       = Visit(operatorExpression.Left);
            var rhs       = Visit(operatorExpression.Right);

            if (context.IsExplain)
            {
                PrintAsBitSet((int)long.Parse(lhs.Value));
                printer.Print(new Run()
                {
                    Text = "  " + operatorExpression.Operator, Color = RunColor.Red
                });
                PrintAsBitSet((int)long.Parse(rhs.Value));
            }

            var result = EvalBinaryAsNumber(@operator, lhs, rhs);

            return(new EvaluatorState()
            {
                IsSigned = lhs.IsSigned, Type = lhs.Type, Value = result.ToString()
            });
        }
Exemple #2
0
 private void EvaluateBinaryExpression(BinaryExpression operatorExpression)
 {
     Visit(operatorExpression.Left);
     Visit(operatorExpression.Right);
 }