Spark.Emit.HLSL.EmitContextHLSL.EmitExpImpl C# (CSharp) Method

EmitExpImpl() private method

private EmitExpImpl ( MidIfExp exp, Span span ) : EmitValHLSL
exp MidIfExp
span Span
return EmitValHLSL
        private EmitValHLSL EmitExpImpl(MidIfExp exp, Span span)
        {
            var condition = EmitExp(exp.Condition, span);

            bool isVoid = exp.Type is MidVoidType;

            ITypeHLSL expType = VoidVal.Type;
            EmitValHLSL temp = VoidVal;
            if (!isVoid)
            {
                expType = EmitType(exp.Type);
                temp = expType.CreateVal(
                    _shared.GenerateName("_if"));
                DeclareLocal(temp, span);
            }

            span.WriteLine("if ({0})", condition);
            span.WriteLine("{");
            var thenVal = EmitExp(exp.Then, span.IndentSpan());
            if (!isVoid)
            {
                Assign(temp, thenVal, span.IndentSpan());
            }
            span.WriteLine("}");
            span.WriteLine("else");
            span.WriteLine("{");
            var elseVal = EmitExp(exp.Else, span.IndentSpan());
            if (!isVoid)
            {
                Assign(temp, elseVal, span.IndentSpan());
            }
            span.WriteLine("}");

            return temp;
        }

Same methods

EmitContextHLSL::EmitExpImpl ( MidAssignExp exp, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidAttributeFetch fetch, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidBreakExp exp, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidBuiltinApp app, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidElementCtorApp val, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidFieldRef fieldRef, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidForExp exp, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidLabelExp exp, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidLetExp let, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidMethodApp app, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidSwitchExp exp, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidVal val, Span span ) : EmitValHLSL