From 43447a4c636b66ba9b49ca87c2e71c9c8aeb67fd Mon Sep 17 00:00:00 2001 From: Tim Vieira Date: Wed, 24 Jul 2013 15:16:29 -0400 Subject: [PATCH] small fix. --- src/Dyna/Backend/Python/interpreter.py | 9 ++++++--- src/Dyna/Backend/Python/utils.py | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) 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, -- 2.50.1