private void TransformChildrenImpl( MidElementCtorApp app) { app.Args = (from a in app.Args let ta = Transform(a.Val) select new MidElementCtorArg(a.Attribute, ta)).ToArray(); }
private EmitValHLSL EmitExpImpl(MidElementCtorApp val, Span span) { var ctorInfo = GetElementCtor(val.Element); var elemType = EmitType(val.Element); var elemVal = elemType.CreateVal(_shared.GenerateName("e_")); DeclareLocal(elemVal, span); var sb = new Span(); sb.Write("{0}(", ctorInfo.Name); bool first = true; AddArgs(elemVal, ref first, sb); foreach (var param in ctorInfo.InputAttributes) { var arg = (from a in val.Args where a.Attribute == param select a.Val).First(); AddArgs( EmitVal(arg, span), ref first, sb); } sb.WriteLine(");"); span.Add(sb); return elemVal; }
public void PreEmitExpImpl( MidElementCtorApp app, Span span) { foreach (var a in app.Args) PreEmitExp(a.Val, span); }