public override void ComputeLastPos(RegexpBuilder bld) { Left.ComputeLastPos(bld); Right.ComputeLastPos(bld); LastPos = (BitArray) Right.LastPos.Clone(); if (Right.Nullable) { LastPos.Or(Left.LastPos); } }
public override void ComputeFollowPos(RegexpBuilder bld) { Left.ComputeFollowPos(bld); Right.ComputeFollowPos(bld); FollowPos = new BitArray(0); for (int i = 0; i != Left.LastPos.Length; ++i) { if (!Left.LastPos.Get(i)) continue; ByteNode ii = (ByteNode) bld.positions[i]; ii.FollowPos.Or(Right.FirstPos); } }
public override void ComputeFollowPos(RegexpBuilder bld) { node.ComputeFollowPos(bld); FollowPos = node.FollowPos; for (int i = 0; i != LastPos.Length; ++i) { if (!LastPos[i]) continue; ByteNode ii = (ByteNode) bld.positions[i]; ii.FollowPos.Or(FirstPos); } }
public override void ComputeFirstPos(RegexpBuilder bld) { Left.ComputeFirstPos(bld); Right.ComputeFirstPos(bld); FirstPos = (BitArray) Left.FirstPos.Clone(); if (Left.Nullable) { FirstPos.Or(Right.FirstPos); } }
public override void ComputeFollowPos(RegexpBuilder b) { Left.ComputeFollowPos(b); Right.ComputeFollowPos(b); FollowPos = (BitArray)Left.FollowPos.Clone(); FollowPos.Or(Right.FollowPos); }
public override void ComputeLastPos(RegexpBuilder bld) { node.ComputeLastPos(bld); LastPos = (BitArray) node.LastPos.Clone(); }
public override void ComputeLastPos(RegexpBuilder bld) { Left.ComputeLastPos(bld); Right.ComputeLastPos(bld); LastPos = (BitArray)Left.FirstPos.Clone(); LastPos.Or(Right.LastPos); }
public override void ComputeFollowPos(RegexpBuilder b) { FollowPos = new BitArray(b.positions.Count); }
public override void ComputeLastPos(RegexpBuilder bld) { LastPos = new BitArray(bld.positions.Count); LastPos.Set(Position, true); }
public abstract void ComputeFollowPos(RegexpBuilder bld);
public abstract void ComputeLastPos(RegexpBuilder bld);