internal Node(Clause clause, TriggerTree tree, Trigger trigger = null) { // In order to debug: // 1) Enable Count and VerifyTree // 2) Run your scenario // 3) You will most likely get a break on the error. // 4) Enable TraceTree and set it here to get the trace before count // Node._count has the global count for breakpoint // ShowTrace = _count > 280000; Clause = new Clause(clause); // Drop ignored from node clause Tree = tree; if (trigger != null) { _allTriggers.Add(trigger); _triggers.Add(trigger); } }
/// <summary> /// Initializes a new instance of the <see cref="Trigger"/> class. /// Construct a trigger expression. /// </summary> /// <param name="tree">Trigger tree that contains this trigger.</param> /// <param name="expression">Expression for when the trigger action is possible.</param> /// <param name="action">Action to take when a trigger matches.</param> /// <param name="quantifiers">Quantifiers to dynamically expand the expression.</param> internal Trigger(TriggerTree tree, Expression expression, object action, params Quantifier[] quantifiers) { _tree = tree; Action = action; OriginalExpression = expression; _quantifiers = quantifiers; if (expression != null) { var normalForm = expression.PushDownNot(); _clauses = GenerateClauses(normalForm).ToList(); RemoveDuplicatedPredicates(); OptimizeClauses(); ExpandQuantifiers(); RemoveDuplicates(); MarkSubsumedClauses(); SplitIgnores(); } else { _clauses = new List <Clause>(); } }
public Debugger(TriggerTree triggers) { TreeString = triggers.TreeToString(); Optimizers = triggers.Optimizers; Comparers = triggers.Comparers; }