def build_lisp(self): field_values = sorted(self.field_values, key=lambda (field, value): str(field)) res = LispExpr( self.container._name, *(LispExpr(field.name, value) for field, value in field_values)) if self.negative: res = LispExpr('not', res) return res
def _build_lhs(self): lhs = [] if self.salience is not None: lhs.append(LispExpr('declare', LispExpr('salience', self.salience))) for premise in sorted(self.premises.itervalues(), key=lambda p: p.var_name): premise.replace_values(self.variable_values) lhs.append(premise.build_str()) lhs.extend( condition.replace_fields(self.variable_map).to_lisp() for condition in self.conditions) return '\n'.join(str(x) for x in lhs)
def to_lisp(self): args = [arg.to_lisp() for arg in self.args] return LispExpr('if', args[0], 'then', args[1], 'else', args[2])
def to_lisp(self): field_values = self._field_values_to_lisp() return LispExpr('assert', LispExpr(self.rule.get_target_name(), *field_values))
def _field_values_to_lisp(self): return [ LispExpr(key, value.to_lisp()) for key, value in sorted(self.data.iteritems()) ]
def to_lisp(self): return LispExpr('retract', self.fact)
def to_lisp(self): field_values = self._field_values_to_lisp() return LispExpr('modify', self.fact, *field_values)
def to_lisp(self): if not self.args: return '({})'.format(self.func_name) else: return LispExpr(self.func_name, *(arg.to_lisp() for arg in self.args))
def to_lisp(self): return LispExpr(self.op, self.expr.to_lisp())
def to_lisp(self): expr = self.expr if isinstance(self.expr, VariableExpr): expr = not_(not_(expr)) return LispExpr('test', expr.to_lisp())
def to_lisp(self): return LispExpr(self.op, *(arg.to_lisp() for arg in self.args))
def build_target_field(self): return LispExpr(self.target_field_name, self.target_field_var)