コード例 #1
0
        public KeywordTokenizer(LanguageConfig languageConfig) : base(languageConfig)
        {
            var candidatesMap = languageConfig.Syntax.KeywordsMap
                                .ToDictionary(x => x.Value, x => x.Key);

            _keywordsTrie = SearchTrie <KeywordBase> .Create(languageConfig.Syntax.KeywordCaseSensitive, candidatesMap);
        }
コード例 #2
0
 private void textbox_Populating(object sender, PopulatingEventArgs e)
 {
     e.Cancel = true;
     if (SearchTrie != null)
     {
         textbox.ItemsSource = SearchTrie.FindPrefix(e.Parameter);
         textbox.PopulateComplete();
     }
 }
コード例 #3
0
        public void Should_work_with_basic_test_cases(TestCase testCase)
        {
            var trie = SearchTrie <Person> .Create(testCase.CaseSensitive, testCase.Map);

            var reader = new LexerStringReader(testCase.Query, testCase.StartPosition);

            var found = trie.TryFind(reader, out var person, out var readLength);

            found.Should().Be(testCase.ShouldBeFound);
            person.Should().Be(testCase.ExpectedValue);
            readLength.Should().Be(testCase.ExpectedReadLength);
        }