Fixed a bug we ran into a demo with Andy. Stop on terminal rules ONLY if it has matched.
[sfa.git] / sfatables / runtime.py
index b76ec0a..ef3ccc4 100644 (file)
@@ -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)