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

EmitExpImpl() private method

private EmitExpImpl ( MidFieldRef fieldRef, Span span ) : EmitValHLSL
fieldRef Spark.Mid.MidFieldRef
span Span
return EmitValHLSL
        private EmitValHLSL EmitExpImpl(MidFieldRef fieldRef, Span span)
        {
            var obj = EmitExp(fieldRef.Obj, span);

            var fieldDecl = fieldRef.Decl;
            var fieldName = fieldDecl.Name.ToString();
            var fieldType = EmitType(fieldDecl.Type);
            var fieldIndex = -1;

            var aggType = (IAggTypeHLSL) obj.Type;
            int fieldCount = aggType.GetFieldCount();
            for (int ff = 0; ff < fieldCount; ++ff)
            {
                if (aggType.GetFieldName(ff) != fieldName)
                    continue;

                fieldIndex = ff;
                break;
            }

            return GetField(
                obj,
                fieldType,
                fieldName,
                fieldIndex,
                span );
        }

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 ( 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