jweinst1
5/20/2016 - 4:28 AM

dual fsa in python

dual fsa in python

class dualState:
	
	def __init__(self, s1, s2, i1, i2):
		self.s1 = s1
		self.s2 = s2
		self.i1 = i1
		self.i2 = i2
		self.val = s1
	def __repr__(self):
		return str(self.s1) + " <- ("+ str(self.val) +") -> " + str(self.s2)
	def transition(self, inst):
		if self.val == self.s1:
			if inst == self.i1:
				self.val = self.s2
			else:
				return False
		elif self.val == self.s2:
			if inst == self.i2:
				self.val = self.s1
			else:
				return False

"""   f = dualState(1, 2, "a", "b")
=> None
   f
=> 1 <- (1) -> 2
   f.transition("a")
=> None
   f
=> 1 <- (2) -> 2
   f.transition("a")
=> False
   f.transition("b")
=> None
   f
=> 1 <- (1) -> 2
   """