public ProvStartTU_RX(MGRX.ProvStartNode start_node) { // copy pasta'd from base() preCH primStepsLHS = null; if (start_node.rootIsSG) { root_SG_edge = new Root_SG_EdgeTU(start_node.startSG); rootIsSG = true; primStepsLHS = root_SG_edge.preCH_out; } else { var dummy_root_CH = new TypedSingleCH <int>(); dummy_Suigen = new OP_SuiGen <int>(dummy_root_CH, (_) => new [] { 1 }); root_FunCall = new FunCallTU_RX(new adapter_preCH(dummy_root_CH), (MGRX.FunCallNodeRX)start_node.startFuncall); rootIsSG = false; primStepsLHS = root_FunCall.preCH_out; } var L = new List <PrimitveStepTU>(); preCH current_preCH = primStepsLHS; foreach (var prim_step in start_node.primSteps) { var TU = new PrimitveStepTU_RX(current_preCH, prim_step); L.Add(TU); current_preCH = TU.preCH_out; } subsequent_Steps = L.ToArray(); }
public TestTR(TestMG1.MemA_andOptAssign startNode, preCH pre_LHS) { test_start_node = startNode; this.pre_LHS = pre_LHS; memaTR = new MemA_VBXTU(pre_LHS, startNode.memavt_node); assignTR = startNode.assignvt_node == null ? null : new Assign_VBXTU(memaTR.preCH_out, startNode.assignvt_node); }
public TestStartRXTU(TMP_RX_Grammar.TestStartRXNode startNode) { preCH root_preCH = SG_Step_preCH_OUT(startNode.sgEdgeNode); var FEs = new List <FanElemRX_TU>(); preCH lhs_preCH = root_preCH; foreach (var FE_Node in startNode.fanNodes) { var FE_TU = new FanElemRX_TU(FE_Node, lhs_preCH); FEs.Add(FE_TU); lhs_preCH = FE_TU.preCH_out; } FanElemTUs = FEs.ToArray(); }