internal override RdpPattern StartAttDeriv (string name, string ns, MemoizationStore memo) { return memo.StartAttDeriv (LValue, name, ns) .Choice (memo.StartAttDeriv (RValue, name, ns)); }
internal override RdpPattern StartAttDeriv (string name, string ns, MemoizationStore memo) { RdpPattern rest = RdpEmpty.Instance.Choice (Child.OneOrMore ()); RdpPattern handled = memo.StartAttDeriv (Child, name, ns); RdpFlip f = MakeFlip (RdpUtil.GroupFunction, rest); return handled.ApplyAfter (new RdpApplyAfterHandler (f.Apply)); }
internal override RdpPattern StartAttDeriv (string name, string ns, MemoizationStore memo) { RdpPattern handled = memo.StartAttDeriv (LValue, name, ns); RdpFlip f = MakeFlip (RdpUtil.AfterFunction, RValue); return handled.ApplyAfter (new RdpApplyAfterHandler ( f.Apply)); }
internal override RdpPattern StartAttDeriv (string name, string ns, MemoizationStore memo) { RdpPattern handledL = memo.StartAttDeriv (LValue, name, ns); RdpPattern handledR = memo.StartAttDeriv (RValue, name, ns); RdpFlip flipL = MakeFlip (RdpUtil.GroupFunction, RValue); RdpPattern choiceL = handledL.ApplyAfter (new RdpApplyAfterHandler (flipL.Apply)); RdpPattern choiceR = handledR.ApplyAfter (new RdpApplyAfterHandler (LValue.Group)); return choiceL.Choice (choiceR); }