コード例 #1
0
        public void Visit(ControlUnit node)
        {
            node.Expression.Accept(this);

            YesnoWrapper conditionstate = (YesnoWrapper)ReferenceTables.GetValue(node.Expression);

            if (node.ConditionTrueBlock != null && conditionstate.Value.HasValue && conditionstate.Value.Value)
            {
                node.ConditionTrueBlock.Accept(this);
            }

            if (node.ConditionFalseBlock != null && conditionstate.Value.HasValue && !conditionstate.Value.Value)
            {
                node.ConditionFalseBlock.Accept(this);
            }
        }
コード例 #2
0
        public void Visit(ControlUnit node)
        {
            YesnoWrapper evaluatedResult = (YesnoWrapper)ReferenceTables.GetValueOrNull(node.Expression);

            _parentExpressionDidNotEvaluate = !evaluatedResult.ToBool();

            if (node.ConditionTrueBlock != null)
            {
                node.ConditionTrueBlock.Accept(this);
            }

            _parentExpressionDidNotEvaluate = false;
            if (node.ConditionFalseBlock != null)
            {
                node.ConditionFalseBlock.Accept(this);
            }
        }
コード例 #3
0
        public void EvaluatedValueComparisson()
        {
            YesnoWrapper  yes = new YesnoWrapper(true);
            YesnoWrapper  no  = new YesnoWrapper(false);
            NumberWrapper a   = new NumberWrapper(12345);
            NumberWrapper b   = new NumberWrapper(12345);

            Assert.IsTrue((a == b).ToBool());
            Number n = new Number();

            n.Value = 12345;
            NumberWrapper c = new NumberWrapper(n);

            Assert.IsTrue((c == a).ToBool());
            Assert.IsFalse((c != a).ToBool());

            b.Value = 23456;
            Assert.IsFalse((c == b).ToBool());
            Assert.IsTrue((c != b).ToBool());
        }
コード例 #4
0
 public WidgetBase GetWidget(QuestionUnit unit, YesnoWrapper typeWrapper)
 {
     unit.InitialiseValue(typeWrapper);
     return(new YesNoWidget(unit));
 }