return RdpNotAllowed.Instance;
}
+ internal virtual RdpPattern EmptyTextDeriv (MemoizationStore memo)
+ {
+ return TextDeriv (String.Empty, null);
+ }
+
internal virtual RdpPattern TextOnlyDeriv ()
{
return this;
return this;
}
+ internal override RdpPattern EmptyTextDeriv (MemoizationStore memo)
+ {
+ return this;
+ }
+
internal override RdpPattern MixedTextDeriv ()
{
return this;
return LValue.TextDeriv (s, reader).Choice (RValue.TextDeriv (s, reader));
}
+ internal override RdpPattern EmptyTextDeriv (MemoizationStore memo)
+ {
+ return memo.EmptyTextDeriv (LValue)
+ .Choice (memo.EmptyTextDeriv (RValue));
+ }
+
internal override RdpPattern TextOnlyDeriv ()
{
return LValue.TextOnlyDeriv ().Choice (
.Choice (LValue.Interleave (RValue.TextDeriv (s, reader)));
}
+ internal override RdpPattern EmptyTextDeriv (MemoizationStore memo)
+ {
+ return memo.EmptyTextDeriv (LValue).Interleave (RValue)
+ .Choice (LValue.Interleave (memo.EmptyTextDeriv (RValue)));
+ }
+
internal override RdpPattern TextOnlyDeriv ()
{
return LValue.TextOnlyDeriv ().Interleave (
p.Choice (RValue.TextDeriv (s, reader)) : p;
}
+ internal override RdpPattern EmptyTextDeriv (MemoizationStore memo)
+ {
+ RdpPattern p = memo.EmptyTextDeriv (LValue).Group (RValue);
+ return LValue.Nullable ?
+ p.Choice (memo.EmptyTextDeriv (RValue)) : p;
+ }
+
internal override RdpPattern TextOnlyDeriv ()
{
return LValue.TextOnlyDeriv ().Group (
return Child.TextDeriv (s, reader).Group (this.Choice (RdpEmpty.Instance));
}
+ internal virtual RdpPattern EmptyTextDeriv (MemoizationStore memo)
+ {
+ return memo.EmptyTextDeriv (Child).Group (this.Choice (RdpEmpty.Instance));
+ }
+
internal override RdpPattern TextOnlyDeriv ()
{
return Child.TextOnlyDeriv ().OneOrMore ();
return RdpNotAllowed.Instance;
}
+ internal virtual RdpPattern EmptyTextDeriv (MemoizationStore memo)
+ {
+ return RdpEmpty.Instance;
+ }
+
internal override void CheckConstraints (bool attribute, bool oneOrMore, bool oneOrMoreGroup, bool oneOrMoreInterleave, bool list, bool dataExcept)
{
if (list)
return LValue.TextDeriv (s, reader).After (RValue);
}
+ internal override RdpPattern EmptyTextDeriv (MemoizationStore memo)
+ {
+ return memo.EmptyTextDeriv (LValue).After (RValue);
+ }
+
internal override RdpPattern TextOnlyDeriv ()
{
return LValue.TextOnlyDeriv ().After (RValue);