From 740ac677f9029cbd5697ff7e29330d0c30fd63d4 Mon Sep 17 00:00:00 2001 From: Sapan Bhatia Date: Tue, 27 Oct 2009 02:19:29 +0000 Subject: [PATCH] Fixed a bug we ran into a demo with Andy. Stop on terminal rules ONLY if it has matched. --- sfatables/runtime.py | 4 ++-- sfatables/test.sfarspec | 4 ++-- sfatables/xmlrule.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sfatables/runtime.py b/sfatables/runtime.py index b76ec0a8..ef3ccc42 100644 --- a/sfatables/runtime.py +++ b/sfatables/runtime.py @@ -74,8 +74,8 @@ class SFATablesRules: intermediate_rspec = doc for rule in self.sorted_rule_list: - intermediate_rspec = rule.apply_interpreted(intermediate_rspec) - if (rule.terminal): + (matched,intermediate_rspec) = rule.apply_interpreted(intermediate_rspec) + if (rule.terminal and matched): break final_rspec = self.wrap_up(intermediate_rspec) diff --git a/sfatables/test.sfarspec b/sfatables/test.sfarspec index f0a856a5..a7173e86 100644 --- a/sfatables/test.sfarspec +++ b/sfatables/test.sfarspec @@ -1,6 +1,6 @@ - + @@ -10,4 +10,4 @@ - + diff --git a/sfatables/xmlrule.py b/sfatables/xmlrule.py index d8b30dcf..bd41dbfc 100644 --- a/sfatables/xmlrule.py +++ b/sfatables/xmlrule.py @@ -85,9 +85,9 @@ class XMLRule: # else rspec if (self.match(rspec)): - return self.wrap_up(self.target(rspec)) + return (True,self.wrap_up(self.target(rspec)) else: - return self.wrap_up(rspec) + return (False,self.wrap_up(rspec)) def apply_compiled(rspec): -- 2.43.0