예제 #1
0
    /// <summary>
    /// Get a value from a char trie. Used mostly for testing purposes.
    /// </summary>
    /// <typeparam name="TResult"></typeparam>
    /// <param name="trie"></param>
    /// <param name="keys"></param>
    /// <returns></returns>
    public static IOption <TResult> Get <TResult>(this IReadOnlyTrie <char, TResult> trie, string keys)
    {
        var input  = new StringCharacterSequence(keys, default);
        var result = trie.Get(input);

        return(result.Match(FailureOption <TResult> .Instance, value => new SuccessOption <TResult>(value)));
    }
예제 #2
0
 /// <summary>
 /// Lookup a sequences of inputs in an IReadOnlyTrie and return all matches from the current
 /// position.
 /// </summary>
 /// <typeparam name="TOutput"></typeparam>
 /// <param name="readOnlyTrie"></param>
 /// <returns></returns>
 public static IMultiParser <TInput, TOutput> TrieMulti <TOutput>(IReadOnlyTrie <TInput, TOutput> readOnlyTrie)
     where TOutput : notnull
 => new TrieParser <TInput, TOutput>(readOnlyTrie);