示例#1
0
		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));
		}
示例#2
0
		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));
		}
示例#3
0
		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;
		}
示例#4
0
		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));
		}
示例#5
0
		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);
		}