]> hydra-www.ietfng.org Git - dyna2/commitdiff
small fix.
authorTim Vieira <tim.f.vieira@gmail.com>
Wed, 24 Jul 2013 19:16:29 +0000 (15:16 -0400)
committerTim Vieira <tim.f.vieira@gmail.com>
Wed, 24 Jul 2013 19:16:29 +0000 (15:16 -0400)
src/Dyna/Backend/Python/interpreter.py
src/Dyna/Backend/Python/utils.py

index e5a8a059921dab32569b38d094fc64526286208e..a890a76aafd772135ae00d909b5eabc90f10aa70 100644 (file)
@@ -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
index 2865ec58ead9ba3cdd66ec6e93965512d1710cbc..bfae7eaeb9c606052af8160d42ee0f89c6017366 100644 (file)
@@ -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,