예제 #1
0
파일: nfa.py 프로젝트: sprymix/pyggy
	def catmach(self, mach1, mach2) :
		if mach1 == None :
			return mach2
		self.addtran(mach1.end, mach2.start)
		return nfamach(self, mach1.start, mach2.end, 
						minof(mach1.min, mach2.min), 
						maxof(mach1.max, mach2.max))
예제 #2
0
파일: nfa.py 프로젝트: hosford42/pyggy
 def catmach(self, mach1, mach2):
     if mach1 == None:
         return mach2
     self.addtran(mach1.end, mach2.start)
     return nfamach(self, mach1.start,
                    mach2.end, minof(mach1.min, mach2.min),
                    maxof(mach1.max, mach2.max))
예제 #3
0
파일: nfa.py 프로젝트: sprymix/pyggy
	def dualmach(self, mach1, mach2) :
		if mach1 == None :
			return mach2
		start = self.addstate(EPSILON)
		self.addtran(start, mach1.start)
		self.addtran(start, mach2.start)
		return nfamach(self, start, NOSTATE,
						minof(mach1.min, mach2.min), start)
예제 #4
0
파일: nfa.py 프로젝트: hosford42/pyggy
 def dualmach(self, mach1, mach2):
     if mach1 == None:
         return mach2
     start = self.addstate(EPSILON)
     self.addtran(start, mach1.start)
     self.addtran(start, mach2.start)
     return nfamach(self, start, NOSTATE, minof(mach1.min, mach2.min),
                    start)
예제 #5
0
파일: nfa.py 프로젝트: hosford42/pyggy
 def altmach(self, mach1, mach2):
     if mach1 == None:
         return mach2
     start = self.addstate(EPSILON)
     end = self.addstate(EPSILON)
     self.addtran(start, mach1.start)
     self.addtran(start, mach2.start)
     self.addtran(mach1.end, end)
     self.addtran(mach2.end, end)
     return nfamach(self, start, end, minof(mach1.min, mach2.min), end)
예제 #6
0
파일: nfa.py 프로젝트: sprymix/pyggy
	def altmach(self, mach1, mach2) :
		if mach1 == None :
			return mach2
		start = self.addstate(EPSILON)
		end = self.addstate(EPSILON)
		self.addtran(start, mach1.start)
		self.addtran(start, mach2.start)
		self.addtran(mach1.end, end)
		self.addtran(mach2.end, end)
		return nfamach(self, start, end, 
						minof(mach1.min, mach2.min), end)