diff options
-rw-r--r-- | ext/bg/lang/deinflect.json | 4163 | ||||
-rw-r--r-- | test/test-deinflector.js | 826 |
2 files changed, 1322 insertions, 3667 deletions
diff --git a/ext/bg/lang/deinflect.json b/ext/bg/lang/deinflect.json index a0b6baa1..914c9947 100644 --- a/ext/bg/lang/deinflect.json +++ b/ext/bg/lang/deinflect.json @@ -1,3731 +1,560 @@ { "-ba": [ - { - "kanaIn": "えば", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "けば", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "げば", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "せば", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "てば", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ねば", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "べば", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "めば", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "れば", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "v5", - "vk", - "vs" - ] - }, - { - "kanaIn": "ければ", - "kanaOut": "い", - "rulesIn": [], - "rulesOut": [ - "adj-i" - ] - } + {"kanaIn": "ければ", "kanaOut": "い", "rulesIn": [], "rulesOut": ["adj-i"]}, + {"kanaIn": "えば", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "けば", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "げば", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "せば", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "てば", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ねば", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "べば", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "めば", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "れば", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1", "v5", "vk", "vs"]} ], "-chau": [ - { - "kanaIn": "ちゃう", - "kanaOut": "る", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いじゃう", - "kanaOut": "ぐ", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "いちゃう", - "kanaOut": "く", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きちゃう", - "kanaOut": "くる", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "しちゃう", - "kanaOut": "す", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しちゃう", - "kanaOut": "する", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "っちゃう", - "kanaOut": "う", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "っちゃう", - "kanaOut": "く", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "っちゃう", - "kanaOut": "つ", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "っちゃう", - "kanaOut": "る", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んじゃう", - "kanaOut": "ぬ", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んじゃう", - "kanaOut": "ぶ", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んじゃう", - "kanaOut": "む", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "ちゃう", "kanaOut": "る", "rulesIn": ["v5"], "rulesOut": ["v1"]}, + {"kanaIn": "いじゃう", "kanaOut": "ぐ", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "いちゃう", "kanaOut": "く", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "しちゃう", "kanaOut": "す", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "っちゃう", "kanaOut": "う", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "っちゃう", "kanaOut": "く", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "っちゃう", "kanaOut": "つ", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "っちゃう", "kanaOut": "る", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "んじゃう", "kanaOut": "ぬ", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "んじゃう", "kanaOut": "ぶ", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "んじゃう", "kanaOut": "む", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "しちゃう", "kanaOut": "する", "rulesIn": ["v5"], "rulesOut": ["vs"]}, + {"kanaIn": "為ちゃう", "kanaOut": "為る", "rulesIn": ["v5"], "rulesOut": ["vs"]}, + {"kanaIn": "きちゃう", "kanaOut": "くる", "rulesIn": ["v5"], "rulesOut": ["vk"]}, + {"kanaIn": "来ちゃう", "kanaOut": "来る", "rulesIn": ["v5"], "rulesOut": ["vk"]}, + {"kanaIn": "來ちゃう", "kanaOut": "來る", "rulesIn": ["v5"], "rulesOut": ["vk"]} ], "-nasai": [ - { - "kanaIn": "なさい", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いなさい", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きなさい", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きなさい", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎなさい", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しなさい", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しなさい", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "ちなさい", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "になさい", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "びなさい", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "みなさい", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "りなさい", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "なさい", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "いなさい", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "きなさい", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ぎなさい", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しなさい", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ちなさい", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "になさい", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "びなさい", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "みなさい", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "りなさい", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しなさい", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為なさい", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "きなさい", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来なさい", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來なさい", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "-sou": [ - { - "kanaIn": "そう", - "kanaOut": "い", - "rulesIn": [], - "rulesOut": [ - "adj-i" - ] - }, - { - "kanaIn": "そう", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いそう", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きそう", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きそう", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎそう", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しそう", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しそう", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "ちそう", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "にそう", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "びそう", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "みそう", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "りそう", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "そう", "kanaOut": "い", "rulesIn": [], "rulesOut": ["adj-i"]}, + {"kanaIn": "そう", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "いそう", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "きそう", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ぎそう", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しそう", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ちそう", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "にそう", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "びそう", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "みそう", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "りそう", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しそう", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為そう", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "きそう", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来そう", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來そう", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "-sugiru": [ - { - "kanaIn": "すぎる", - "kanaOut": "い", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "adj-i" - ] - }, - { - "kanaIn": "すぎる", - "kanaOut": "る", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いすぎる", - "kanaOut": "う", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きすぎる", - "kanaOut": "く", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きすぎる", - "kanaOut": "くる", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎすぎる", - "kanaOut": "ぐ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しすぎる", - "kanaOut": "す", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しすぎる", - "kanaOut": "する", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "ちすぎる", - "kanaOut": "つ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "にすぎる", - "kanaOut": "ぬ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "びすぎる", - "kanaOut": "ぶ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "みすぎる", - "kanaOut": "む", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "りすぎる", - "kanaOut": "る", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "すぎる", "kanaOut": "い", "rulesIn": ["v1"], "rulesOut": ["adj-i"]}, + {"kanaIn": "すぎる", "kanaOut": "る", "rulesIn": ["v1"], "rulesOut": ["v1"]}, + {"kanaIn": "いすぎる", "kanaOut": "う", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "きすぎる", "kanaOut": "く", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "ぎすぎる", "kanaOut": "ぐ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "しすぎる", "kanaOut": "す", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "ちすぎる", "kanaOut": "つ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "にすぎる", "kanaOut": "ぬ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "びすぎる", "kanaOut": "ぶ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "みすぎる", "kanaOut": "む", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "りすぎる", "kanaOut": "る", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "しすぎる", "kanaOut": "する", "rulesIn": ["v1"], "rulesOut": ["vs"]}, + {"kanaIn": "為すぎる", "kanaOut": "為る", "rulesIn": ["v1"], "rulesOut": ["vs"]}, + {"kanaIn": "きすぎる", "kanaOut": "くる", "rulesIn": ["v1"], "rulesOut": ["vk"]}, + {"kanaIn": "来すぎる", "kanaOut": "来る", "rulesIn": ["v1"], "rulesOut": ["vk"]}, + {"kanaIn": "來すぎる", "kanaOut": "來る", "rulesIn": ["v1"], "rulesOut": ["vk"]} ], "-tai": [ - { - "kanaIn": "たい", - "kanaOut": "る", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いたい", - "kanaOut": "う", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きたい", - "kanaOut": "く", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きたい", - "kanaOut": "くる", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎたい", - "kanaOut": "ぐ", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "したい", - "kanaOut": "す", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "したい", - "kanaOut": "する", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "ちたい", - "kanaOut": "つ", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "にたい", - "kanaOut": "ぬ", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "びたい", - "kanaOut": "ぶ", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "みたい", - "kanaOut": "む", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "りたい", - "kanaOut": "る", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "たい", "kanaOut": "る", "rulesIn": ["adj-i"], "rulesOut": ["v1"]}, + {"kanaIn": "いたい", "kanaOut": "う", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "きたい", "kanaOut": "く", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "ぎたい", "kanaOut": "ぐ", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "したい", "kanaOut": "す", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "ちたい", "kanaOut": "つ", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "にたい", "kanaOut": "ぬ", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "びたい", "kanaOut": "ぶ", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "みたい", "kanaOut": "む", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "りたい", "kanaOut": "る", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "したい", "kanaOut": "する", "rulesIn": ["adj-i"], "rulesOut": ["vs"]}, + {"kanaIn": "為たい", "kanaOut": "為る", "rulesIn": ["adj-i"], "rulesOut": ["vs"]}, + {"kanaIn": "きたい", "kanaOut": "くる", "rulesIn": ["adj-i"], "rulesOut": ["vk"]}, + {"kanaIn": "来たい", "kanaOut": "来る", "rulesIn": ["adj-i"], "rulesOut": ["vk"]}, + {"kanaIn": "來たい", "kanaOut": "來る", "rulesIn": ["adj-i"], "rulesOut": ["vk"]} ], "-tara": [ - { - "kanaIn": "たら", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いたら", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "いだら", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きたら", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "したら", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "したら", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "ったら", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ったら", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ったら", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んだら", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んだら", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んだら", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "かったら", - "kanaOut": "い", - "rulesIn": [], - "rulesOut": [ - "adj-i" - ] - }, - { - "kanaIn": "のたもうたら", - "kanaOut": "のたまう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "いったら", - "kanaOut": "いく", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "おうたら", - "kanaOut": "おう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "こうたら", - "kanaOut": "こう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "そうたら", - "kanaOut": "そう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "とうたら", - "kanaOut": "とう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "行ったら", - "kanaOut": "行く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "逝ったら", - "kanaOut": "逝く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "往ったら", - "kanaOut": "往く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "請うたら", - "kanaOut": "請う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "乞うたら", - "kanaOut": "乞う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "恋うたら", - "kanaOut": "恋う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "問うたら", - "kanaOut": "問う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "負うたら", - "kanaOut": "負う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "沿うたら", - "kanaOut": "沿う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "添うたら", - "kanaOut": "添う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "副うたら", - "kanaOut": "副う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "厭うたら", - "kanaOut": "厭う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "かったら", "kanaOut": "い", "rulesIn": [], "rulesOut": ["adj-i"]}, + {"kanaIn": "たら", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "いたら", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "いだら", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "したら", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ったら", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ったら", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ったら", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "んだら", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "んだら", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "んだら", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "したら", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為たら", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "きたら", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来たら", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來たら", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "いったら", "kanaOut": "いく", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "おうたら", "kanaOut": "おう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "こうたら", "kanaOut": "こう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "そうたら", "kanaOut": "そう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "とうたら", "kanaOut": "とう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "行ったら", "kanaOut": "行く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "逝ったら", "kanaOut": "逝く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "往ったら", "kanaOut": "往く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "請うたら", "kanaOut": "請う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "乞うたら", "kanaOut": "乞う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "恋うたら", "kanaOut": "恋う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "問うたら", "kanaOut": "問う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "負うたら", "kanaOut": "負う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "沿うたら", "kanaOut": "沿う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "添うたら", "kanaOut": "添う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "副うたら", "kanaOut": "副う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "厭うたら", "kanaOut": "厭う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "のたもうたら", "kanaOut": "のたまう", "rulesIn": [], "rulesOut": ["v5"]} ], "-tari": [ - { - "kanaIn": "たり", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いたり", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "いだり", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きたり", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "したり", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "したり", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "ったり", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ったり", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ったり", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んだり", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んだり", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んだり", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "かったり", - "kanaOut": "い", - "rulesIn": [], - "rulesOut": [ - "adj-i" - ] - }, - { - "kanaIn": "のたもうたり", - "kanaOut": "のたまう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "いったり", - "kanaOut": "いく", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "おうたり", - "kanaOut": "おう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "こうたり", - "kanaOut": "こう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "そうたり", - "kanaOut": "そう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "とうたり", - "kanaOut": "とう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "行ったり", - "kanaOut": "行く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "逝ったり", - "kanaOut": "逝く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "往ったり", - "kanaOut": "往く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "請うたり", - "kanaOut": "請う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "乞うたり", - "kanaOut": "乞う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "恋うたり", - "kanaOut": "恋う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "問うたり", - "kanaOut": "問う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "負うたり", - "kanaOut": "負う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "沿うたり", - "kanaOut": "沿う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "添うたり", - "kanaOut": "添う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "副うたり", - "kanaOut": "副う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "厭うたり", - "kanaOut": "厭う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "かったり", "kanaOut": "い", "rulesIn": [], "rulesOut": ["adj-i"]}, + {"kanaIn": "たり", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "いたり", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "いだり", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "したり", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ったり", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ったり", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ったり", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "んだり", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "んだり", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "んだり", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "したり", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為たり", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "きたり", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来たり", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來たり", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "いったり", "kanaOut": "いく", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "おうたり", "kanaOut": "おう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "こうたり", "kanaOut": "こう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "そうたり", "kanaOut": "そう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "とうたり", "kanaOut": "とう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "行ったり", "kanaOut": "行く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "逝ったり", "kanaOut": "逝く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "往ったり", "kanaOut": "往く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "請うたり", "kanaOut": "請う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "乞うたり", "kanaOut": "乞う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "恋うたり", "kanaOut": "恋う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "問うたり", "kanaOut": "問う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "負うたり", "kanaOut": "負う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "沿うたり", "kanaOut": "沿う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "添うたり", "kanaOut": "添う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "副うたり", "kanaOut": "副う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "厭うたり", "kanaOut": "厭う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "のたもうたり", "kanaOut": "のたまう", "rulesIn": [], "rulesOut": ["v5"]} ], "-te": [ - { - "kanaIn": "て", - "kanaOut": "る", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いて", - "kanaOut": "く", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "いで", - "kanaOut": "ぐ", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きて", - "kanaOut": "くる", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "くて", - "kanaOut": "い", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "adj-i" - ] - }, - { - "kanaIn": "して", - "kanaOut": "す", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "して", - "kanaOut": "する", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "って", - "kanaOut": "う", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "って", - "kanaOut": "つ", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "って", - "kanaOut": "る", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んで", - "kanaOut": "ぬ", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んで", - "kanaOut": "ぶ", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んで", - "kanaOut": "む", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "のたもうて", - "kanaOut": "のたまう", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "いって", - "kanaOut": "いく", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "おうて", - "kanaOut": "おう", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "こうて", - "kanaOut": "こう", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "そうて", - "kanaOut": "そう", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "とうて", - "kanaOut": "とう", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "行って", - "kanaOut": "行く", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "逝って", - "kanaOut": "逝く", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "往って", - "kanaOut": "往く", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "請うて", - "kanaOut": "請う", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "乞うて", - "kanaOut": "乞う", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "恋うて", - "kanaOut": "恋う", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "問うて", - "kanaOut": "問う", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "負うて", - "kanaOut": "負う", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "沿うて", - "kanaOut": "沿う", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "添うて", - "kanaOut": "添う", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "副うて", - "kanaOut": "副う", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "厭うて", - "kanaOut": "厭う", - "rulesIn": [ - "iru" - ], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "くて", "kanaOut": "い", "rulesIn": ["iru"], "rulesOut": ["adj-i"]}, + {"kanaIn": "て", "kanaOut": "る", "rulesIn": ["iru"], "rulesOut": ["v1"]}, + {"kanaIn": "いて", "kanaOut": "く", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "いで", "kanaOut": "ぐ", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "して", "kanaOut": "す", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "って", "kanaOut": "う", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "って", "kanaOut": "つ", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "って", "kanaOut": "る", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "んで", "kanaOut": "ぬ", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "んで", "kanaOut": "ぶ", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "んで", "kanaOut": "む", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "して", "kanaOut": "する", "rulesIn": ["iru"], "rulesOut": ["vs"]}, + {"kanaIn": "為て", "kanaOut": "為る", "rulesIn": ["iru"], "rulesOut": ["vs"]}, + {"kanaIn": "きて", "kanaOut": "くる", "rulesIn": ["iru"], "rulesOut": ["vk"]}, + {"kanaIn": "来て", "kanaOut": "来る", "rulesIn": ["iru"], "rulesOut": ["vk"]}, + {"kanaIn": "來て", "kanaOut": "來る", "rulesIn": ["iru"], "rulesOut": ["vk"]}, + {"kanaIn": "いって", "kanaOut": "いく", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "おうて", "kanaOut": "おう", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "こうて", "kanaOut": "こう", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "そうて", "kanaOut": "そう", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "とうて", "kanaOut": "とう", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "行って", "kanaOut": "行く", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "逝って", "kanaOut": "逝く", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "往って", "kanaOut": "往く", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "請うて", "kanaOut": "請う", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "乞うて", "kanaOut": "乞う", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "恋うて", "kanaOut": "恋う", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "問うて", "kanaOut": "問う", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "負うて", "kanaOut": "負う", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "沿うて", "kanaOut": "沿う", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "添うて", "kanaOut": "添う", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "副うて", "kanaOut": "副う", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "厭うて", "kanaOut": "厭う", "rulesIn": ["iru"], "rulesOut": ["v5"]}, + {"kanaIn": "のたもうて", "kanaOut": "のたまう", "rulesIn": ["iru"], "rulesOut": ["v5"]} ], "-zu": [ - { - "kanaIn": "ず", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "かず", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "がず", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "こず", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "さず", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "せず", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "たず", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "なず", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ばず", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "まず", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "らず", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "わず", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "ず", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "かず", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "がず", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "さず", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "たず", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "なず", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ばず", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "まず", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "らず", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "わず", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "せず", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為ず", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "こず", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来ず", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來ず", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "-nu": [ - { - "kanaIn": "ぬ", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "かぬ", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "がぬ", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "こぬ", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "さぬ", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "せぬ", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "たぬ", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "なぬ", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ばぬ", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "まぬ", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "らぬ", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "わぬ", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "ぬ", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "かぬ", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "がぬ", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "さぬ", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "たぬ", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "なぬ", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ばぬ", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "まぬ", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "らぬ", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "わぬ", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "せぬ", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為ぬ", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "こぬ", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来ぬ", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來ぬ", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "adv": [ - { - "kanaIn": "く", - "kanaOut": "い", - "rulesIn": [], - "rulesOut": [ - "adj-i" - ] - } + {"kanaIn": "く", "kanaOut": "い", "rulesIn": [], "rulesOut": ["adj-i"]} ], "causative": [ - { - "kanaIn": "かせる", - "kanaOut": "く", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "がせる", - "kanaOut": "ぐ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "させる", - "kanaOut": "する", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "させる", - "kanaOut": "る", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "させる", - "kanaOut": "す", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "たせる", - "kanaOut": "つ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "なせる", - "kanaOut": "ぬ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ばせる", - "kanaOut": "ぶ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ませる", - "kanaOut": "む", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "らせる", - "kanaOut": "る", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "わせる", - "kanaOut": "う", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "こさせる", - "kanaOut": "くる", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "vk" - ] - } + {"kanaIn": "させる", "kanaOut": "る", "rulesIn": ["v1"], "rulesOut": ["v1"]}, + {"kanaIn": "かせる", "kanaOut": "く", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "がせる", "kanaOut": "ぐ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "させる", "kanaOut": "す", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "たせる", "kanaOut": "つ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "なせる", "kanaOut": "ぬ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "ばせる", "kanaOut": "ぶ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "ませる", "kanaOut": "む", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "らせる", "kanaOut": "る", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "わせる", "kanaOut": "う", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "させる", "kanaOut": "する", "rulesIn": ["v1"], "rulesOut": ["vs"]}, + {"kanaIn": "為せる", "kanaOut": "為る", "rulesIn": ["v1"], "rulesOut": ["vs"]}, + {"kanaIn": "こさせる", "kanaOut": "くる", "rulesIn": ["v1"], "rulesOut": ["vk"]}, + {"kanaIn": "来させる", "kanaOut": "来る", "rulesIn": ["v1"], "rulesOut": ["vk"]}, + {"kanaIn": "來させる", "kanaOut": "來る", "rulesIn": ["v1"], "rulesOut": ["vk"]} ], "imperative": [ - { - "kanaIn": "い", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "え", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "け", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "げ", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "せ", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "て", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ね", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "べ", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "め", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "よ", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "れ", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ろ", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "こい", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "しろ", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "せよ", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - } + {"kanaIn": "ろ", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "よ", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "え", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "け", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "げ", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "せ", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "て", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ね", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "べ", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "め", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "れ", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しろ", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "せよ", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為ろ", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為よ", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "こい", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来い", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來い", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "imperative negative": [ - { - "kanaIn": "な", - "kanaOut": "", - "rulesIn": [], - "rulesOut": [ - "v1", - "v5", - "vk", - "vs" - ] - } + {"kanaIn": "な", "kanaOut": "", "rulesIn": [], "rulesOut": ["v1", "v5", "vk", "vs"]} ], "masu stem": [ - { - "kanaIn": "い", - "kanaOut": "いる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "い", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "え", - "kanaOut": "える", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "き", - "kanaOut": "きる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "き", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "き", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎ", - "kanaOut": "ぎる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "ぎ", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "け", - "kanaOut": "ける", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "げ", - "kanaOut": "げる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "し", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "じ", - "kanaOut": "じる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "せ", - "kanaOut": "せる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "ぜ", - "kanaOut": "ぜる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "ち", - "kanaOut": "ちる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "ち", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "て", - "kanaOut": "てる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "で", - "kanaOut": "でる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "に", - "kanaOut": "にる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "に", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ね", - "kanaOut": "ねる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "ひ", - "kanaOut": "ひる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "び", - "kanaOut": "びる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "び", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "へ", - "kanaOut": "へる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "べ", - "kanaOut": "べる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "み", - "kanaOut": "みる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "み", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "め", - "kanaOut": "める", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "り", - "kanaOut": "りる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - }, - { - "kanaIn": "り", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "れ", - "kanaOut": "れる", - "rulesIn": [], - "rulesOut": [ - "v1" - ] - } + {"kanaIn": "い", "kanaOut": "いる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "え", "kanaOut": "える", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "き", "kanaOut": "きる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "ぎ", "kanaOut": "ぎる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "け", "kanaOut": "ける", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "げ", "kanaOut": "げる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "じ", "kanaOut": "じる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "せ", "kanaOut": "せる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "ぜ", "kanaOut": "ぜる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "ち", "kanaOut": "ちる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "て", "kanaOut": "てる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "で", "kanaOut": "でる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "に", "kanaOut": "にる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "ね", "kanaOut": "ねる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "ひ", "kanaOut": "ひる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "び", "kanaOut": "びる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "へ", "kanaOut": "へる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "べ", "kanaOut": "べる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "み", "kanaOut": "みる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "め", "kanaOut": "める", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "り", "kanaOut": "りる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "れ", "kanaOut": "れる", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "い", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "き", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ぎ", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "し", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ち", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "に", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "び", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "み", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "り", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "き", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "negative": [ - { - "kanaIn": "ない", - "kanaOut": "る", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "かない", - "kanaOut": "く", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "がない", - "kanaOut": "ぐ", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "くない", - "kanaOut": "い", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "adj-i" - ] - }, - { - "kanaIn": "こない", - "kanaOut": "くる", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "さない", - "kanaOut": "す", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しない", - "kanaOut": "する", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "たない", - "kanaOut": "つ", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "なない", - "kanaOut": "ぬ", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ばない", - "kanaOut": "ぶ", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "まない", - "kanaOut": "む", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "らない", - "kanaOut": "る", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "わない", - "kanaOut": "う", - "rulesIn": [ - "adj-i" - ], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "くない", "kanaOut": "い", "rulesIn": ["adj-i"], "rulesOut": ["adj-i"]}, + {"kanaIn": "ない", "kanaOut": "る", "rulesIn": ["adj-i"], "rulesOut": ["v1"]}, + {"kanaIn": "かない", "kanaOut": "く", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "がない", "kanaOut": "ぐ", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "さない", "kanaOut": "す", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "たない", "kanaOut": "つ", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "なない", "kanaOut": "ぬ", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "ばない", "kanaOut": "ぶ", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "まない", "kanaOut": "む", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "らない", "kanaOut": "る", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "わない", "kanaOut": "う", "rulesIn": ["adj-i"], "rulesOut": ["v5"]}, + {"kanaIn": "しない", "kanaOut": "する", "rulesIn": ["adj-i"], "rulesOut": ["vs"]}, + {"kanaIn": "為ない", "kanaOut": "為る", "rulesIn": ["adj-i"], "rulesOut": ["vs"]}, + {"kanaIn": "こない", "kanaOut": "くる", "rulesIn": ["adj-i"], "rulesOut": ["vk"]}, + {"kanaIn": "来ない", "kanaOut": "来る", "rulesIn": ["adj-i"], "rulesOut": ["vk"]}, + {"kanaIn": "來ない", "kanaOut": "來る", "rulesIn": ["adj-i"], "rulesOut": ["vk"]} ], "noun": [ - { - "kanaIn": "さ", - "kanaOut": "い", - "rulesIn": [], - "rulesOut": [ - "adj-i" - ] - } + {"kanaIn": "さ", "kanaOut": "い", "rulesIn": [], "rulesOut": ["adj-i"]} ], "passive": [ - { - "kanaIn": "かれる", - "kanaOut": "く", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "がれる", - "kanaOut": "ぐ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "される", - "kanaOut": "する", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "される", - "kanaOut": "す", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "たれる", - "kanaOut": "つ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "なれる", - "kanaOut": "ぬ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ばれる", - "kanaOut": "ぶ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "まれる", - "kanaOut": "む", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "われる", - "kanaOut": "う", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "られる", - "kanaOut": "る", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "かれる", "kanaOut": "く", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "がれる", "kanaOut": "ぐ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "される", "kanaOut": "す", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "たれる", "kanaOut": "つ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "なれる", "kanaOut": "ぬ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "ばれる", "kanaOut": "ぶ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "まれる", "kanaOut": "む", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "われる", "kanaOut": "う", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "られる", "kanaOut": "る", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "される", "kanaOut": "する", "rulesIn": ["v1"], "rulesOut": ["vs"]}, + {"kanaIn": "為れる", "kanaOut": "為る", "rulesIn": ["v1"], "rulesOut": ["vs"]}, + {"kanaIn": "こられる", "kanaOut": "くる", "rulesIn": ["v1"], "rulesOut": ["vk"]}, + {"kanaIn": "来られる", "kanaOut": "来る", "rulesIn": ["v1"], "rulesOut": ["vk"]}, + {"kanaIn": "來られる", "kanaOut": "來る", "rulesIn": ["v1"], "rulesOut": ["vk"]} ], "past": [ - { - "kanaIn": "た", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いた", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "いだ", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きた", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "した", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "した", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "った", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "った", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "った", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んだ", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んだ", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んだ", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "かった", - "kanaOut": "い", - "rulesIn": [], - "rulesOut": [ - "adj-i" - ] - }, - { - "kanaIn": "のたもうた", - "kanaOut": "のたまう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "いった", - "kanaOut": "いく", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "おうた", - "kanaOut": "おう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "こうた", - "kanaOut": "こう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "そうた", - "kanaOut": "そう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "とうた", - "kanaOut": "とう", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "行った", - "kanaOut": "行く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "逝った", - "kanaOut": "逝く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "往った", - "kanaOut": "往く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "請うた", - "kanaOut": "請う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "乞うた", - "kanaOut": "乞う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "恋うた", - "kanaOut": "恋う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "問うた", - "kanaOut": "問う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "負うた", - "kanaOut": "負う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "沿うた", - "kanaOut": "沿う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "添うた", - "kanaOut": "添う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "副うた", - "kanaOut": "副う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "厭うた", - "kanaOut": "厭う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "かった", "kanaOut": "い", "rulesIn": [], "rulesOut": ["adj-i"]}, + {"kanaIn": "た", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "いた", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "いだ", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "した", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "った", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "った", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "った", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "んだ", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "んだ", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "んだ", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "した", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為た", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "きた", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来た", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來た", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "いった", "kanaOut": "いく", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "おうた", "kanaOut": "おう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "こうた", "kanaOut": "こう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "そうた", "kanaOut": "そう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "とうた", "kanaOut": "とう", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "行った", "kanaOut": "行く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "逝った", "kanaOut": "逝く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "往った", "kanaOut": "往く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "請うた", "kanaOut": "請う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "乞うた", "kanaOut": "乞う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "恋うた", "kanaOut": "恋う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "問うた", "kanaOut": "問う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "負うた", "kanaOut": "負う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "沿うた", "kanaOut": "沿う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "添うた", "kanaOut": "添う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "副うた", "kanaOut": "副う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "厭うた", "kanaOut": "厭う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "のたもうた", "kanaOut": "のたまう", "rulesIn": [], "rulesOut": ["v5"]} ], "polite": [ - { - "kanaIn": "ます", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "います", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きます", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きます", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎます", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "します", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "します", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "ちます", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "にます", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "びます", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "みます", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ります", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "ます", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "います", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "きます", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ぎます", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "します", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ちます", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "にます", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "びます", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "みます", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ります", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "します", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為ます", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "きます", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来ます", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來ます", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "polite negative": [ - { - "kanaIn": "ません", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いません", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きません", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きません", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎません", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しません", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しません", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "ちません", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "にません", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "びません", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "みません", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "りません", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "くありません", - "kanaOut": "い", - "rulesIn": [], - "rulesOut": [ - "adj-i" - ] - } + {"kanaIn": "くありません", "kanaOut": "い", "rulesIn": [], "rulesOut": ["adj-i"]}, + {"kanaIn": "ません", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "いません", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "きません", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ぎません", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しません", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ちません", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "にません", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "びません", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "みません", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "りません", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しません", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為ません", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "きません", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来ません", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來ません", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "polite past": [ - { - "kanaIn": "ました", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いました", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きました", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きました", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎました", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しました", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しました", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "ちました", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "にました", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "びました", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "みました", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "りました", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "ました", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "いました", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "きました", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ぎました", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しました", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ちました", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "にました", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "びました", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "みました", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "りました", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しました", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為ました", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "きました", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来ました", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來ました", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "polite past negative": [ - { - "kanaIn": "ませんでした", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いませんでした", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きませんでした", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きませんでした", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎませんでした", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しませんでした", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しませんでした", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "ちませんでした", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "にませんでした", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "びませんでした", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "みませんでした", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "りませんでした", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "くありませんでした", - "kanaOut": "い", - "rulesIn": [], - "rulesOut": [ - "adj-i" - ] - } + {"kanaIn": "くありませんでした", "kanaOut": "い", "rulesIn": [], "rulesOut": ["adj-i"]}, + {"kanaIn": "ませんでした", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "いませんでした", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "きませんでした", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ぎませんでした", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しませんでした", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ちませんでした", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "にませんでした", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "びませんでした", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "みませんでした", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "りませんでした", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しませんでした", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為ませんでした", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "きませんでした", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来ませんでした", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來ませんでした", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "polite volitional": [ - { - "kanaIn": "ましょう", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "いましょう", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きましょう", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きましょう", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "ぎましょう", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しましょう", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しましょう", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "ちましょう", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "にましょう", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "びましょう", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "みましょう", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "りましょう", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "ましょう", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "いましょう", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "きましょう", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ぎましょう", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しましょう", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ちましょう", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "にましょう", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "びましょう", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "みましょう", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "りましょう", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しましょう", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為ましょう", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "きましょう", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来ましょう", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來ましょう", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "potential": [ - { - "kanaIn": "える", - "kanaOut": "う", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ける", - "kanaOut": "く", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "げる", - "kanaOut": "ぐ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "せる", - "kanaOut": "す", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "てる", - "kanaOut": "つ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ねる", - "kanaOut": "ぬ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "べる", - "kanaOut": "ぶ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "める", - "kanaOut": "む", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "れる", - "kanaOut": "る", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v1", - "v5", - "vk" - ] - }, - { - "kanaIn": "これる", - "kanaOut": "くる", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "vk" - ] - } + {"kanaIn": "れる", "kanaOut": "る", "rulesIn": ["v1"], "rulesOut": ["v1", "v5"]}, + {"kanaIn": "える", "kanaOut": "う", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "ける", "kanaOut": "く", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "げる", "kanaOut": "ぐ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "せる", "kanaOut": "す", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "てる", "kanaOut": "つ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "ねる", "kanaOut": "ぬ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "べる", "kanaOut": "ぶ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "める", "kanaOut": "む", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "これる", "kanaOut": "くる", "rulesIn": ["v1"], "rulesOut": ["vk"]}, + {"kanaIn": "来れる", "kanaOut": "来る", "rulesIn": ["v1"], "rulesOut": ["vk"]}, + {"kanaIn": "來れる", "kanaOut": "來る", "rulesIn": ["v1"], "rulesOut": ["vk"]} ], "potential or passive": [ - { - "kanaIn": "られる", - "kanaOut": "る", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "こられる", - "kanaOut": "くる", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "vk" - ] - } + {"kanaIn": "られる", "kanaOut": "る", "rulesIn": ["v1"], "rulesOut": ["v1"]}, + {"kanaIn": "こられる", "kanaOut": "くる", "rulesIn": ["v1"], "rulesOut": ["vk"]}, + {"kanaIn": "来られる", "kanaOut": "来る", "rulesIn": ["v1"], "rulesOut": ["vk"]}, + {"kanaIn": "來られる", "kanaOut": "來る", "rulesIn": ["v1"], "rulesOut": ["vk"]} ], "volitional": [ - { - "kanaIn": "おう", - "kanaOut": "う", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "こう", - "kanaOut": "く", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ごう", - "kanaOut": "ぐ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "そう", - "kanaOut": "す", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "とう", - "kanaOut": "つ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "のう", - "kanaOut": "ぬ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ぼう", - "kanaOut": "ぶ", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "もう", - "kanaOut": "む", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "よう", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v1", - "vk" - ] - }, - { - "kanaIn": "ろう", - "kanaOut": "る", - "rulesIn": [], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "こよう", - "kanaOut": "くる", - "rulesIn": [], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "しよう", - "kanaOut": "する", - "rulesIn": [], - "rulesOut": [ - "vs" - ] - } + {"kanaIn": "よう", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]}, + {"kanaIn": "おう", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "こう", "kanaOut": "く", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ごう", "kanaOut": "ぐ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "そう", "kanaOut": "す", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "とう", "kanaOut": "つ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "のう", "kanaOut": "ぬ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ぼう", "kanaOut": "ぶ", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "もう", "kanaOut": "む", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "ろう", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v5"]}, + {"kanaIn": "しよう", "kanaOut": "する", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "為よう", "kanaOut": "為る", "rulesIn": [], "rulesOut": ["vs"]}, + {"kanaIn": "こよう", "kanaOut": "くる", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "来よう", "kanaOut": "来る", "rulesIn": [], "rulesOut": ["vk"]}, + {"kanaIn": "來よう", "kanaOut": "來る", "rulesIn": [], "rulesOut": ["vk"]} ], "causative passive": [ - { - "kanaIn": "かされる", - "kanaOut": "く", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "がされる", - "kanaOut": "ぐ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "たされる", - "kanaOut": "つ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "なされる", - "kanaOut": "ぬ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "ばされる", - "kanaOut": "ぶ", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "まされる", - "kanaOut": "む", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "らされる", - "kanaOut": "る", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "わされる", - "kanaOut": "う", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "v5" - ] - } + {"kanaIn": "かされる", "kanaOut": "く", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "がされる", "kanaOut": "ぐ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "たされる", "kanaOut": "つ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "なされる", "kanaOut": "ぬ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "ばされる", "kanaOut": "ぶ", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "まされる", "kanaOut": "む", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "らされる", "kanaOut": "る", "rulesIn": ["v1"], "rulesOut": ["v5"]}, + {"kanaIn": "わされる", "kanaOut": "う", "rulesIn": ["v1"], "rulesOut": ["v5"]} ], "-toku": [ - { - "kanaIn": "いとく", - "kanaOut": "く", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "いどく", - "kanaOut": "ぐ", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "きとく", - "kanaOut": "くる", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "vk" - ] - }, - { - "kanaIn": "しとく", - "kanaOut": "す", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "しとく", - "kanaOut": "する", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "vs" - ] - }, - { - "kanaIn": "っとく", - "kanaOut": "う", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "っとく", - "kanaOut": "つ", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "っとく", - "kanaOut": "る", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んどく", - "kanaOut": "ぬ", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んどく", - "kanaOut": "ぶ", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "んどく", - "kanaOut": "む", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v5" - ] - }, - { - "kanaIn": "とく", - "kanaOut": "る", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "v1", - "vk" - ] - } + {"kanaIn": "とく", "kanaOut": "る", "rulesIn": ["v5"], "rulesOut": ["v1"]}, + {"kanaIn": "いとく", "kanaOut": "く", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "いどく", "kanaOut": "ぐ", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "しとく", "kanaOut": "す", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "っとく", "kanaOut": "う", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "っとく", "kanaOut": "つ", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "っとく", "kanaOut": "る", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "んどく", "kanaOut": "ぬ", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "んどく", "kanaOut": "ぶ", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "んどく", "kanaOut": "む", "rulesIn": ["v5"], "rulesOut": ["v5"]}, + {"kanaIn": "しとく", "kanaOut": "する", "rulesIn": ["v5"], "rulesOut": ["vs"]}, + {"kanaIn": "為とく", "kanaOut": "為る", "rulesIn": ["v5"], "rulesOut": ["vs"]}, + {"kanaIn": "きとく", "kanaOut": "くる", "rulesIn": ["v5"], "rulesOut": ["vk"]}, + {"kanaIn": "来とく", "kanaOut": "来る", "rulesIn": ["v5"], "rulesOut": ["vk"]}, + {"kanaIn": "來とく", "kanaOut": "來る", "rulesIn": ["v5"], "rulesOut": ["vk"]} ], "progressive or perfect": [ - { - "kanaIn": "ている", - "kanaOut": "て", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "iru" - ] - }, - { - "kanaIn": "ておる", - "kanaOut": "て", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "iru" - ] - }, - { - "kanaIn": "てる", - "kanaOut": "て", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "iru" - ] - }, - { - "kanaIn": "でいる", - "kanaOut": "で", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "iru" - ] - }, - { - "kanaIn": "でおる", - "kanaOut": "で", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "iru" - ] - }, - { - "kanaIn": "とる", - "kanaOut": "て", - "rulesIn": [ - "v5" - ], - "rulesOut": [ - "iru" - ] - }, - { - "kanaIn": "ないでいる", - "kanaOut": "ない", - "rulesIn": [ - "v1" - ], - "rulesOut": [ - "adj-i" - ] - } + {"kanaIn": "ている", "kanaOut": "て", "rulesIn": ["v1"], "rulesOut": ["iru"]}, + {"kanaIn": "ておる", "kanaOut": "て", "rulesIn": ["v5"], "rulesOut": ["iru"]}, + {"kanaIn": "てる", "kanaOut": "て", "rulesIn": ["v1"], "rulesOut": ["iru"]}, + {"kanaIn": "でいる", "kanaOut": "で", "rulesIn": ["v1"], "rulesOut": ["iru"]}, + {"kanaIn": "でおる", "kanaOut": "で", "rulesIn": ["v5"], "rulesOut": ["iru"]}, + {"kanaIn": "でる", "kanaOut": "で", "rulesIn": ["v1"], "rulesOut": ["iru"]}, + {"kanaIn": "とる", "kanaOut": "て", "rulesIn": ["v5"], "rulesOut": ["iru"]}, + {"kanaIn": "ないでいる", "kanaOut": "ない", "rulesIn": ["v1"], "rulesOut": ["adj-i"]} + ], + "-ki": [ + {"kanaIn": "き", "kanaOut": "い", "rulesIn": [], "rulesOut": ["adj-i"]} ] } diff --git a/test/test-deinflector.js b/test/test-deinflector.js new file mode 100644 index 00000000..2fee9fc3 --- /dev/null +++ b/test/test-deinflector.js @@ -0,0 +1,826 @@ +/* + * Copyright (C) 2020 Yomichan Authors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +const fs = require('fs'); +const path = require('path'); +const assert = require('assert'); +const {testMain} = require('../dev/util'); +const {VM} = require('../dev/vm'); + + +function hasTermReasons(Deinflector, deinflector, source, expectedTerm, expectedRule, expectedReasons) { + for (const {term, reasons, rules} of deinflector.deinflect(source, source)) { + if (term !== expectedTerm) { continue; } + if (typeof expectedRule !== 'undefined') { + const expectedFlags = Deinflector.rulesToRuleFlags([expectedRule]); + if (rules !== 0 && (rules & expectedFlags) !== expectedFlags) { continue; } + } + let okay = true; + if (typeof expectedReasons !== 'undefined') { + if (reasons.length !== expectedReasons.length) { continue; } + for (let i = 0, ii = expectedReasons.length; i < ii; ++i) { + if (expectedReasons[i] !== reasons[i]) { + okay = false; + break; + } + } + } + if (okay) { + return {has: true, reasons, rules}; + } + } + return {has: false, reasons: null, rules: null}; +} + + +function testDeinflections() { + const data = [ + { + valid: true, + tests: [ + // Adjective + {term: '愛しい', source: '愛しい', rule: 'adj-i', reasons: []}, + {term: '愛しい', source: '愛しそう', rule: 'adj-i', reasons: ['-sou']}, + {term: '愛しい', source: '愛しすぎる', rule: 'adj-i', reasons: ['-sugiru']}, + {term: '愛しい', source: '愛しかったら', rule: 'adj-i', reasons: ['-tara']}, + {term: '愛しい', source: '愛しかったり', rule: 'adj-i', reasons: ['-tari']}, + {term: '愛しい', source: '愛しくて', rule: 'adj-i', reasons: ['-te']}, + {term: '愛しい', source: '愛しく', rule: 'adj-i', reasons: ['adv']}, + {term: '愛しい', source: '愛しくない', rule: 'adj-i', reasons: ['negative']}, + {term: '愛しい', source: '愛しさ', rule: 'adj-i', reasons: ['noun']}, + {term: '愛しい', source: '愛しかった', rule: 'adj-i', reasons: ['past']}, + {term: '愛しい', source: '愛しくありません', rule: 'adj-i', reasons: ['polite negative']}, + {term: '愛しい', source: '愛しくありませんでした', rule: 'adj-i', reasons: ['polite past negative']}, + {term: '愛しい', source: '愛しき', rule: 'adj-i', reasons: ['-ki']}, + + // Common verbs + {term: '食べる', source: '食べる', rule: 'v1', reasons: []}, + {term: '食べる', source: '食べます', rule: 'v1', reasons: ['polite']}, + {term: '食べる', source: '食べた', rule: 'v1', reasons: ['past']}, + {term: '食べる', source: '食べました', rule: 'v1', reasons: ['polite past']}, + {term: '食べる', source: '食べて', rule: 'v1', reasons: ['-te']}, + {term: '食べる', source: '食べられる', rule: 'v1', reasons: ['potential or passive']}, + {term: '食べる', source: '食べられる', rule: 'v1', reasons: ['potential or passive']}, + {term: '食べる', source: '食べさせる', rule: 'v1', reasons: ['causative']}, + {term: '食べる', source: '食べさせられる', rule: 'v1', reasons: ['causative', 'potential or passive']}, + {term: '食べる', source: '食べろ', rule: 'v1', reasons: ['imperative']}, + {term: '食べる', source: '食べない', rule: 'v1', reasons: ['negative']}, + {term: '食べる', source: '食べません', rule: 'v1', reasons: ['polite negative']}, + {term: '食べる', source: '食べなかった', rule: 'v1', reasons: ['negative', 'past']}, + {term: '食べる', source: '食べませんでした', rule: 'v1', reasons: ['polite past negative']}, + {term: '食べる', source: '食べなくて', rule: 'v1', reasons: ['negative', '-te']}, + {term: '食べる', source: '食べられない', rule: 'v1', reasons: ['potential or passive', 'negative']}, + {term: '食べる', source: '食べられない', rule: 'v1', reasons: ['potential or passive', 'negative']}, + {term: '食べる', source: '食べさせない', rule: 'v1', reasons: ['causative', 'negative']}, + {term: '食べる', source: '食べさせられない', rule: 'v1', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '食べる', source: '食べるな', rule: 'v1', reasons: ['imperative negative']}, + + {term: '食べる', source: '食べれば', rule: 'v1', reasons: ['-ba']}, + {term: '食べる', source: '食べちゃう', rule: 'v1', reasons: ['-chau']}, + {term: '食べる', source: '食べなさい', rule: 'v1', reasons: ['-nasai']}, + {term: '食べる', source: '食べそう', rule: 'v1', reasons: ['-sou']}, + {term: '食べる', source: '食べすぎる', rule: 'v1', reasons: ['-sugiru']}, + {term: '食べる', source: '食べたい', rule: 'v1', reasons: ['-tai']}, + {term: '食べる', source: '食べたら', rule: 'v1', reasons: ['-tara']}, + {term: '食べる', source: '食べたり', rule: 'v1', reasons: ['-tari']}, + {term: '食べる', source: '食べず', rule: 'v1', reasons: ['-zu']}, + {term: '食べる', source: '食べぬ', rule: 'v1', reasons: ['-nu']}, + {term: '食べる', source: '食べ', rule: 'v1', reasons: ['masu stem']}, + {term: '食べる', source: '食べましょう', rule: 'v1', reasons: ['polite volitional']}, + {term: '食べる', source: '食べよう', rule: 'v1', reasons: ['volitional']}, + // ['causative passive'] + {term: '食べる', source: '食べとく', rule: 'v1', reasons: ['-toku']}, + {term: '食べる', source: '食べている', rule: 'v1', reasons: ['-te', 'progressive or perfect']}, + {term: '食べる', source: '食べておる', rule: 'v1', reasons: ['-te', 'progressive or perfect']}, + {term: '食べる', source: '食べてる', rule: 'v1', reasons: ['-te', 'progressive or perfect']}, + {term: '食べる', source: '食べとる', rule: 'v1', reasons: ['-te', 'progressive or perfect']}, + + {term: '買う', source: '買う', rule: 'v5', reasons: []}, + {term: '買う', source: '買います', rule: 'v5', reasons: ['polite']}, + {term: '買う', source: '買った', rule: 'v5', reasons: ['past']}, + {term: '買う', source: '買いました', rule: 'v5', reasons: ['polite past']}, + {term: '買う', source: '買って', rule: 'v5', reasons: ['-te']}, + {term: '買う', source: '買える', rule: 'v5', reasons: ['potential']}, + {term: '買う', source: '買われる', rule: 'v5', reasons: ['passive']}, + {term: '買う', source: '買わせる', rule: 'v5', reasons: ['causative']}, + {term: '買う', source: '買わせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, + {term: '買う', source: '買え', rule: 'v5', reasons: ['imperative']}, + {term: '買う', source: '買わない', rule: 'v5', reasons: ['negative']}, + {term: '買う', source: '買いません', rule: 'v5', reasons: ['polite negative']}, + {term: '買う', source: '買わなかった', rule: 'v5', reasons: ['negative', 'past']}, + {term: '買う', source: '買いませんでした', rule: 'v5', reasons: ['polite past negative']}, + {term: '買う', source: '買わなくて', rule: 'v5', reasons: ['negative', '-te']}, + {term: '買う', source: '買えない', rule: 'v5', reasons: ['potential', 'negative']}, + {term: '買う', source: '買われない', rule: 'v5', reasons: ['passive', 'negative']}, + {term: '買う', source: '買わせない', rule: 'v5', reasons: ['causative', 'negative']}, + {term: '買う', source: '買わせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '買う', source: '買うな', rule: 'v5', reasons: ['imperative negative']}, + + {term: '買う', source: '買えば', rule: 'v5', reasons: ['-ba']}, + {term: '買う', source: '買っちゃう', rule: 'v5', reasons: ['-chau']}, + {term: '買う', source: '買いなさい', rule: 'v5', reasons: ['-nasai']}, + {term: '買う', source: '買いそう', rule: 'v5', reasons: ['-sou']}, + {term: '買う', source: '買いすぎる', rule: 'v5', reasons: ['-sugiru']}, + {term: '買う', source: '買いたい', rule: 'v5', reasons: ['-tai']}, + {term: '買う', source: '買ったら', rule: 'v5', reasons: ['-tara']}, + {term: '買う', source: '買ったり', rule: 'v5', reasons: ['-tari']}, + {term: '買う', source: '買わず', rule: 'v5', reasons: ['-zu']}, + {term: '買う', source: '買わぬ', rule: 'v5', reasons: ['-nu']}, + {term: '買う', source: '買い', rule: 'v5', reasons: ['masu stem']}, + {term: '買う', source: '買いましょう', rule: 'v5', reasons: ['polite volitional']}, + {term: '買う', source: '買おう', rule: 'v5', reasons: ['volitional']}, + {term: '買う', source: '買わされる', rule: 'v5', reasons: ['causative passive']}, + {term: '買う', source: '買っとく', rule: 'v5', reasons: ['-toku']}, + {term: '買う', source: '買っている', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '買う', source: '買っておる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '買う', source: '買ってる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '買う', source: '買っとる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + + {term: '行く', source: '行く', rule: 'v5', reasons: []}, + {term: '行く', source: '行きます', rule: 'v5', reasons: ['polite']}, + {term: '行く', source: '行った', rule: 'v5', reasons: ['past']}, + {term: '行く', source: '行きました', rule: 'v5', reasons: ['polite past']}, + {term: '行く', source: '行って', rule: 'v5', reasons: ['-te']}, + {term: '行く', source: '行ける', rule: 'v5', reasons: ['potential']}, + {term: '行く', source: '行かれる', rule: 'v5', reasons: ['passive']}, + {term: '行く', source: '行かせる', rule: 'v5', reasons: ['causative']}, + {term: '行く', source: '行かせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, + {term: '行く', source: '行け', rule: 'v5', reasons: ['imperative']}, + {term: '行く', source: '行かない', rule: 'v5', reasons: ['negative']}, + {term: '行く', source: '行きません', rule: 'v5', reasons: ['polite negative']}, + {term: '行く', source: '行かなかった', rule: 'v5', reasons: ['negative', 'past']}, + {term: '行く', source: '行きませんでした', rule: 'v5', reasons: ['polite past negative']}, + {term: '行く', source: '行かなくて', rule: 'v5', reasons: ['negative', '-te']}, + {term: '行く', source: '行けない', rule: 'v5', reasons: ['potential', 'negative']}, + {term: '行く', source: '行かれない', rule: 'v5', reasons: ['passive', 'negative']}, + {term: '行く', source: '行かせない', rule: 'v5', reasons: ['causative', 'negative']}, + {term: '行く', source: '行かせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '行く', source: '行くな', rule: 'v5', reasons: ['imperative negative']}, + + {term: '行く', source: '行けば', rule: 'v5', reasons: ['-ba']}, + {term: '行く', source: '行っちゃう', rule: 'v5', reasons: ['-chau']}, + {term: '行く', source: '行きなさい', rule: 'v5', reasons: ['-nasai']}, + {term: '行く', source: '行きそう', rule: 'v5', reasons: ['-sou']}, + {term: '行く', source: '行きすぎる', rule: 'v5', reasons: ['-sugiru']}, + {term: '行く', source: '行きたい', rule: 'v5', reasons: ['-tai']}, + {term: '行く', source: '行いたら', rule: 'v5', reasons: ['-tara']}, + {term: '行く', source: '行いたり', rule: 'v5', reasons: ['-tari']}, + {term: '行く', source: '行かず', rule: 'v5', reasons: ['-zu']}, + {term: '行く', source: '行かぬ', rule: 'v5', reasons: ['-nu']}, + {term: '行く', source: '行き', rule: 'v5', reasons: ['masu stem']}, + {term: '行く', source: '行きましょう', rule: 'v5', reasons: ['polite volitional']}, + {term: '行く', source: '行こう', rule: 'v5', reasons: ['volitional']}, + {term: '行く', source: '行かされる', rule: 'v5', reasons: ['causative passive']}, + {term: '行く', source: '行いとく', rule: 'v5', reasons: ['-toku']}, + {term: '行く', source: '行っている', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '行く', source: '行っておる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '行く', source: '行ってる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '行く', source: '行っとる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + + {term: '泳ぐ', source: '泳ぐ', rule: 'v5', reasons: []}, + {term: '泳ぐ', source: '泳ぎます', rule: 'v5', reasons: ['polite']}, + {term: '泳ぐ', source: '泳いだ', rule: 'v5', reasons: ['past']}, + {term: '泳ぐ', source: '泳ぎました', rule: 'v5', reasons: ['polite past']}, + {term: '泳ぐ', source: '泳いで', rule: 'v5', reasons: ['-te']}, + {term: '泳ぐ', source: '泳げる', rule: 'v5', reasons: ['potential']}, + {term: '泳ぐ', source: '泳がれる', rule: 'v5', reasons: ['passive']}, + {term: '泳ぐ', source: '泳がせる', rule: 'v5', reasons: ['causative']}, + {term: '泳ぐ', source: '泳がせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, + {term: '泳ぐ', source: '泳げ', rule: 'v5', reasons: ['imperative']}, + {term: '泳ぐ', source: '泳がない', rule: 'v5', reasons: ['negative']}, + {term: '泳ぐ', source: '泳ぎません', rule: 'v5', reasons: ['polite negative']}, + {term: '泳ぐ', source: '泳がなかった', rule: 'v5', reasons: ['negative', 'past']}, + {term: '泳ぐ', source: '泳ぎませんでした', rule: 'v5', reasons: ['polite past negative']}, + {term: '泳ぐ', source: '泳がなくて', rule: 'v5', reasons: ['negative', '-te']}, + {term: '泳ぐ', source: '泳げない', rule: 'v5', reasons: ['potential', 'negative']}, + {term: '泳ぐ', source: '泳がれない', rule: 'v5', reasons: ['passive', 'negative']}, + {term: '泳ぐ', source: '泳がせない', rule: 'v5', reasons: ['causative', 'negative']}, + {term: '泳ぐ', source: '泳がせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '泳ぐ', source: '泳ぐな', rule: 'v5', reasons: ['imperative negative']}, + + {term: '泳ぐ', source: '泳げば', rule: 'v5', reasons: ['-ba']}, + {term: '泳ぐ', source: '泳いじゃう', rule: 'v5', reasons: ['-chau']}, + {term: '泳ぐ', source: '泳ぎなさい', rule: 'v5', reasons: ['-nasai']}, + {term: '泳ぐ', source: '泳ぎそう', rule: 'v5', reasons: ['-sou']}, + {term: '泳ぐ', source: '泳ぎすぎる', rule: 'v5', reasons: ['-sugiru']}, + {term: '泳ぐ', source: '泳ぎたい', rule: 'v5', reasons: ['-tai']}, + {term: '泳ぐ', source: '泳いだら', rule: 'v5', reasons: ['-tara']}, + {term: '泳ぐ', source: '泳いだり', rule: 'v5', reasons: ['-tari']}, + {term: '泳ぐ', source: '泳がず', rule: 'v5', reasons: ['-zu']}, + {term: '泳ぐ', source: '泳がぬ', rule: 'v5', reasons: ['-nu']}, + {term: '泳ぐ', source: '泳ぎ', rule: 'v5', reasons: ['masu stem']}, + {term: '泳ぐ', source: '泳ぎましょう', rule: 'v5', reasons: ['polite volitional']}, + {term: '泳ぐ', source: '泳ごう', rule: 'v5', reasons: ['volitional']}, + {term: '泳ぐ', source: '泳がされる', rule: 'v5', reasons: ['causative passive']}, + {term: '泳ぐ', source: '泳いどく', rule: 'v5', reasons: ['-toku']}, + {term: '泳ぐ', source: '泳いでいる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '泳ぐ', source: '泳いでおる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '泳ぐ', source: '泳いでる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + + {term: '話す', source: '話す', rule: 'v5', reasons: []}, + {term: '話す', source: '話します', rule: 'v5', reasons: ['polite']}, + {term: '話す', source: '話した', rule: 'v5', reasons: ['past']}, + {term: '話す', source: '話しました', rule: 'v5', reasons: ['polite past']}, + {term: '話す', source: '話して', rule: 'v5', reasons: ['-te']}, + {term: '話す', source: '話せる', rule: 'v5', reasons: ['potential']}, + {term: '話す', source: '話される', rule: 'v5', reasons: ['passive']}, + {term: '話す', source: '話させる', rule: 'v5', reasons: ['causative']}, + {term: '話す', source: '話させられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, + {term: '話す', source: '話せ', rule: 'v5', reasons: ['imperative']}, + {term: '話す', source: '話さない', rule: 'v5', reasons: ['negative']}, + {term: '話す', source: '話しません', rule: 'v5', reasons: ['polite negative']}, + {term: '話す', source: '話さなかった', rule: 'v5', reasons: ['negative', 'past']}, + {term: '話す', source: '話しませんでした', rule: 'v5', reasons: ['polite past negative']}, + {term: '話す', source: '話さなくて', rule: 'v5', reasons: ['negative', '-te']}, + {term: '話す', source: '話せない', rule: 'v5', reasons: ['potential', 'negative']}, + {term: '話す', source: '話されない', rule: 'v5', reasons: ['passive', 'negative']}, + {term: '話す', source: '話させない', rule: 'v5', reasons: ['causative', 'negative']}, + {term: '話す', source: '話させられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '話す', source: '話すな', rule: 'v5', reasons: ['imperative negative']}, + + {term: '話す', source: '話せば', rule: 'v5', reasons: ['-ba']}, + {term: '話す', source: '話しちゃう', rule: 'v5', reasons: ['-chau']}, + {term: '話す', source: '話しなさい', rule: 'v5', reasons: ['-nasai']}, + {term: '話す', source: '話しそう', rule: 'v5', reasons: ['-sou']}, + {term: '話す', source: '話しすぎる', rule: 'v5', reasons: ['-sugiru']}, + {term: '話す', source: '話したい', rule: 'v5', reasons: ['-tai']}, + {term: '話す', source: '話したら', rule: 'v5', reasons: ['-tara']}, + {term: '話す', source: '話したり', rule: 'v5', reasons: ['-tari']}, + {term: '話す', source: '話さず', rule: 'v5', reasons: ['-zu']}, + {term: '話す', source: '話さぬ', rule: 'v5', reasons: ['-nu']}, + {term: '話す', source: '話し', rule: 'v5', reasons: ['masu stem']}, + {term: '話す', source: '話しましょう', rule: 'v5', reasons: ['polite volitional']}, + {term: '話す', source: '話そう', rule: 'v5', reasons: ['volitional']}, + // ['causative passive'] + {term: '話す', source: '話しとく', rule: 'v5', reasons: ['-toku']}, + {term: '話す', source: '話している', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '話す', source: '話しておる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '話す', source: '話してる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '話す', source: '話しとる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + + {term: '待つ', source: '待つ', rule: 'v5', reasons: []}, + {term: '待つ', source: '待ちます', rule: 'v5', reasons: ['polite']}, + {term: '待つ', source: '待った', rule: 'v5', reasons: ['past']}, + {term: '待つ', source: '待ちました', rule: 'v5', reasons: ['polite past']}, + {term: '待つ', source: '待って', rule: 'v5', reasons: ['-te']}, + {term: '待つ', source: '待てる', rule: 'v5', reasons: ['potential']}, + {term: '待つ', source: '待たれる', rule: 'v5', reasons: ['passive']}, + {term: '待つ', source: '待たせる', rule: 'v5', reasons: ['causative']}, + {term: '待つ', source: '待たせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, + {term: '待つ', source: '待て', rule: 'v5', reasons: ['imperative']}, + {term: '待つ', source: '待たない', rule: 'v5', reasons: ['negative']}, + {term: '待つ', source: '待ちません', rule: 'v5', reasons: ['polite negative']}, + {term: '待つ', source: '待たなかった', rule: 'v5', reasons: ['negative', 'past']}, + {term: '待つ', source: '待ちませんでした', rule: 'v5', reasons: ['polite past negative']}, + {term: '待つ', source: '待たなくて', rule: 'v5', reasons: ['negative', '-te']}, + {term: '待つ', source: '待てない', rule: 'v5', reasons: ['potential', 'negative']}, + {term: '待つ', source: '待たれない', rule: 'v5', reasons: ['passive', 'negative']}, + {term: '待つ', source: '待たせない', rule: 'v5', reasons: ['causative', 'negative']}, + {term: '待つ', source: '待たせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '待つ', source: '待つな', rule: 'v5', reasons: ['imperative negative']}, + + {term: '待つ', source: '待てば', rule: 'v5', reasons: ['-ba']}, + {term: '待つ', source: '待っちゃう', rule: 'v5', reasons: ['-chau']}, + {term: '待つ', source: '待ちなさい', rule: 'v5', reasons: ['-nasai']}, + {term: '待つ', source: '待ちそう', rule: 'v5', reasons: ['-sou']}, + {term: '待つ', source: '待ちすぎる', rule: 'v5', reasons: ['-sugiru']}, + {term: '待つ', source: '待ちたい', rule: 'v5', reasons: ['-tai']}, + {term: '待つ', source: '待ったら', rule: 'v5', reasons: ['-tara']}, + {term: '待つ', source: '待ったり', rule: 'v5', reasons: ['-tari']}, + {term: '待つ', source: '待たず', rule: 'v5', reasons: ['-zu']}, + {term: '待つ', source: '待たぬ', rule: 'v5', reasons: ['-nu']}, + {term: '待つ', source: '待ち', rule: 'v5', reasons: ['masu stem']}, + {term: '待つ', source: '待ちましょう', rule: 'v5', reasons: ['polite volitional']}, + {term: '待つ', source: '待とう', rule: 'v5', reasons: ['volitional']}, + {term: '待つ', source: '待たされる', rule: 'v5', reasons: ['causative passive']}, + {term: '待つ', source: '待っとく', rule: 'v5', reasons: ['-toku']}, + {term: '待つ', source: '待っている', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '待つ', source: '待っておる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '待つ', source: '待ってる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '待つ', source: '待っとる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + + {term: '死ぬ', source: '死ぬ', rule: 'v5', reasons: []}, + {term: '死ぬ', source: '死にます', rule: 'v5', reasons: ['polite']}, + {term: '死ぬ', source: '死んだ', rule: 'v5', reasons: ['past']}, + {term: '死ぬ', source: '死にました', rule: 'v5', reasons: ['polite past']}, + {term: '死ぬ', source: '死んで', rule: 'v5', reasons: ['-te']}, + {term: '死ぬ', source: '死ねる', rule: 'v5', reasons: ['potential']}, + {term: '死ぬ', source: '死なれる', rule: 'v5', reasons: ['passive']}, + {term: '死ぬ', source: '死なせる', rule: 'v5', reasons: ['causative']}, + {term: '死ぬ', source: '死なせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, + {term: '死ぬ', source: '死ね', rule: 'v5', reasons: ['imperative']}, + {term: '死ぬ', source: '死なない', rule: 'v5', reasons: ['negative']}, + {term: '死ぬ', source: '死にません', rule: 'v5', reasons: ['polite negative']}, + {term: '死ぬ', source: '死ななかった', rule: 'v5', reasons: ['negative', 'past']}, + {term: '死ぬ', source: '死にませんでした', rule: 'v5', reasons: ['polite past negative']}, + {term: '死ぬ', source: '死ななくて', rule: 'v5', reasons: ['negative', '-te']}, + {term: '死ぬ', source: '死ねない', rule: 'v5', reasons: ['potential', 'negative']}, + {term: '死ぬ', source: '死なれない', rule: 'v5', reasons: ['passive', 'negative']}, + {term: '死ぬ', source: '死なせない', rule: 'v5', reasons: ['causative', 'negative']}, + {term: '死ぬ', source: '死なせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '死ぬ', source: '死ぬな', rule: 'v5', reasons: ['imperative negative']}, + + {term: '死ぬ', source: '死ねば', rule: 'v5', reasons: ['-ba']}, + {term: '死ぬ', source: '死んじゃう', rule: 'v5', reasons: ['-chau']}, + {term: '死ぬ', source: '死になさい', rule: 'v5', reasons: ['-nasai']}, + {term: '死ぬ', source: '死にそう', rule: 'v5', reasons: ['-sou']}, + {term: '死ぬ', source: '死にすぎる', rule: 'v5', reasons: ['-sugiru']}, + {term: '死ぬ', source: '死にたい', rule: 'v5', reasons: ['-tai']}, + {term: '死ぬ', source: '死んだら', rule: 'v5', reasons: ['-tara']}, + {term: '死ぬ', source: '死んだり', rule: 'v5', reasons: ['-tari']}, + {term: '死ぬ', source: '死なず', rule: 'v5', reasons: ['-zu']}, + {term: '死ぬ', source: '死なぬ', rule: 'v5', reasons: ['-nu']}, + {term: '死ぬ', source: '死に', rule: 'v5', reasons: ['masu stem']}, + {term: '死ぬ', source: '死にましょう', rule: 'v5', reasons: ['polite volitional']}, + {term: '死ぬ', source: '死のう', rule: 'v5', reasons: ['volitional']}, + {term: '死ぬ', source: '死なされる', rule: 'v5', reasons: ['causative passive']}, + {term: '死ぬ', source: '死んどく', rule: 'v5', reasons: ['-toku']}, + {term: '死ぬ', source: '死んでいる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '死ぬ', source: '死んでおる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '死ぬ', source: '死んでる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + + {term: '遊ぶ', source: '遊ぶ', rule: 'v5', reasons: []}, + {term: '遊ぶ', source: '遊びます', rule: 'v5', reasons: ['polite']}, + {term: '遊ぶ', source: '遊んだ', rule: 'v5', reasons: ['past']}, + {term: '遊ぶ', source: '遊びました', rule: 'v5', reasons: ['polite past']}, + {term: '遊ぶ', source: '遊んで', rule: 'v5', reasons: ['-te']}, + {term: '遊ぶ', source: '遊べる', rule: 'v5', reasons: ['potential']}, + {term: '遊ぶ', source: '遊ばれる', rule: 'v5', reasons: ['passive']}, + {term: '遊ぶ', source: '遊ばせる', rule: 'v5', reasons: ['causative']}, + {term: '遊ぶ', source: '遊ばせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, + {term: '遊ぶ', source: '遊べ', rule: 'v5', reasons: ['imperative']}, + {term: '遊ぶ', source: '遊ばない', rule: 'v5', reasons: ['negative']}, + {term: '遊ぶ', source: '遊びません', rule: 'v5', reasons: ['polite negative']}, + {term: '遊ぶ', source: '遊ばなかった', rule: 'v5', reasons: ['negative', 'past']}, + {term: '遊ぶ', source: '遊びませんでした', rule: 'v5', reasons: ['polite past negative']}, + {term: '遊ぶ', source: '遊ばなくて', rule: 'v5', reasons: ['negative', '-te']}, + {term: '遊ぶ', source: '遊べない', rule: 'v5', reasons: ['potential', 'negative']}, + {term: '遊ぶ', source: '遊ばれない', rule: 'v5', reasons: ['passive', 'negative']}, + {term: '遊ぶ', source: '遊ばせない', rule: 'v5', reasons: ['causative', 'negative']}, + {term: '遊ぶ', source: '遊ばせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '遊ぶ', source: '遊ぶな', rule: 'v5', reasons: ['imperative negative']}, + + {term: '遊ぶ', source: '遊べば', rule: 'v5', reasons: ['-ba']}, + {term: '遊ぶ', source: '遊んじゃう', rule: 'v5', reasons: ['-chau']}, + {term: '遊ぶ', source: '遊びなさい', rule: 'v5', reasons: ['-nasai']}, + {term: '遊ぶ', source: '遊びそう', rule: 'v5', reasons: ['-sou']}, + {term: '遊ぶ', source: '遊びすぎる', rule: 'v5', reasons: ['-sugiru']}, + {term: '遊ぶ', source: '遊びたい', rule: 'v5', reasons: ['-tai']}, + {term: '遊ぶ', source: '遊んだら', rule: 'v5', reasons: ['-tara']}, + {term: '遊ぶ', source: '遊んだり', rule: 'v5', reasons: ['-tari']}, + {term: '遊ぶ', source: '遊ばず', rule: 'v5', reasons: ['-zu']}, + {term: '遊ぶ', source: '遊ばぬ', rule: 'v5', reasons: ['-nu']}, + {term: '遊ぶ', source: '遊び', rule: 'v5', reasons: ['masu stem']}, + {term: '遊ぶ', source: '遊びましょう', rule: 'v5', reasons: ['polite volitional']}, + {term: '遊ぶ', source: '遊ぼう', rule: 'v5', reasons: ['volitional']}, + {term: '遊ぶ', source: '遊ばされる', rule: 'v5', reasons: ['causative passive']}, + {term: '遊ぶ', source: '遊んどく', rule: 'v5', reasons: ['-toku']}, + {term: '遊ぶ', source: '遊んでいる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '遊ぶ', source: '遊んでおる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '遊ぶ', source: '遊んでる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + + {term: '飲む', source: '飲む', rule: 'v5', reasons: []}, + {term: '飲む', source: '飲みます', rule: 'v5', reasons: ['polite']}, + {term: '飲む', source: '飲んだ', rule: 'v5', reasons: ['past']}, + {term: '飲む', source: '飲みました', rule: 'v5', reasons: ['polite past']}, + {term: '飲む', source: '飲んで', rule: 'v5', reasons: ['-te']}, + {term: '飲む', source: '飲める', rule: 'v5', reasons: ['potential']}, + {term: '飲む', source: '飲まれる', rule: 'v5', reasons: ['passive']}, + {term: '飲む', source: '飲ませる', rule: 'v5', reasons: ['causative']}, + {term: '飲む', source: '飲ませられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, + {term: '飲む', source: '飲め', rule: 'v5', reasons: ['imperative']}, + {term: '飲む', source: '飲まない', rule: 'v5', reasons: ['negative']}, + {term: '飲む', source: '飲みません', rule: 'v5', reasons: ['polite negative']}, + {term: '飲む', source: '飲まなかった', rule: 'v5', reasons: ['negative', 'past']}, + {term: '飲む', source: '飲みませんでした', rule: 'v5', reasons: ['polite past negative']}, + {term: '飲む', source: '飲まなくて', rule: 'v5', reasons: ['negative', '-te']}, + {term: '飲む', source: '飲めない', rule: 'v5', reasons: ['potential', 'negative']}, + {term: '飲む', source: '飲まれない', rule: 'v5', reasons: ['passive', 'negative']}, + {term: '飲む', source: '飲ませない', rule: 'v5', reasons: ['causative', 'negative']}, + {term: '飲む', source: '飲ませられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '飲む', source: '飲むな', rule: 'v5', reasons: ['imperative negative']}, + + {term: '飲む', source: '飲めば', rule: 'v5', reasons: ['-ba']}, + {term: '飲む', source: '飲んじゃう', rule: 'v5', reasons: ['-chau']}, + {term: '飲む', source: '飲みなさい', rule: 'v5', reasons: ['-nasai']}, + {term: '飲む', source: '飲みそう', rule: 'v5', reasons: ['-sou']}, + {term: '飲む', source: '飲みすぎる', rule: 'v5', reasons: ['-sugiru']}, + {term: '飲む', source: '飲みたい', rule: 'v5', reasons: ['-tai']}, + {term: '飲む', source: '飲んだら', rule: 'v5', reasons: ['-tara']}, + {term: '飲む', source: '飲んだり', rule: 'v5', reasons: ['-tari']}, + {term: '飲む', source: '飲まず', rule: 'v5', reasons: ['-zu']}, + {term: '飲む', source: '飲まぬ', rule: 'v5', reasons: ['-nu']}, + {term: '飲む', source: '飲み', rule: 'v5', reasons: ['masu stem']}, + {term: '飲む', source: '飲みましょう', rule: 'v5', reasons: ['polite volitional']}, + {term: '飲む', source: '飲もう', rule: 'v5', reasons: ['volitional']}, + {term: '飲む', source: '飲まされる', rule: 'v5', reasons: ['causative passive']}, + {term: '飲む', source: '飲んどく', rule: 'v5', reasons: ['-toku']}, + {term: '飲む', source: '飲んでいる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '飲む', source: '飲んでおる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '飲む', source: '飲んでる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + + {term: '作る', source: '作る', rule: 'v5', reasons: []}, + {term: '作る', source: '作ります', rule: 'v5', reasons: ['polite']}, + {term: '作る', source: '作った', rule: 'v5', reasons: ['past']}, + {term: '作る', source: '作りました', rule: 'v5', reasons: ['polite past']}, + {term: '作る', source: '作って', rule: 'v5', reasons: ['-te']}, + {term: '作る', source: '作れる', rule: 'v5', reasons: ['potential']}, + {term: '作る', source: '作られる', rule: 'v5', reasons: ['passive']}, + {term: '作る', source: '作らせる', rule: 'v5', reasons: ['causative']}, + {term: '作る', source: '作らせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, + {term: '作る', source: '作れ', rule: 'v5', reasons: ['imperative']}, + {term: '作る', source: '作らない', rule: 'v5', reasons: ['negative']}, + {term: '作る', source: '作りません', rule: 'v5', reasons: ['polite negative']}, + {term: '作る', source: '作らなかった', rule: 'v5', reasons: ['negative', 'past']}, + {term: '作る', source: '作りませんでした', rule: 'v5', reasons: ['polite past negative']}, + {term: '作る', source: '作らなくて', rule: 'v5', reasons: ['negative', '-te']}, + {term: '作る', source: '作れない', rule: 'v5', reasons: ['potential', 'negative']}, + {term: '作る', source: '作られない', rule: 'v5', reasons: ['passive', 'negative']}, + {term: '作る', source: '作らせない', rule: 'v5', reasons: ['causative', 'negative']}, + {term: '作る', source: '作らせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '作る', source: '作るな', rule: 'v5', reasons: ['imperative negative']}, + + {term: '作る', source: '作れば', rule: 'v5', reasons: ['-ba']}, + {term: '作る', source: '作っちゃう', rule: 'v5', reasons: ['-chau']}, + {term: '作る', source: '作りなさい', rule: 'v5', reasons: ['-nasai']}, + {term: '作る', source: '作りそう', rule: 'v5', reasons: ['-sou']}, + {term: '作る', source: '作りすぎる', rule: 'v5', reasons: ['-sugiru']}, + {term: '作る', source: '作りたい', rule: 'v5', reasons: ['-tai']}, + {term: '作る', source: '作ったら', rule: 'v5', reasons: ['-tara']}, + {term: '作る', source: '作ったり', rule: 'v5', reasons: ['-tari']}, + {term: '作る', source: '作らず', rule: 'v5', reasons: ['-zu']}, + {term: '作る', source: '作らぬ', rule: 'v5', reasons: ['-nu']}, + {term: '作る', source: '作り', rule: 'v5', reasons: ['masu stem']}, + {term: '作る', source: '作りましょう', rule: 'v5', reasons: ['polite volitional']}, + {term: '作る', source: '作ろう', rule: 'v5', reasons: ['volitional']}, + {term: '作る', source: '作らされる', rule: 'v5', reasons: ['causative passive']}, + {term: '作る', source: '作っとく', rule: 'v5', reasons: ['-toku']}, + {term: '作る', source: '作っている', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '作る', source: '作っておる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '作る', source: '作ってる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + {term: '作る', source: '作っとる', rule: 'v5', reasons: ['-te', 'progressive or perfect']}, + + // Irregular verbs + {term: '為る', source: '為る', rule: 'vs', reasons: []}, + {term: '為る', source: '為ます', rule: 'vs', reasons: ['polite']}, + {term: '為る', source: '為た', rule: 'vs', reasons: ['past']}, + {term: '為る', source: '為ました', rule: 'vs', reasons: ['polite past']}, + {term: '為る', source: '為て', rule: 'vs', reasons: ['-te']}, + // ['potential'] + {term: '為る', source: '為れる', rule: 'vs', reasons: ['passive']}, + {term: '為る', source: '為せる', rule: 'vs', reasons: ['causative']}, + {term: '為る', source: '為せられる', rule: 'vs', reasons: ['causative', 'potential or passive']}, + {term: '為る', source: '為ろ', rule: 'vs', reasons: ['imperative']}, + {term: '為る', source: '為ない', rule: 'vs', reasons: ['negative']}, + {term: '為る', source: '為ません', rule: 'vs', reasons: ['polite negative']}, + {term: '為る', source: '為なかった', rule: 'vs', reasons: ['negative', 'past']}, + {term: '為る', source: '為ませんでした', rule: 'vs', reasons: ['polite past negative']}, + {term: '為る', source: '為なくて', rule: 'vs', reasons: ['negative', '-te']}, + // ['potential', 'negative'] + {term: '為る', source: '為れない', rule: 'vs', reasons: ['passive', 'negative']}, + {term: '為る', source: '為せない', rule: 'vs', reasons: ['causative', 'negative']}, + {term: '為る', source: '為せられない', rule: 'vs', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '為る', source: '為るな', rule: 'vs', reasons: ['imperative negative']}, + + {term: '為る', source: '為れば', rule: 'vs', reasons: ['-ba']}, + {term: '為る', source: '為ちゃう', rule: 'vs', reasons: ['-chau']}, + {term: '為る', source: '為なさい', rule: 'vs', reasons: ['-nasai']}, + {term: '為る', source: '為そう', rule: 'vs', reasons: ['-sou']}, + {term: '為る', source: '為すぎる', rule: 'vs', reasons: ['-sugiru']}, + {term: '為る', source: '為たい', rule: 'vs', reasons: ['-tai']}, + {term: '為る', source: '為たら', rule: 'vs', reasons: ['-tara']}, + {term: '為る', source: '為たり', rule: 'vs', reasons: ['-tari']}, + {term: '為る', source: '為ず', rule: 'vs', reasons: ['-zu']}, + {term: '為る', source: '為ぬ', rule: 'vs', reasons: ['-nu']}, + // ['masu stem'] + {term: '為る', source: '為ましょう', rule: 'vs', reasons: ['polite volitional']}, + {term: '為る', source: '為よう', rule: 'vs', reasons: ['volitional']}, + // ['causative passive'] + {term: '為る', source: '為とく', rule: 'vs', reasons: ['-toku']}, + {term: '為る', source: '為ている', rule: 'vs', reasons: ['-te', 'progressive or perfect']}, + {term: '為る', source: '為ておる', rule: 'vs', reasons: ['-te', 'progressive or perfect']}, + {term: '為る', source: '為てる', rule: 'vs', reasons: ['-te', 'progressive or perfect']}, + {term: '為る', source: '為とる', rule: 'vs', reasons: ['-te', 'progressive or perfect']}, + + {term: 'する', source: 'する', rule: 'vs', reasons: []}, + {term: 'する', source: 'します', rule: 'vs', reasons: ['polite']}, + {term: 'する', source: 'した', rule: 'vs', reasons: ['past']}, + {term: 'する', source: 'しました', rule: 'vs', reasons: ['polite past']}, + {term: 'する', source: 'して', rule: 'vs', reasons: ['-te']}, + // ['potential'] + {term: 'する', source: 'される', rule: 'vs', reasons: ['passive']}, + {term: 'する', source: 'させる', rule: 'vs', reasons: ['causative']}, + {term: 'する', source: 'させられる', rule: 'vs', reasons: ['causative', 'potential or passive']}, + {term: 'する', source: 'しろ', rule: 'vs', reasons: ['imperative']}, + {term: 'する', source: 'しない', rule: 'vs', reasons: ['negative']}, + {term: 'する', source: 'しません', rule: 'vs', reasons: ['polite negative']}, + {term: 'する', source: 'しなかった', rule: 'vs', reasons: ['negative', 'past']}, + {term: 'する', source: 'しませんでした', rule: 'vs', reasons: ['polite past negative']}, + {term: 'する', source: 'しなくて', rule: 'vs', reasons: ['negative', '-te']}, + // ['potential', 'negative'] + {term: 'する', source: 'されない', rule: 'vs', reasons: ['passive', 'negative']}, + {term: 'する', source: 'させない', rule: 'vs', reasons: ['causative', 'negative']}, + {term: 'する', source: 'させられない', rule: 'vs', reasons: ['causative', 'potential or passive', 'negative']}, + {term: 'する', source: 'するな', rule: 'vs', reasons: ['imperative negative']}, + + {term: 'する', source: 'すれば', rule: 'vs', reasons: ['-ba']}, + {term: 'する', source: 'しちゃう', rule: 'vs', reasons: ['-chau']}, + {term: 'する', source: 'しなさい', rule: 'vs', reasons: ['-nasai']}, + {term: 'する', source: 'しそう', rule: 'vs', reasons: ['-sou']}, + {term: 'する', source: 'しすぎる', rule: 'vs', reasons: ['-sugiru']}, + {term: 'する', source: 'したい', rule: 'vs', reasons: ['-tai']}, + {term: 'する', source: 'したら', rule: 'vs', reasons: ['-tara']}, + {term: 'する', source: 'したり', rule: 'vs', reasons: ['-tari']}, + {term: 'する', source: 'せず', rule: 'vs', reasons: ['-zu']}, + {term: 'する', source: 'せぬ', rule: 'vs', reasons: ['-nu']}, + // ['masu stem'] + {term: 'する', source: 'しましょう', rule: 'vs', reasons: ['polite volitional']}, + {term: 'する', source: 'しよう', rule: 'vs', reasons: ['volitional']}, + // ['causative passive'] + {term: 'する', source: 'しとく', rule: 'vs', reasons: ['-toku']}, + {term: 'する', source: 'している', rule: 'vs', reasons: ['-te', 'progressive or perfect']}, + {term: 'する', source: 'しておる', rule: 'vs', reasons: ['-te', 'progressive or perfect']}, + {term: 'する', source: 'してる', rule: 'vs', reasons: ['-te', 'progressive or perfect']}, + {term: 'する', source: 'しとる', rule: 'vs', reasons: ['-te', 'progressive or perfect']}, + + {term: '来る', source: '来る', rule: 'vk', reasons: []}, + {term: '来る', source: '来ます', rule: 'vk', reasons: ['polite']}, + {term: '来る', source: '来た', rule: 'vk', reasons: ['past']}, + {term: '来る', source: '来ました', rule: 'vk', reasons: ['polite past']}, + {term: '来る', source: '来て', rule: 'vk', reasons: ['-te']}, + {term: '来る', source: '来られる', rule: 'vk', reasons: ['potential or passive']}, + {term: '来る', source: '来られる', rule: 'vk', reasons: ['potential or passive']}, + {term: '来る', source: '来させる', rule: 'vk', reasons: ['causative']}, + {term: '来る', source: '来させられる', rule: 'vk', reasons: ['causative', 'potential or passive']}, + {term: '来る', source: '来い', rule: 'vk', reasons: ['imperative']}, + {term: '来る', source: '来ない', rule: 'vk', reasons: ['negative']}, + {term: '来る', source: '来ません', rule: 'vk', reasons: ['polite negative']}, + {term: '来る', source: '来なかった', rule: 'vk', reasons: ['negative', 'past']}, + {term: '来る', source: '来ませんでした', rule: 'vk', reasons: ['polite past negative']}, + {term: '来る', source: '来なくて', rule: 'vk', reasons: ['negative', '-te']}, + {term: '来る', source: '来られない', rule: 'vk', reasons: ['potential or passive', 'negative']}, + {term: '来る', source: '来られない', rule: 'vk', reasons: ['potential or passive', 'negative']}, + {term: '来る', source: '来させない', rule: 'vk', reasons: ['causative', 'negative']}, + {term: '来る', source: '来させられない', rule: 'vk', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '来る', source: '来るな', rule: 'vk', reasons: ['imperative negative']}, + + {term: '来る', source: '来れば', rule: 'vk', reasons: ['-ba']}, + {term: '来る', source: '来ちゃう', rule: 'vk', reasons: ['-chau']}, + {term: '来る', source: '来なさい', rule: 'vk', reasons: ['-nasai']}, + {term: '来る', source: '来そう', rule: 'vk', reasons: ['-sou']}, + {term: '来る', source: '来すぎる', rule: 'vk', reasons: ['-sugiru']}, + {term: '来る', source: '来たい', rule: 'vk', reasons: ['-tai']}, + {term: '来る', source: '来たら', rule: 'vk', reasons: ['-tara']}, + {term: '来る', source: '来たり', rule: 'vk', reasons: ['-tari']}, + {term: '来る', source: '来ず', rule: 'vk', reasons: ['-zu']}, + {term: '来る', source: '来ぬ', rule: 'vk', reasons: ['-nu']}, + {term: '来る', source: '来', rule: 'vk', reasons: ['masu stem']}, + {term: '来る', source: '来ましょう', rule: 'vk', reasons: ['polite volitional']}, + {term: '来る', source: '来よう', rule: 'vk', reasons: ['volitional']}, + // ['causative passive'] + {term: '来る', source: '来とく', rule: 'vk', reasons: ['-toku']}, + {term: '来る', source: '来ている', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + {term: '来る', source: '来ておる', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + {term: '来る', source: '来てる', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + {term: '来る', source: '来とる', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + + {term: '來る', source: '來る', rule: 'vk', reasons: []}, + {term: '來る', source: '來ます', rule: 'vk', reasons: ['polite']}, + {term: '來る', source: '來た', rule: 'vk', reasons: ['past']}, + {term: '來る', source: '來ました', rule: 'vk', reasons: ['polite past']}, + {term: '來る', source: '來て', rule: 'vk', reasons: ['-te']}, + {term: '來る', source: '來られる', rule: 'vk', reasons: ['potential or passive']}, + {term: '來る', source: '來られる', rule: 'vk', reasons: ['potential or passive']}, + {term: '來る', source: '來させる', rule: 'vk', reasons: ['causative']}, + {term: '來る', source: '來させられる', rule: 'vk', reasons: ['causative', 'potential or passive']}, + {term: '來る', source: '來い', rule: 'vk', reasons: ['imperative']}, + {term: '來る', source: '來ない', rule: 'vk', reasons: ['negative']}, + {term: '來る', source: '來ません', rule: 'vk', reasons: ['polite negative']}, + {term: '來る', source: '來なかった', rule: 'vk', reasons: ['negative', 'past']}, + {term: '來る', source: '來ませんでした', rule: 'vk', reasons: ['polite past negative']}, + {term: '來る', source: '來なくて', rule: 'vk', reasons: ['negative', '-te']}, + {term: '來る', source: '來られない', rule: 'vk', reasons: ['potential or passive', 'negative']}, + {term: '來る', source: '來られない', rule: 'vk', reasons: ['potential or passive', 'negative']}, + {term: '來る', source: '來させない', rule: 'vk', reasons: ['causative', 'negative']}, + {term: '來る', source: '來させられない', rule: 'vk', reasons: ['causative', 'potential or passive', 'negative']}, + {term: '來る', source: '來るな', rule: 'vk', reasons: ['imperative negative']}, + + {term: '來る', source: '來れば', rule: 'vk', reasons: ['-ba']}, + {term: '來る', source: '來ちゃう', rule: 'vk', reasons: ['-chau']}, + {term: '來る', source: '來なさい', rule: 'vk', reasons: ['-nasai']}, + {term: '來る', source: '來そう', rule: 'vk', reasons: ['-sou']}, + {term: '來る', source: '來すぎる', rule: 'vk', reasons: ['-sugiru']}, + {term: '來る', source: '來たい', rule: 'vk', reasons: ['-tai']}, + {term: '來る', source: '來たら', rule: 'vk', reasons: ['-tara']}, + {term: '來る', source: '來たり', rule: 'vk', reasons: ['-tari']}, + {term: '來る', source: '來ず', rule: 'vk', reasons: ['-zu']}, + {term: '來る', source: '來ぬ', rule: 'vk', reasons: ['-nu']}, + {term: '來る', source: '來', rule: 'vk', reasons: ['masu stem']}, + {term: '來る', source: '來ましょう', rule: 'vk', reasons: ['polite volitional']}, + {term: '來る', source: '來よう', rule: 'vk', reasons: ['volitional']}, + // ['causative passive'] + {term: '來る', source: '來とく', rule: 'vk', reasons: ['-toku']}, + {term: '來る', source: '來ている', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + {term: '來る', source: '來ておる', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + {term: '來る', source: '來てる', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + {term: '來る', source: '來とる', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + + {term: 'くる', source: 'くる', rule: 'vk', reasons: []}, + {term: 'くる', source: 'きます', rule: 'vk', reasons: ['polite']}, + {term: 'くる', source: 'きた', rule: 'vk', reasons: ['past']}, + {term: 'くる', source: 'きました', rule: 'vk', reasons: ['polite past']}, + {term: 'くる', source: 'きて', rule: 'vk', reasons: ['-te']}, + {term: 'くる', source: 'こられる', rule: 'vk', reasons: ['potential or passive']}, + {term: 'くる', source: 'こられる', rule: 'vk', reasons: ['potential or passive']}, + {term: 'くる', source: 'こさせる', rule: 'vk', reasons: ['causative']}, + {term: 'くる', source: 'こさせられる', rule: 'vk', reasons: ['causative', 'potential or passive']}, + {term: 'くる', source: 'こい', rule: 'vk', reasons: ['imperative']}, + {term: 'くる', source: 'こない', rule: 'vk', reasons: ['negative']}, + {term: 'くる', source: 'きません', rule: 'vk', reasons: ['polite negative']}, + {term: 'くる', source: 'こなかった', rule: 'vk', reasons: ['negative', 'past']}, + {term: 'くる', source: 'きませんでした', rule: 'vk', reasons: ['polite past negative']}, + {term: 'くる', source: 'こなくて', rule: 'vk', reasons: ['negative', '-te']}, + {term: 'くる', source: 'こられない', rule: 'vk', reasons: ['potential or passive', 'negative']}, + {term: 'くる', source: 'こられない', rule: 'vk', reasons: ['potential or passive', 'negative']}, + {term: 'くる', source: 'こさせない', rule: 'vk', reasons: ['causative', 'negative']}, + {term: 'くる', source: 'こさせられない', rule: 'vk', reasons: ['causative', 'potential or passive', 'negative']}, + {term: 'くる', source: 'くるな', rule: 'vk', reasons: ['imperative negative']}, + + {term: 'くる', source: 'くれば', rule: 'vk', reasons: ['-ba']}, + {term: 'くる', source: 'きちゃう', rule: 'vk', reasons: ['-chau']}, + {term: 'くる', source: 'きなさい', rule: 'vk', reasons: ['-nasai']}, + {term: 'くる', source: 'きそう', rule: 'vk', reasons: ['-sou']}, + {term: 'くる', source: 'きすぎる', rule: 'vk', reasons: ['-sugiru']}, + {term: 'くる', source: 'きたい', rule: 'vk', reasons: ['-tai']}, + {term: 'くる', source: 'きたら', rule: 'vk', reasons: ['-tara']}, + {term: 'くる', source: 'きたり', rule: 'vk', reasons: ['-tari']}, + {term: 'くる', source: 'こず', rule: 'vk', reasons: ['-zu']}, + {term: 'くる', source: 'こぬ', rule: 'vk', reasons: ['-nu']}, + {term: 'くる', source: 'き', rule: 'vk', reasons: ['masu stem']}, + {term: 'くる', source: 'きましょう', rule: 'vk', reasons: ['polite volitional']}, + {term: 'くる', source: 'こよう', rule: 'vk', reasons: ['volitional']}, + // ['causative passive'] + {term: 'くる', source: 'きとく', rule: 'vk', reasons: ['-toku']}, + {term: 'くる', source: 'きている', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + {term: 'くる', source: 'きておる', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + {term: 'くる', source: 'きてる', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + {term: 'くる', source: 'きとる', rule: 'vk', reasons: ['-te', 'progressive or perfect']}, + + // Uncommon irregular verbs + {term: 'のたまう', source: 'のたもうて', rule: 'v5', reasons: ['-te']}, + {term: 'のたまう', source: 'のたもうた', rule: 'v5', reasons: ['past']}, + {term: 'のたまう', source: 'のたもうたら', rule: 'v5', reasons: ['-tara']}, + {term: 'のたまう', source: 'のたもうたり', rule: 'v5', reasons: ['-tari']}, + + {term: 'おう', source: 'おうて', rule: 'v5', reasons: ['-te']}, + {term: 'こう', source: 'こうて', rule: 'v5', reasons: ['-te']}, + {term: 'そう', source: 'そうて', rule: 'v5', reasons: ['-te']}, + {term: 'とう', source: 'とうて', rule: 'v5', reasons: ['-te']}, + {term: '請う', source: '請うて', rule: 'v5', reasons: ['-te']}, + {term: '乞う', source: '乞うて', rule: 'v5', reasons: ['-te']}, + {term: '恋う', source: '恋うて', rule: 'v5', reasons: ['-te']}, + {term: '問う', source: '問うて', rule: 'v5', reasons: ['-te']}, + {term: '負う', source: '負うて', rule: 'v5', reasons: ['-te']}, + {term: '沿う', source: '沿うて', rule: 'v5', reasons: ['-te']}, + {term: '添う', source: '添うて', rule: 'v5', reasons: ['-te']}, + {term: '副う', source: '副うて', rule: 'v5', reasons: ['-te']}, + {term: '厭う', source: '厭うて', rule: 'v5', reasons: ['-te']}, + + {term: 'おう', source: 'おうた', rule: 'v5', reasons: ['past']}, + {term: 'こう', source: 'こうた', rule: 'v5', reasons: ['past']}, + {term: 'そう', source: 'そうた', rule: 'v5', reasons: ['past']}, + {term: 'とう', source: 'とうた', rule: 'v5', reasons: ['past']}, + {term: '請う', source: '請うた', rule: 'v5', reasons: ['past']}, + {term: '乞う', source: '乞うた', rule: 'v5', reasons: ['past']}, + {term: '恋う', source: '恋うた', rule: 'v5', reasons: ['past']}, + {term: '問う', source: '問うた', rule: 'v5', reasons: ['past']}, + {term: '負う', source: '負うた', rule: 'v5', reasons: ['past']}, + {term: '沿う', source: '沿うた', rule: 'v5', reasons: ['past']}, + {term: '添う', source: '添うた', rule: 'v5', reasons: ['past']}, + {term: '副う', source: '副うた', rule: 'v5', reasons: ['past']}, + {term: '厭う', source: '厭うた', rule: 'v5', reasons: ['past']}, + + {term: 'おう', source: 'おうたら', rule: 'v5', reasons: ['-tara']}, + {term: 'こう', source: 'こうたら', rule: 'v5', reasons: ['-tara']}, + {term: 'そう', source: 'そうたら', rule: 'v5', reasons: ['-tara']}, + {term: 'とう', source: 'とうたら', rule: 'v5', reasons: ['-tara']}, + {term: '請う', source: '請うたら', rule: 'v5', reasons: ['-tara']}, + {term: '乞う', source: '乞うたら', rule: 'v5', reasons: ['-tara']}, + {term: '恋う', source: '恋うたら', rule: 'v5', reasons: ['-tara']}, + {term: '問う', source: '問うたら', rule: 'v5', reasons: ['-tara']}, + {term: '負う', source: '負うたら', rule: 'v5', reasons: ['-tara']}, + {term: '沿う', source: '沿うたら', rule: 'v5', reasons: ['-tara']}, + {term: '添う', source: '添うたら', rule: 'v5', reasons: ['-tara']}, + {term: '副う', source: '副うたら', rule: 'v5', reasons: ['-tara']}, + {term: '厭う', source: '厭うたら', rule: 'v5', reasons: ['-tara']}, + + {term: 'おう', source: 'おうたり', rule: 'v5', reasons: ['-tari']}, + {term: 'こう', source: 'こうたり', rule: 'v5', reasons: ['-tari']}, + {term: 'そう', source: 'そうたり', rule: 'v5', reasons: ['-tari']}, + {term: 'とう', source: 'とうたり', rule: 'v5', reasons: ['-tari']}, + {term: '請う', source: '請うたり', rule: 'v5', reasons: ['-tari']}, + {term: '乞う', source: '乞うたり', rule: 'v5', reasons: ['-tari']}, + {term: '恋う', source: '恋うたり', rule: 'v5', reasons: ['-tari']}, + {term: '問う', source: '問うたり', rule: 'v5', reasons: ['-tari']}, + {term: '負う', source: '負うたり', rule: 'v5', reasons: ['-tari']}, + {term: '沿う', source: '沿うたり', rule: 'v5', reasons: ['-tari']}, + {term: '添う', source: '添うたり', rule: 'v5', reasons: ['-tari']}, + {term: '副う', source: '副うたり', rule: 'v5', reasons: ['-tari']}, + {term: '厭う', source: '厭うたり', rule: 'v5', reasons: ['-tari']}, + + // Combinations + {term: '抱き抱える', source: '抱き抱えていなければ', rule: 'v1', reasons: ['-te', 'progressive or perfect', 'negative', '-ba']}, + {term: '抱きかかえる', source: '抱きかかえていなければ', rule: 'v1', reasons: ['-te', 'progressive or perfect', 'negative', '-ba']}, + {term: '打ち込む', source: '打ち込んでいませんでした', rule: 'v5', reasons: ['-te', 'progressive or perfect', 'polite past negative']}, + {term: '食べる', source: '食べさせられたくなかった', rule: 'v1', reasons: ['causative', 'potential or passive', '-tai', 'negative', 'past']} + ] + }, + { + valid: false, + tests: [ + {term: 'する', source: 'すます', rule: 'vs'}, + {term: 'する', source: 'すた', rule: 'vs'}, + {term: 'する', source: 'すました', rule: 'vs'}, + {term: 'する', source: 'すて', rule: 'vs'}, + {term: 'する', source: 'すれる', rule: 'vs'}, + {term: 'する', source: 'すせる', rule: 'vs'}, + {term: 'する', source: 'すせられる', rule: 'vs'}, + {term: 'する', source: 'すろ', rule: 'vs'}, + {term: 'する', source: 'すない', rule: 'vs'}, + {term: 'する', source: 'すません', rule: 'vs'}, + {term: 'する', source: 'すなかった', rule: 'vs'}, + {term: 'する', source: 'すませんでした', rule: 'vs'}, + {term: 'する', source: 'すなくて', rule: 'vs'}, + {term: 'する', source: 'すれない', rule: 'vs'}, + {term: 'する', source: 'すせない', rule: 'vs'}, + {term: 'する', source: 'すせられない', rule: 'vs'}, + + {term: 'くる', source: 'くます', rule: 'vk'}, + {term: 'くる', source: 'くた', rule: 'vk'}, + {term: 'くる', source: 'くました', rule: 'vk'}, + {term: 'くる', source: 'くて', rule: 'vk'}, + {term: 'くる', source: 'くられる', rule: 'vk'}, + {term: 'くる', source: 'くられる', rule: 'vk'}, + {term: 'くる', source: 'くさせる', rule: 'vk'}, + {term: 'くる', source: 'くさせられる', rule: 'vk'}, + {term: 'くる', source: 'くい', rule: 'vk'}, + {term: 'くる', source: 'くない', rule: 'vk'}, + {term: 'くる', source: 'くません', rule: 'vk'}, + {term: 'くる', source: 'くなかった', rule: 'vk'}, + {term: 'くる', source: 'くませんでした', rule: 'vk'}, + {term: 'くる', source: 'くなくて', rule: 'vk'}, + {term: 'くる', source: 'くられない', rule: 'vk'}, + {term: 'くる', source: 'くられない', rule: 'vk'}, + {term: 'くる', source: 'くさせない', rule: 'vk'}, + {term: 'くる', source: 'くさせられない', rule: 'vk'} + ] + } + ]; + + const vm = new VM(); + vm.execute(['bg/js/deinflector.js']); + const [Deinflector] = vm.get(['Deinflector']); + + const deinflectionReasions = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'ext', 'bg/lang/deinflect.json'))); + const deinflector = new Deinflector(deinflectionReasions); + + for (const {valid, tests} of data) { + for (const {source, term, rule, reasons} of tests) { + const {has, reasons: actualReasons} = hasTermReasons(Deinflector, deinflector, source, term, rule, reasons); + let message = `${source} ${valid ? 'does not have' : 'has'} term candidate ${JSON.stringify(term)}`; + if (typeof rule !== 'undefined') { + message += ` with rule ${JSON.stringify(rule)}`; + } + if (typeof reasons !== 'undefined') { + message += (typeof rule !== 'undefined' ? ' and' : ' with'); + message += ` reasons ${JSON.stringify(reasons)}`; + } + if (actualReasons !== null) { + message += ` (actual reasons: ${JSON.stringify(actualReasons)})`; + } + assert.strictEqual(has, valid, message); + } + } +} + + +function main() { + testDeinflections(); +} + + +if (require.main === module) { testMain(main); } |