@@ -11,24 +11,26 @@ private void BuildHiraganaTree(MyTrie trie)
11
11
var romajiTrie = new MyInMemoryTrie ( ) ;
12
12
var root = romajiTrie . Root ;
13
13
14
- root . Insert ( ( 'あ' , "a" ) , ( 'い' , "i" ) , ( 'う' , "u" ) , ( 'え' , "e" ) , ( 'お' , "o" ) ,
15
- ( 'か' , "ka" ) , ( 'き' , "ki" ) , ( 'く' , "ku" ) , ( 'け' , "ke" ) , ( 'こ' , "ko" ) ,
16
- ( 'さ' , "sa" ) , ( 'し' , "si" ) , ( 'す' , "su" ) , ( 'せ' , "se" ) , ( 'そ' , "so" ) ,
17
- ( 'た' , "ta" ) , ( 'ち' , "ti" ) , ( 'つ' , "tu" ) , ( 'て' , "te" ) , ( 'と' , "to" ) ,
18
- ( 'な' , "na" ) , ( 'に' , "ni" ) , ( 'ぬ' , "nu" ) , ( 'ね' , "ne" ) , ( 'の' , "no" ) ,
19
- ( 'は' , "ha" ) , ( 'ひ' , "hi" ) , ( 'ふ' , "hu" ) , ( 'へ' , "he" ) , ( 'ほ' , "ho" ) ,
20
- ( 'ま' , "ma" ) , ( 'み' , "mi" ) , ( 'む' , "mu" ) , ( 'め' , "me" ) , ( 'も' , "mo" ) ,
21
- ( 'や' , "ya" ) , ( 'ゆ' , "yu" ) , ( 'よ' , "yo" ) ,
22
- ( 'ら' , "ra" ) , ( 'り' , "ri" ) , ( 'る' , "ru" ) , ( 'れ' , "re" ) , ( 'ろ' , "ro" ) ,
23
- ( 'わ' , "wa" ) , ( 'を' , "wo" ) ,
24
- ( 'ん' , "n" ) ,
25
- ( 'が' , "ga" ) , ( 'ぎ' , "gi" ) , ( 'ぐ' , "gu" ) , ( 'げ' , "ge" ) , ( 'ご' , "go" ) ,
26
- ( 'ざ' , "za" ) , ( 'じ' , "zy" ) , ( 'ず' , "zu" ) , ( 'ぜ' , "ze" ) , ( 'ぞ' , "zo" ) ,
27
- ( 'だ' , "da" ) , ( 'ぢ' , "ji" ) , ( 'づ' , "zu" ) , ( 'で' , "de" ) , ( 'ど' , "do" ) ,
28
- ( 'ば' , "ba" ) , ( 'び' , "bi" ) , ( 'ぶ' , "bu" ) , ( 'べ' , "be" ) , ( 'ぼ' , "bo" ) ,
29
- ( 'ぱ' , "pa" ) , ( 'ぴ' , "pi" ) , ( 'ぷ' , "pu" ) , ( 'ぺ' , "pe" ) , ( 'ぽ' , "po" ) ,
30
- ( 'ぁ' , "a" ) , ( 'ぃ' , "i" ) , ( 'ぅ' , "u" ) , ( 'ぇ' , "e" ) , ( 'ぉ' , "o" ) ,
31
- ( 'ゃ' , "ya" ) , ( 'ゅ' , "yu" ) , ( 'ょ' , "yo" ) ) ;
14
+ root . Insert (
15
+ ( 'あ' , "a" ) , ( 'い' , "i" ) , ( 'う' , "u" ) , ( 'え' , "e" ) , ( 'お' , "o" ) ,
16
+ ( 'か' , "ka" ) , ( 'き' , "ki" ) , ( 'く' , "ku" ) , ( 'け' , "ke" ) , ( 'こ' , "ko" ) ,
17
+ ( 'さ' , "sa" ) , ( 'し' , "si" ) , ( 'す' , "su" ) , ( 'せ' , "se" ) , ( 'そ' , "so" ) ,
18
+ ( 'た' , "ta" ) , ( 'ち' , "ti" ) , ( 'つ' , "tu" ) , ( 'て' , "te" ) , ( 'と' , "to" ) ,
19
+ ( 'な' , "na" ) , ( 'に' , "ni" ) , ( 'ぬ' , "nu" ) , ( 'ね' , "ne" ) , ( 'の' , "no" ) ,
20
+ ( 'は' , "ha" ) , ( 'ひ' , "hi" ) , ( 'ふ' , "hu" ) , ( 'へ' , "he" ) , ( 'ほ' , "ho" ) ,
21
+ ( 'ま' , "ma" ) , ( 'み' , "mi" ) , ( 'む' , "mu" ) , ( 'め' , "me" ) , ( 'も' , "mo" ) ,
22
+ ( 'や' , "ya" ) , ( 'ゆ' , "yu" ) , ( 'よ' , "yo" ) ,
23
+ ( 'ら' , "ra" ) , ( 'り' , "ri" ) , ( 'る' , "ru" ) , ( 'れ' , "re" ) , ( 'ろ' , "ro" ) ,
24
+ ( 'わ' , "wa" ) , ( 'を' , "wo" ) ,
25
+ ( 'ん' , "n" ) ,
26
+ ( 'が' , "ga" ) , ( 'ぎ' , "gi" ) , ( 'ぐ' , "gu" ) , ( 'げ' , "ge" ) , ( 'ご' , "go" ) ,
27
+ ( 'ざ' , "za" ) , ( 'じ' , "zy" ) , ( 'ず' , "zu" ) , ( 'ぜ' , "ze" ) , ( 'ぞ' , "zo" ) ,
28
+ ( 'だ' , "da" ) , ( 'ぢ' , "ji" ) , ( 'づ' , "zu" ) , ( 'で' , "de" ) , ( 'ど' , "do" ) ,
29
+ ( 'ば' , "ba" ) , ( 'び' , "bi" ) , ( 'ぶ' , "bu" ) , ( 'べ' , "be" ) , ( 'ぼ' , "bo" ) ,
30
+ ( 'ぱ' , "pa" ) , ( 'ぴ' , "pi" ) , ( 'ぷ' , "pu" ) , ( 'ぺ' , "pe" ) , ( 'ぽ' , "po" ) ,
31
+ ( 'ぁ' , "a" ) , ( 'ぃ' , "i" ) , ( 'ぅ' , "u" ) , ( 'ぇ' , "e" ) , ( 'ぉ' , "o" ) ,
32
+ ( 'ゃ' , "ya" ) , ( 'ゅ' , "yu" ) , ( 'ょ' , "yo" )
33
+ ) ;
32
34
33
35
{
34
36
var whitelist = new [ ] { 'き' , 'に' , 'ひ' , 'み' , 'り' , 'ぎ' , 'び' , 'ぴ' } ;
@@ -84,13 +86,13 @@ private void BuildHiraganaTree(MyTrie trie)
84
86
var sokuon = root . Insert ( ( 'っ' , "" ) ) ;
85
87
var exceptions = new [ ]
86
88
{
87
- 'あ' , 'い' , 'う' , 'え' , 'お' ,
88
- 'や' , 'ゆ' , 'よ' ,
89
- 'ん' ,
90
- 'ぁ' , 'ぃ' , 'ぅ' , 'ぇ' , 'ぉ' ,
91
- 'ゃ' , 'ゅ' , 'ょ' ,
92
- 'っ'
93
- } ;
89
+ 'あ' , 'い' , 'う' , 'え' , 'お' ,
90
+ 'や' , 'ゆ' , 'よ' ,
91
+ 'ん' ,
92
+ 'ぁ' , 'ぃ' , 'ぅ' , 'ぇ' , 'ぉ' ,
93
+ 'ゃ' , 'ゅ' , 'ょ' ,
94
+ 'っ'
95
+ } ;
94
96
95
97
foreach ( var child in root . Where ( ( node ) => ! exceptions . Contains ( node . Key ) ) )
96
98
{
@@ -120,24 +122,26 @@ private void BuildKatakanaTree(MyTrie trie)
120
122
var romajiTrie = new MyInMemoryTrie ( ) ;
121
123
var root = romajiTrie . Root ;
122
124
123
- root . Insert ( ( 'ア' , "a" ) , ( 'イ' , "i" ) , ( 'ウ' , "u" ) , ( 'エ' , "e" ) , ( 'オ' , "o" ) ,
124
- ( 'カ' , "ka" ) , ( 'キ' , "ki" ) , ( 'ク' , "ku" ) , ( 'ケ' , "ke" ) , ( 'コ' , "ko" ) ,
125
- ( 'サ' , "sa" ) , ( 'シ' , "shi" ) , ( 'ス' , "su" ) , ( 'セ' , "se" ) , ( 'ソ' , "so" ) ,
126
- ( 'タ' , "ta" ) , ( 'チ' , "chi" ) , ( 'ツ' , "tsu" ) , ( 'テ' , "te" ) , ( 'ト' , "to" ) ,
127
- ( 'ナ' , "na" ) , ( 'ニ' , "ni" ) , ( 'ヌ' , "nu" ) , ( 'ネ' , "ne" ) , ( 'ノ' , "no" ) ,
128
- ( 'ハ' , "ha" ) , ( 'ヒ' , "hi" ) , ( 'フ' , "hu" ) , ( 'ヘ' , "he" ) , ( 'ホ' , "ho" ) ,
129
- ( 'マ' , "ma" ) , ( 'ミ' , "mi" ) , ( 'ム' , "mu" ) , ( 'メ' , "me" ) , ( 'モ' , "mo" ) ,
130
- ( 'ヤ' , "ya" ) , ( 'ユ' , "yu" ) , ( 'ヨ' , "yo" ) ,
131
- ( 'ラ' , "ra" ) , ( 'リ' , "ri" ) , ( 'ル' , "ru" ) , ( 'レ' , "re" ) , ( 'ロ' , "ro" ) ,
132
- ( 'ワ' , "wa" ) , ( 'ヲ' , "wo" ) ,
133
- ( 'ン' , "n" ) ,
134
- ( 'ガ' , "ga" ) , ( 'ギ' , "gi" ) , ( 'グ' , "gu" ) , ( 'ゲ' , "ge" ) , ( 'ゴ' , "go" ) ,
135
- ( 'ザ' , "za" ) , ( 'ジ' , "ji" ) , ( 'ズ' , "zu" ) , ( 'ゼ' , "ze" ) , ( 'ゾ' , "zo" ) ,
136
- ( 'ダ' , "da" ) , ( 'ヂ' , "ji" ) , ( 'ヅ' , "zu" ) , ( 'デ' , "de" ) , ( 'ド' , "do" ) ,
137
- ( 'バ' , "ba" ) , ( 'ビ' , "bi" ) , ( 'ブ' , "bu" ) , ( 'ベ' , "be" ) , ( 'ボ' , "bo" ) ,
138
- ( 'パ' , "pa" ) , ( 'ピ' , "pi" ) , ( 'プ' , "pu" ) , ( 'ペ' , "pe" ) , ( 'ポ' , "po" ) ,
139
- ( 'ァ' , "a" ) , ( 'ィ' , "i" ) , ( 'ゥ' , "u" ) , ( 'ェ' , "e" ) , ( 'ォ' , "o" ) ,
140
- ( 'ャ' , "ya" ) , ( 'ュ' , "yu" ) , ( 'ョ' , "yo" ) ) ;
125
+ root . Insert (
126
+ ( 'ア' , "a" ) , ( 'イ' , "i" ) , ( 'ウ' , "u" ) , ( 'エ' , "e" ) , ( 'オ' , "o" ) ,
127
+ ( 'カ' , "ka" ) , ( 'キ' , "ki" ) , ( 'ク' , "ku" ) , ( 'ケ' , "ke" ) , ( 'コ' , "ko" ) ,
128
+ ( 'サ' , "sa" ) , ( 'シ' , "si" ) , ( 'ス' , "su" ) , ( 'セ' , "se" ) , ( 'ソ' , "so" ) ,
129
+ ( 'タ' , "ta" ) , ( 'チ' , "ti" ) , ( 'ツ' , "tu" ) , ( 'テ' , "te" ) , ( 'ト' , "to" ) ,
130
+ ( 'ナ' , "na" ) , ( 'ニ' , "ni" ) , ( 'ヌ' , "nu" ) , ( 'ネ' , "ne" ) , ( 'ノ' , "no" ) ,
131
+ ( 'ハ' , "ha" ) , ( 'ヒ' , "hi" ) , ( 'フ' , "hu" ) , ( 'ヘ' , "he" ) , ( 'ホ' , "ho" ) ,
132
+ ( 'マ' , "ma" ) , ( 'ミ' , "mi" ) , ( 'ム' , "mu" ) , ( 'メ' , "me" ) , ( 'モ' , "mo" ) ,
133
+ ( 'ヤ' , "ya" ) , ( 'ユ' , "yu" ) , ( 'ヨ' , "yo" ) ,
134
+ ( 'ラ' , "ra" ) , ( 'リ' , "ri" ) , ( 'ル' , "ru" ) , ( 'レ' , "re" ) , ( 'ロ' , "ro" ) ,
135
+ ( 'ワ' , "wa" ) , ( 'ヲ' , "wo" ) ,
136
+ ( 'ン' , "n" ) ,
137
+ ( 'ガ' , "ga" ) , ( 'ギ' , "gi" ) , ( 'グ' , "gu" ) , ( 'ゲ' , "ge" ) , ( 'ゴ' , "go" ) ,
138
+ ( 'ザ' , "za" ) , ( 'ジ' , "ji" ) , ( 'ズ' , "zu" ) , ( 'ゼ' , "ze" ) , ( 'ゾ' , "zo" ) ,
139
+ ( 'ダ' , "da" ) , ( 'ヂ' , "ji" ) , ( 'ヅ' , "zu" ) , ( 'デ' , "de" ) , ( 'ド' , "do" ) ,
140
+ ( 'バ' , "ba" ) , ( 'ビ' , "bi" ) , ( 'ブ' , "bu" ) , ( 'ベ' , "be" ) , ( 'ボ' , "bo" ) ,
141
+ ( 'パ' , "pa" ) , ( 'ピ' , "pi" ) , ( 'プ' , "pu" ) , ( 'ペ' , "pe" ) , ( 'ポ' , "po" ) ,
142
+ ( 'ァ' , "a" ) , ( 'ィ' , "i" ) , ( 'ゥ' , "u" ) , ( 'ェ' , "e" ) , ( 'ォ' , "o" ) ,
143
+ ( 'ャ' , "ya" ) , ( 'ュ' , "yu" ) , ( 'ョ' , "yo" )
144
+ ) ;
141
145
142
146
{
143
147
var whitelist = new [ ] { 'キ' , 'ニ' , 'ヒ' , 'ミ' , 'リ' , 'ギ' , 'ビ' , 'ピ' } ;
@@ -193,13 +197,13 @@ private void BuildKatakanaTree(MyTrie trie)
193
197
var sokuon = root . Insert ( ( 'ッ' , "" ) ) ;
194
198
var exceptions = new [ ]
195
199
{
196
- 'ア' , 'イ' , 'ウ' , 'エ' , 'オ' ,
197
- 'ヤ' , 'ユ' , 'ヨ' ,
198
- 'ン' ,
199
- 'ァ' , 'ィ' , 'ゥ' , 'ェ' , 'ォ' ,
200
- 'ャ' , 'ュ' , 'ョ' ,
201
- 'ッ'
202
- } ;
200
+ 'ア' , 'イ' , 'ウ' , 'エ' , 'オ' ,
201
+ 'ヤ' , 'ユ' , 'ヨ' ,
202
+ 'ン' ,
203
+ 'ァ' , 'ィ' , 'ゥ' , 'ェ' , 'ォ' ,
204
+ 'ャ' , 'ュ' , 'ョ' ,
205
+ 'ッ'
206
+ } ;
203
207
204
208
foreach ( var child in root . Where ( ( node ) => ! exceptions . Contains ( node . Key ) ) )
205
209
{
0 commit comments