/// <summary> /// Evaluates the expressions in a Pegasus <see cref="Grammar"/> to determine which of them contain assertions. /// </summary> /// <param name="grammar">The <see cref="Grammar"/> to evaluate.</param> /// <returns>A <see cref="Dictionary{TKey, TValue}"/> detailing the whether each expression in the grammar contains assertions.</returns> public static Dictionary <Expression, bool> Evaluate(Grammar grammar) { var containsAssertions = new Dictionary <Expression, bool?>(); var walker = new ContainsAssertionsWalker(grammar, containsAssertions); do { walker.WalkGrammar(grammar); }while (walker.Changed); return(containsAssertions.ToDictionary(x => x.Key, x => x.Value ?? false)); }
/// <summary> /// Evaluates the expressions in a Pegasus <see cref="Grammar"/> to determine which of them contain assertions. /// </summary> /// <param name="grammar">The <see cref="Grammar"/> to evaluate.</param> /// <returns>A <see cref="Dictionary{TKey, TValue}"/> detailing the whether each expression in the grammar contains assertions.</returns> public static Dictionary<Expression, bool> Evaluate(Grammar grammar) { var containsAssertions = new Dictionary<Expression, bool?>(); var walker = new ContainsAssertionsWalker(grammar, containsAssertions); do { walker.WalkGrammar(grammar); } while (walker.Changed); return containsAssertions.ToDictionary(x => x.Key, x => x.Value ?? false); }