public void PreEmitExpImpl( MidForExp exp, Span span) { PreEmitExp(exp.Seq, span); PreEmitExp(exp.Body, span); }
private EmitValHLSL EmitExpImpl(MidForExp exp, Span span) { var seq = EmitExp(exp.Seq, span); var counterType = new ScalarTypeHLSL("int"); var counterName = _shared.GenerateName("ii"); var counter = counterType.CreateVal(counterName); _varVals[exp.Var] = counter; span.WriteLine("for(int {0} = ({1}).lower; ({0}) < ({1}).upper; ++({0}))", counterName, seq); span.WriteLine("{"); var ignored = EmitExp(exp.Body, span.IndentSpan()); span.WriteLine("}"); return VoidVal; }
private void TransformChildrenImpl( MidForExp exp) { exp.Seq = Transform(exp.Seq); exp.Body = Transform(exp.Body); }