public RG_EdgeTU_RX(MG.RG_EdgeNode rg_EdgeNode, preCH preCH_in) { var memANodeRX = (MGRX.MemANodeRX)rg_EdgeNode.memAVT.children[0]; // todo proper field in MemAVTNode - hard cast doubles as Assert memANodeRX.ACMembTypingCallback = () => preCH_in.PayT; // for now, and for lazyness: no extra TU_RX for MemARX var memA_preCH_out = new deferred_preCH( () => { return(new TTuple { isMulti = false, // todo PayT = SGA.MembType_Exact(preCH_in.PayT, memANodeRX.name) }); }, dataSrc: null // not used in RX-case ); // todo Assign creates a new Column ( thus distinct preCH ) in the properly translated version // the proper preCH out is that of AssignVT - but since types are identical, and that's all we care for here : this could simply be dropped, but i need the assignVTNode for scoping if (rg_EdgeNode.assignVT == null) { preCH_out = memA_preCH_out; } else { assignVTNode = new Assign_VBXTU(preCH_in, rg_EdgeNode.assignVT); preCH_out = assignVTNode.preCH_out; } }
public override void build() { sg_edge_node = (MG.SG_EdgeNode)children[0]; rg_edge_node = (MG.RG_EdgeNode)children[1]; }