def trystep(config): (n, vs, I, O) = config v = findn(vs, n) (n, c) = v.params if c.operator == END: return (TERMINATED, None) elif I == [] and (c.operator in (DOUNTIL, IFELSE)): return (WAITING, None) elif c.operator == DOONCE: (a, n2) = c.params doaction(a) return (STEP, (n2, vs, I, [a] + O)) elif c.operator == DOUNTIL: (a, cnd, n2) = c.params b = checkcond(cnd) doaction(a) if b: return (STEP, (n2, vs, I, [a] + O)) else: return (STEP, (n, vs, I, [a] + O)) elif c.operator == IFELSE: (cnd, n2, n3) = c.params b = checkcond(cnd) if b: return (STEP, (n2, vs, I, O)) else: return (STEP, (n3, vs, I, O)) elif c.operator == GOTO: (n2, ) = c.params return (STEP, (n2, vs, I, O)) else: publisher.publish("Runtime Error: Unknown Content Operator?") raise Exception("Runtime Error: Unknown Content Operator?")
def trystep(config): (n, vs, I, O) = config v = findn(vs, n) (n, c) = v.params if c.operator == END: return (TERMINATED, None) elif I == [] and (c.operator in (DOUNTIL, IFELSE)): return (WAITING, None) elif c.operator == DOONCE: (a, n2) = c.params doaction(a) return (STEP, (n2, vs, I, [a] + O)) elif c.operator == DOUNTIL: (a, cnd, n2) = c.params b = checkcond(cnd) doaction(a) if b: return (STEP, (n2, vs, I, [a] + O)) else: return (STEP, (n, vs, I, [a] + O)) elif c.operator == IFELSE: (cnd, n2, n3) = c.params b = checkcond(cnd) if b: return (STEP, (n2, vs, I, O)) else: return (STEP, (n3, vs, I, O)) elif c.operator == GOTO: (n2,) = c.params return (STEP, (n2, vs, I, O)) else: raise Exception("Runtime Error: Unknown Content Operator?")
def trystep(self, config): (n, vs, I, O) = config v = findn(vs, n) (n, c) = v.params if c.operator == END: return (TERMINATED, None) elif I == [] and (c.operator in (DOUNTIL, IFELSE)): return (WAITING, None) elif c.operator == DOONCE: (a, n2) = c.params self._success = self.doaction(a, n) result = STEP if self._success else FAIL return (result, (n2, vs, I, [a] + O)) elif c.operator == DOUNTIL: (a, cnd, n2) = c.params b = checkcond(cnd) self._sucess = self.doaction(a, n) result = STEP if self._success else FAIL if b: return (result, (n2, vs, I, [a] + O)) else: return (result, (n, vs, I, [a] + O)) elif c.operator == IFELSE: (cnd, n2, n3) = c.params b = checkcond(cnd) if b: return (STEP, (n2, vs, I, O)) else: return (STEP, (n3, vs, I, O)) elif c.operator == GOTO: (n2, ) = c.params return (STEP, (n2, vs, I, O)) else: self.publish_feedback("Runtime Error: Unsupported action!") self._success = False
def trystep(self, config): (n, vs, I, O) = config v = findn(vs, n) (n, c) = v.params if c.operator == END: return (TERMINATED, None) elif I == [] and (c.operator in (DOUNTIL, IFELSE)): return (WAITING, None) elif c.operator == DOONCE: (a, n2) = c.params self._success = self.doaction(a) result = STEP if self._success else FAIL return (result, (n2, vs, I, [a] + O)) elif c.operator == DOUNTIL: (a, cnd, n2) = c.params b = checkcond(cnd) self._sucess = self.doaction(a) result = STEP if self._success else FAIL if b: return (result, (n2, vs, I, [a] + O)) else: return (result, (n, vs, I, [a] + O)) elif c.operator == IFELSE: (cnd, n2, n3) = c.params b = checkcond(cnd) if b: return (STEP, (n2, vs, I, O)) else: return (STEP, (n3, vs, I, O)) elif c.operator == GOTO: (n2,) = c.params return (STEP, (n2, vs, I, O)) else: self.publish_feedback("Runtime Error: Unsupported action!"); self._success = False