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))
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))
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)
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)
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)
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)