From: Tim Vieira Date: Wed, 24 Jul 2013 19:16:29 +0000 (-0400) Subject: small fix. X-Git-Url: https://hydra-www.ietfng.org/gitweb/?a=commitdiff_plain;h=43447a4c636b66ba9b49ca87c2e71c9c8aeb67fd;p=dyna2 small fix. --- diff --git a/src/Dyna/Backend/Python/interpreter.py b/src/Dyna/Backend/Python/interpreter.py index e5a8a05..a890a76 100644 --- a/src/Dyna/Backend/Python/interpreter.py +++ b/src/Dyna/Backend/Python/interpreter.py @@ -546,9 +546,12 @@ class Interpreter(object): # if now there are no more rules defining a functor if not self.rule_by_head[rule.head_fn]: - del self.chart[rule.head_fn] # delete the chart. - del self.agg_name[rule.head_fn] - del self.pstate[2][rule.head_fn] # remove fn aggr def from parser state + if rule.head_fn in self.chart: + del self.chart[rule.head_fn] # delete the chart. + if rule.head_fn in self.agg_name: + del self.agg_name[rule.head_fn] + if rule.head_fn in self.pstate[2]: + del self.pstate[2][rule.head_fn] # remove fn aggr def from parser state self._agenda() return self.changed diff --git a/src/Dyna/Backend/Python/utils.py b/src/Dyna/Backend/Python/utils.py index 2865ec5..bfae7ea 100644 --- a/src/Dyna/Backend/Python/utils.py +++ b/src/Dyna/Backend/Python/utils.py @@ -262,7 +262,7 @@ def pretty(t, initialindent=0): return f.getvalue() -class ANF(namedtuple('ANF', 'lines ruleix agg head evals unifs result')): +class ANF(namedtuple('ANF', 'span ruleix agg head evals unifs result')): pass @@ -276,9 +276,9 @@ def read_anf(e): def g(x): return list(_g(x)) - for lines, ruleix, anf in re.findall('^;; (.*)\n;; index (\d+)\n(\([\w\W]+?)\n(?:\n|$)', e, re.MULTILINE): + for span, ruleix, anf in re.findall('^;; (.*)\n;; index (\d+)\n(\([\w\W]+?)\n(?:\n|$)', e, re.MULTILINE): for (agg, head, evals, unifs, [_,result]) in parse_sexpr(anf): - yield ANF(lines, + yield ANF(span, int(ruleix), agg, head,