Implements a tree automaton as used for tree pattern matching by Kahina's breakpoint system.
Encodes a rule within a
An exception type thrown when validating the values of a
Kahina's breakpoint system is built around the definition of patterns on step content, which can be combined using boolean connectives, and then used as elementary patterns to define patterns in a step tree.
is used to encode (boolean combinations of) node patterns.
At the moment, string comparisons (including regular expressions) are allowed
for matching step descriptions and edge labels in a step tree,
and integer relations allow to match a step's ID and status values.
TreeNodePatterns can be grouped recursively to boolean combinations
using the negation, conjunction, disjunction, and implication connectives.
In order to make tree pattern matches efficiently computable,
tree patterns are compiled into tree automata.
TreeAutomaton keeps track of the changes
KahinaTree object, firing a
in case the tree pattern it encodes is matched by.
Internally a TreeAutomaton is defined a collection of rules, and maintains annotations of the nodes in a KahinaTree.
The rules are represented by instances of
each of which combines a TreeNodePattern with a set of required annotations for the matched node's children.
During breakpoint compilation an editing,
are used to inform the interface components about specification errors for user feedback.