예제 #1
0
        public ConditionNode ConnectTrueTo([NotNull] IFlowNode node)
        {
            node.AssertNotNull("node != null");
            WhenTrue.AssertIsNull("True branch is already set");

            WhenTrue = node;
            return(this);
        }
예제 #2
0
        public override string GetPhpCode(PhpEmitStyle style)
        {
            var form = style == null || style.Compression == EmitStyleCompression.Beauty
                ? "{0} ? {1} : {2}"
                : "{0}?{1}:{2}";

            return(string.Format(form, Condition.GetPhpCode(style), WhenTrue.GetPhpCode(style),
                                 WhenFalse.GetPhpCode(style)));
        }
예제 #3
0
        /// <summary>
        /// This is just to ease debugging.
        /// </summary>
        /// <returns>Readable expression.</returns>
        public override string ToString()
        {
            string s = "if(" + Condition.ToString() + ") then {" + WhenTrue.ToString() + "}";

            if (WhenFalse != null)
            {
                s += " else {" + WhenFalse.ToString() + "}";
            }
            return(s);
        }
예제 #4
0
        public override AbstractExpression AcceptRewriter(StatementRewriter rewriter)
        {
            var newCondition = Condition.AcceptRewriter(rewriter);
            var newWhenTrue  = WhenTrue.AcceptRewriter(rewriter);
            var newWhenFalse = WhenFalse.AcceptRewriter(rewriter);

            if (newCondition != Condition || newWhenTrue != WhenTrue || newWhenFalse != WhenFalse)
            {
                return(new ConditionalExpression {
                    Bindings = new BindingCollection(this.Bindings),
                    Type = this.Type,
                    Condition = newCondition,
                    WhenTrue = newWhenTrue,
                    WhenFalse = newWhenFalse
                });
            }

            return(this);
        }
예제 #5
0
 public override void AcceptVisitor(StatementVisitor visitor)
 {
     Condition.AcceptVisitor(visitor);
     WhenTrue.AcceptVisitor(visitor);
     WhenFalse.AcceptVisitor(visitor);
 }