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