Improve event-based graph matching
Created originally on Bitbucket by cdevienne (Christophe de Vienne)
Currently the graph matching is done on a list of event types. If a graph matches on 3 event types, an envelope must contain these 3 event types, and only them to trigger the graph.
This issue proposes to add more powerful rules to match on event types.
Here is a grammar-like definition of a matching rule:
<matching-rule> ::=
<eventtype>
| <optional-rule>
| <matching-rule-list>
<optional-rule> ::=
"*" <matching-rule>
<matching-rule-list> ::=
"(" <matching-rule> [ { "," <matching-rule> } ... ] ")"
- A matching rule list would match if all its rules match.
- A optionnal-rule matches event if its sub-rule does not match.
- A rule matches one or more events.
- Each event must be matched at least once.