コード例 #1
0
ファイル: RegexpBuilder.cs プロジェクト: killbug2004/reko
			public override void ComputeLastPos(RegexpBuilder bld)
			{
				Left.ComputeLastPos(bld);
				Right.ComputeLastPos(bld);
				LastPos = (BitArray) Right.LastPos.Clone();
				if (Right.Nullable)
				{
					LastPos.Or(Left.LastPos);
				}
			}
コード例 #2
0
ファイル: RegexpBuilder.cs プロジェクト: killbug2004/reko
			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);
				}		
			}
コード例 #3
0
ファイル: RegexpBuilder.cs プロジェクト: killbug2004/reko
			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);
				}	
			}
コード例 #4
0
ファイル: RegexpBuilder.cs プロジェクト: killbug2004/reko
			public override void ComputeFirstPos(RegexpBuilder bld)
			{
				Left.ComputeFirstPos(bld);
				Right.ComputeFirstPos(bld);
				FirstPos = (BitArray) Left.FirstPos.Clone();
				if (Left.Nullable)
				{
					FirstPos.Or(Right.FirstPos);
				}
			}
コード例 #5
0
ファイル: RegexpBuilder.cs プロジェクト: killbug2004/reko
			public override void ComputeFollowPos(RegexpBuilder b)
			{
				Left.ComputeFollowPos(b);
				Right.ComputeFollowPos(b);
				FollowPos = (BitArray)Left.FollowPos.Clone();
				FollowPos.Or(Right.FollowPos);
			}
コード例 #6
0
ファイル: RegexpBuilder.cs プロジェクト: killbug2004/reko
			public override void ComputeLastPos(RegexpBuilder bld)
			{
				node.ComputeLastPos(bld);
				LastPos = (BitArray) node.LastPos.Clone();
			}
コード例 #7
0
ファイル: RegexpBuilder.cs プロジェクト: killbug2004/reko
			public override void ComputeLastPos(RegexpBuilder bld)
			{
				Left.ComputeLastPos(bld);
				Right.ComputeLastPos(bld);
				LastPos = (BitArray)Left.FirstPos.Clone();
				LastPos.Or(Right.LastPos);
			}
コード例 #8
0
ファイル: RegexpBuilder.cs プロジェクト: killbug2004/reko
			public override void ComputeFollowPos(RegexpBuilder b)
			{
				FollowPos = new BitArray(b.positions.Count);
			}
コード例 #9
0
ファイル: RegexpBuilder.cs プロジェクト: killbug2004/reko
			public override void ComputeLastPos(RegexpBuilder bld)
			{
				LastPos = new BitArray(bld.positions.Count);
				LastPos.Set(Position, true);
			}
コード例 #10
0
ファイル: RegexpBuilder.cs プロジェクト: killbug2004/reko
			public abstract void ComputeFollowPos(RegexpBuilder bld);
コード例 #11
0
ファイル: RegexpBuilder.cs プロジェクト: killbug2004/reko
			public abstract void ComputeLastPos(RegexpBuilder bld);