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

EmitExpImpl() private method

private EmitExpImpl ( MidBreakExp exp, Span span ) : EmitValHLSL
exp Spark.Mid.MidBreakExp
span Span
return EmitValHLSL
        private EmitValHLSL EmitExpImpl(MidBreakExp exp, Span span)
        {
            var value = EmitVal(exp.Value, span);

            Label label;
            if (_labels.TryGetValue(exp.Label, out label))
            {
                label.Emit(value, span);
                return VoidVal;
            }

            var topLabel = _nestedLabels.Peek();
            if (topLabel is BreakLabel)
            {
                var breakLabel = (BreakLabel)topLabel;
                if (breakLabel.MidLabel == exp.Label)
                {
                    breakLabel.Emit(value, span);
                    return VoidVal;
                }
            }

            Diagnostics.Add(
                Severity.Error,
                exp.Range,
                "Control flow to complex for HLSL emit. Sorry.");
            return new ErrorValHLSL();
        }

Same methods

EmitContextHLSL::EmitExpImpl ( MidAssignExp exp, Span span ) : EmitValHLSL
EmitContextHLSL::EmitExpImpl ( MidAttributeFetch fetch, 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 ( MidIfExp 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