コード例 #1
0
        public void Populate(TextBuffer textInput, ParseDictionary dictionary)
        {
            var count = 0;
            var index = 1;

            foreach (var token in textInput.Tokens)
            {
                var dictionaryAddress = 0;
                var searchTerm        = token.Value;
                if (searchTerm.Length > 6)
                {
                    searchTerm = searchTerm.Remove(6);
                }
                if (dictionary.Words.ContainsKey(searchTerm))
                {
                    dictionaryAddress = dictionary.Words[searchTerm].Address;
                }

                var(msb, lsb)                = Bits.BreakWord(dictionaryAddress);
                memory.Bytes.Span[index]     = msb;
                memory.Bytes.Span[index + 1] = lsb;
                memory.Bytes.Span[index + 2] = (byte)searchTerm.Length;
                memory.Bytes.Span[index + 3] = (byte)token.Key;

                count += 1;
                index += 4;
                if (index >= MaxLength)
                {
                    break;
                }
            }

            memory.Bytes.Span[0] = (byte)count;
        }
コード例 #2
0
 public void BreakWordTests()
 {
     Assert.Equal((0xFF, 0x00), Bits.BreakWord(0xFF00));
     Assert.Equal((0x00, 0xFF), Bits.BreakWord(0x00FF));
     Assert.Equal((0x0F, 0xF0), Bits.BreakWord(0x0FF0));
     Assert.Equal((0x12, 0x34), Bits.BreakWord(0x1234));
 }