aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/js/language/ja/japanese-transforms.js99
-rw-r--r--test/language/japanese-transforms.test.js49
2 files changed, 138 insertions, 10 deletions
diff --git a/ext/js/language/ja/japanese-transforms.js b/ext/js/language/ja/japanese-transforms.js
index f789d007..2d688ce5 100644
--- a/ext/js/language/ja/japanese-transforms.js
+++ b/ext/js/language/ja/japanese-transforms.js
@@ -117,6 +117,10 @@ export const japaneseTransforms = {
name: 'Intermediate -te endings for progressive or perfect tense',
isDictionaryForm: false
},
+ '-ba': {
+ name: 'Intermediate -ba endings for conditional contraction',
+ isDictionaryForm: false
+ },
'adv': {
name: 'Intermediate -ku endings for adverbs',
isDictionaryForm: false
@@ -138,16 +142,70 @@ export const japaneseTransforms = {
}
],
rules: [
- suffixInflection('ければ', 'い', [], ['adj-i']),
- suffixInflection('えば', 'う', [], ['v5']),
- suffixInflection('けば', 'く', [], ['v5']),
- suffixInflection('げば', 'ぐ', [], ['v5']),
- suffixInflection('せば', 'す', [], ['v5']),
- suffixInflection('てば', 'つ', [], ['v5']),
- suffixInflection('ねば', 'ぬ', [], ['v5']),
- suffixInflection('べば', 'ぶ', [], ['v5']),
- suffixInflection('めば', 'む', [], ['v5']),
- suffixInflection('れば', 'る', [], ['v1', 'v5', 'vk', 'vs', 'vz'])
+ suffixInflection('ければ', 'い', ['-ba'], ['adj-i']),
+ suffixInflection('えば', 'う', ['-ba'], ['v5']),
+ suffixInflection('けば', 'く', ['-ba'], ['v5']),
+ suffixInflection('げば', 'ぐ', ['-ba'], ['v5']),
+ suffixInflection('せば', 'す', ['-ba'], ['v5']),
+ suffixInflection('てば', 'つ', ['-ba'], ['v5']),
+ suffixInflection('ねば', 'ぬ', ['-ba'], ['v5']),
+ suffixInflection('べば', 'ぶ', ['-ba'], ['v5']),
+ suffixInflection('めば', 'む', ['-ba'], ['v5']),
+ suffixInflection('れば', 'る', ['-ba'], ['v1', 'v5', 'vk', 'vs', 'vz'])
+ ]
+ },
+ {
+ name: '-ya',
+ description: 'Conditional (Contraction)',
+ i18n: [
+ {
+ language: 'ja',
+ name: '~ゃ',
+ description: '仮定形の縮約系'
+ }
+ ],
+ rules: [
+ suffixInflection('けりゃ', 'ければ', [], ['-ba']),
+ suffixInflection('きゃ', 'ければ', [], ['-ba']),
+ suffixInflection('や', 'えば', [], ['-ba']),
+ suffixInflection('きゃ', 'けば', [], ['-ba']),
+ suffixInflection('ぎゃ', 'げば', [], ['-ba']),
+ suffixInflection('しゃ', 'せば', [], ['-ba']),
+ suffixInflection('ちゃ', 'てば', [], ['-ba']),
+ suffixInflection('にゃ', 'ねば', [], ['-ba']),
+ suffixInflection('びゃ', 'べば', [], ['-ba']),
+ suffixInflection('みゃ', 'めば', [], ['-ba']),
+ suffixInflection('りゃ', 'れば', [], ['-ba'])
+ ]
+ },
+ {
+ name: '-cha',
+ description: 'Contraction of -teha',
+ i18n: [
+ {
+ language: 'ja',
+ name: '~ちゃ',
+ description: '「~テハ」の縮約系'
+ }
+ ],
+ rules: [
+ suffixInflection('ちゃ', 'る', ['v5'], ['v1']),
+ suffixInflection('いじゃ', 'ぐ', ['v5'], ['v5']),
+ suffixInflection('いちゃ', 'く', ['v5'], ['v5']),
+ suffixInflection('しちゃ', 'す', ['v5'], ['v5']),
+ suffixInflection('っちゃ', 'う', ['v5'], ['v5']),
+ suffixInflection('っちゃ', 'く', ['v5'], ['v5']),
+ suffixInflection('っちゃ', 'つ', ['v5'], ['v5']),
+ suffixInflection('っちゃ', 'る', ['v5'], ['v5']),
+ suffixInflection('んじゃ', 'ぬ', ['v5'], ['v5']),
+ suffixInflection('んじゃ', 'ぶ', ['v5'], ['v5']),
+ suffixInflection('んじゃ', 'む', ['v5'], ['v5']),
+ suffixInflection('じちゃ', 'ずる', ['v5'], ['vz']),
+ suffixInflection('しちゃ', 'する', ['v5'], ['vs']),
+ suffixInflection('為ちゃ', '為る', ['v5'], ['vs']),
+ suffixInflection('きちゃ', 'くる', ['v5'], ['vk']),
+ suffixInflection('来ちゃ', '来る', ['v5'], ['vk']),
+ suffixInflection('來ちゃ', '來る', ['v5'], ['vk'])
]
},
{
@@ -451,6 +509,27 @@ export const japaneseTransforms = {
]
},
{
+ name: '-n',
+ rules: [
+ suffixInflection('ん', 'る', [], ['v1']),
+ suffixInflection('かん', 'く', [], ['v5']),
+ suffixInflection('がん', 'ぐ', [], ['v5']),
+ suffixInflection('さん', 'す', [], ['v5']),
+ suffixInflection('たん', 'つ', [], ['v5']),
+ suffixInflection('なん', 'ぬ', [], ['v5']),
+ suffixInflection('ばん', 'ぶ', [], ['v5']),
+ suffixInflection('まん', 'む', [], ['v5']),
+ suffixInflection('らん', 'る', [], ['v5']),
+ suffixInflection('わん', 'う', [], ['v5']),
+ suffixInflection('ぜん', 'ずる', [], ['vz']),
+ suffixInflection('せん', 'する', [], ['vs']),
+ suffixInflection('為ん', '為る', [], ['vs']),
+ suffixInflection('こん', 'くる', [], ['vk']),
+ suffixInflection('来ん', '来る', [], ['vk']),
+ suffixInflection('來ん', '來る', [], ['vk'])
+ ]
+ },
+ {
name: '-mu',
rules: [
suffixInflection('む', 'る', [], ['v1']),
diff --git a/test/language/japanese-transforms.test.js b/test/language/japanese-transforms.test.js
index 567cd239..45697a19 100644
--- a/test/language/japanese-transforms.test.js
+++ b/test/language/japanese-transforms.test.js
@@ -69,6 +69,8 @@ const tests = [
{term: '食べる', source: '食べまして', rule: 'v1', reasons: ['polite', '-te']},
{term: '食べる', source: '食べれば', rule: 'v1', reasons: ['-ba']},
+ {term: '食べる', source: '食べりゃ', rule: 'v1', reasons: ['-ba', '-ya']},
+ {term: '食べる', source: '食べちゃ', rule: 'v1', reasons: ['-cha']},
{term: '食べる', source: '食べちゃう', rule: 'v1', reasons: ['-chau']},
{term: '食べる', source: '食べちまう', rule: 'v1', reasons: ['-chimau']},
{term: '食べる', source: '食べなさい', rule: 'v1', reasons: ['-nasai']},
@@ -79,6 +81,7 @@ const tests = [
{term: '食べる', source: '食べたり', rule: 'v1', reasons: ['-tari']},
{term: '食べる', source: '食べず', rule: 'v1', reasons: ['-zu']},
{term: '食べる', source: '食べぬ', rule: 'v1', reasons: ['-nu']},
+ {term: '食べる', source: '食べん', rule: 'v1', reasons: ['-n']},
{term: '食べる', source: '食べざる', rule: 'v1', reasons: ['-zaru']},
{term: '食べる', source: '食べねば', rule: 'v1', reasons: ['-neba']},
{term: '食べる', source: '食べ', rule: 'v1d', reasons: ['masu stem']},
@@ -120,6 +123,8 @@ const tests = [
{term: '買う', source: '買いまして', rule: 'v5', reasons: ['polite', '-te']},
{term: '買う', source: '買えば', rule: 'v5', reasons: ['-ba']},
+ {term: '買う', source: '買や', rule: 'v5', reasons: ['-ba', '-ya']},
+ {term: '買う', source: '買っちゃ', rule: 'v5', reasons: ['-cha']},
{term: '買う', source: '買っちゃう', rule: 'v5', reasons: ['-chau']},
{term: '買う', source: '買っちまう', rule: 'v5', reasons: ['-chimau']},
{term: '買う', source: '買いなさい', rule: 'v5', reasons: ['-nasai']},
@@ -130,6 +135,7 @@ const tests = [
{term: '買う', source: '買ったり', rule: 'v5', reasons: ['-tari']},
{term: '買う', source: '買わず', rule: 'v5', reasons: ['-zu']},
{term: '買う', source: '買わぬ', rule: 'v5', reasons: ['-nu']},
+ {term: '買う', source: '買わん', rule: 'v5', reasons: ['-n']},
{term: '買う', source: '買わざる', rule: 'v5', reasons: ['-zaru']},
{term: '買う', source: '買わねば', rule: 'v5', reasons: ['-neba']},
{term: '買う', source: '買い', rule: 'v5', reasons: ['masu stem']},
@@ -171,6 +177,8 @@ const tests = [
{term: '行く', source: '行きまして', rule: 'v5', reasons: ['polite', '-te']},
{term: '行く', source: '行けば', rule: 'v5', reasons: ['-ba']},
+ {term: '行く', source: '行きゃ', rule: 'v5', reasons: ['-ba', '-ya']},
+ {term: '行く', source: '行っちゃ', rule: 'v5', reasons: ['-cha']},
{term: '行く', source: '行っちゃう', rule: 'v5', reasons: ['-chau']},
{term: '行く', source: '行っちまう', rule: 'v5', reasons: ['-chimau']},
{term: '行く', source: '行きなさい', rule: 'v5', reasons: ['-nasai']},
@@ -181,6 +189,7 @@ const tests = [
{term: '行く', source: '行いたり', rule: 'v5', reasons: ['-tari']},
{term: '行く', source: '行かず', rule: 'v5', reasons: ['-zu']},
{term: '行く', source: '行かぬ', rule: 'v5', reasons: ['-nu']},
+ {term: '行く', source: '行かん', rule: 'v5', reasons: ['-n']},
{term: '行く', source: '行かざる', rule: 'v5', reasons: ['-zaru']},
{term: '行く', source: '行かねば', rule: 'v5', reasons: ['-neba']},
{term: '行く', source: '行き', rule: 'v5', reasons: ['masu stem']},
@@ -222,6 +231,8 @@ const tests = [
{term: '泳ぐ', source: '泳ぎまして', rule: 'v5', reasons: ['polite', '-te']},
{term: '泳ぐ', source: '泳げば', rule: 'v5', reasons: ['-ba']},
+ {term: '泳ぐ', source: '泳ぎゃ', rule: 'v5', reasons: ['-ba', '-ya']},
+ {term: '泳ぐ', source: '泳いじゃ', rule: 'v5', reasons: ['-cha']},
{term: '泳ぐ', source: '泳いじゃう', rule: 'v5', reasons: ['-chau']},
{term: '泳ぐ', source: '泳いじまう', rule: 'v5', reasons: ['-chimau']},
{term: '泳ぐ', source: '泳ぎなさい', rule: 'v5', reasons: ['-nasai']},
@@ -232,6 +243,7 @@ const tests = [
{term: '泳ぐ', source: '泳いだり', rule: 'v5', reasons: ['-tari']},
{term: '泳ぐ', source: '泳がず', rule: 'v5', reasons: ['-zu']},
{term: '泳ぐ', source: '泳がぬ', rule: 'v5', reasons: ['-nu']},
+ {term: '泳ぐ', source: '泳がん', rule: 'v5', reasons: ['-n']},
{term: '泳ぐ', source: '泳がざる', rule: 'v5', reasons: ['-zaru']},
{term: '泳ぐ', source: '泳がねば', rule: 'v5', reasons: ['-neba']},
{term: '泳ぐ', source: '泳ぎ', rule: 'v5', reasons: ['masu stem']},
@@ -272,6 +284,8 @@ const tests = [
{term: '話す', source: '話しまして', rule: 'v5', reasons: ['polite', '-te']},
{term: '話す', source: '話せば', rule: 'v5', reasons: ['-ba']},
+ {term: '話す', source: '話しゃ', rule: 'v5', reasons: ['-ba', '-ya']},
+ {term: '話す', source: '話しちゃ', rule: 'v5', reasons: ['-cha']},
{term: '話す', source: '話しちゃう', rule: 'v5', reasons: ['-chau']},
{term: '話す', source: '話しちまう', rule: 'v5', reasons: ['-chimau']},
{term: '話す', source: '話しなさい', rule: 'v5', reasons: ['-nasai']},
@@ -282,6 +296,7 @@ const tests = [
{term: '話す', source: '話したり', rule: 'v5', reasons: ['-tari']},
{term: '話す', source: '話さず', rule: 'v5', reasons: ['-zu']},
{term: '話す', source: '話さぬ', rule: 'v5', reasons: ['-nu']},
+ {term: '話す', source: '話さん', rule: 'v5', reasons: ['-n']},
{term: '話す', source: '話さざる', rule: 'v5', reasons: ['-zaru']},
{term: '話す', source: '話さねば', rule: 'v5', reasons: ['-neba']},
{term: '話す', source: '話し', rule: 'v5', reasons: ['masu stem']},
@@ -323,6 +338,8 @@ const tests = [
{term: '待つ', source: '待ちまして', rule: 'v5', reasons: ['polite', '-te']},
{term: '待つ', source: '待てば', rule: 'v5', reasons: ['-ba']},
+ {term: '待つ', source: '待ちゃ', rule: 'v5', reasons: ['-ba', '-ya']},
+ {term: '待つ', source: '待っちゃ', rule: 'v5', reasons: ['-cha']},
{term: '待つ', source: '待っちゃう', rule: 'v5', reasons: ['-chau']},
{term: '待つ', source: '待っちまう', rule: 'v5', reasons: ['-chimau']},
{term: '待つ', source: '待ちなさい', rule: 'v5', reasons: ['-nasai']},
@@ -333,6 +350,7 @@ const tests = [
{term: '待つ', source: '待ったり', rule: 'v5', reasons: ['-tari']},
{term: '待つ', source: '待たず', rule: 'v5', reasons: ['-zu']},
{term: '待つ', source: '待たぬ', rule: 'v5', reasons: ['-nu']},
+ {term: '待つ', source: '待たん', rule: 'v5', reasons: ['-n']},
{term: '待つ', source: '待たざる', rule: 'v5', reasons: ['-zaru']},
{term: '待つ', source: '待たねば', rule: 'v5', reasons: ['-neba']},
{term: '待つ', source: '待ち', rule: 'v5', reasons: ['masu stem']},
@@ -374,6 +392,8 @@ const tests = [
{term: '死ぬ', source: '死にまして', rule: 'v5', reasons: ['polite', '-te']},
{term: '死ぬ', source: '死ねば', rule: 'v5', reasons: ['-ba']},
+ {term: '死ぬ', source: '死にゃ', rule: 'v5', reasons: ['-ba', '-ya']},
+ {term: '死ぬ', source: '死んじゃ', rule: 'v5', reasons: ['-cha']},
{term: '死ぬ', source: '死んじゃう', rule: 'v5', reasons: ['-chau']},
{term: '死ぬ', source: '死んじまう', rule: 'v5', reasons: ['-chimau']},
{term: '死ぬ', source: '死になさい', rule: 'v5', reasons: ['-nasai']},
@@ -384,6 +404,7 @@ const tests = [
{term: '死ぬ', source: '死んだり', rule: 'v5', reasons: ['-tari']},
{term: '死ぬ', source: '死なず', rule: 'v5', reasons: ['-zu']},
{term: '死ぬ', source: '死なぬ', rule: 'v5', reasons: ['-nu']},
+ {term: '死ぬ', source: '死なん', rule: 'v5', reasons: ['-n']},
{term: '死ぬ', source: '死なざる', rule: 'v5', reasons: ['-zaru']},
{term: '死ぬ', source: '死なねば', rule: 'v5', reasons: ['-neba']},
{term: '死ぬ', source: '死に', rule: 'v5', reasons: ['masu stem']},
@@ -424,6 +445,8 @@ const tests = [
{term: '遊ぶ', source: '遊びまして', rule: 'v5', reasons: ['polite', '-te']},
{term: '遊ぶ', source: '遊べば', rule: 'v5', reasons: ['-ba']},
+ {term: '遊ぶ', source: '遊びゃ', rule: 'v5', reasons: ['-ba', '-ya']},
+ {term: '遊ぶ', source: '遊んじゃ', rule: 'v5', reasons: ['-cha']},
{term: '遊ぶ', source: '遊んじゃう', rule: 'v5', reasons: ['-chau']},
{term: '遊ぶ', source: '遊んじまう', rule: 'v5', reasons: ['-chimau']},
{term: '遊ぶ', source: '遊びなさい', rule: 'v5', reasons: ['-nasai']},
@@ -434,6 +457,7 @@ const tests = [
{term: '遊ぶ', source: '遊んだり', rule: 'v5', reasons: ['-tari']},
{term: '遊ぶ', source: '遊ばず', rule: 'v5', reasons: ['-zu']},
{term: '遊ぶ', source: '遊ばぬ', rule: 'v5', reasons: ['-nu']},
+ {term: '遊ぶ', source: '遊ばん', rule: 'v5', reasons: ['-n']},
{term: '遊ぶ', source: '遊ばざる', rule: 'v5', reasons: ['-zaru']},
{term: '遊ぶ', source: '遊ばねば', rule: 'v5', reasons: ['-neba']},
{term: '遊ぶ', source: '遊び', rule: 'v5', reasons: ['masu stem']},
@@ -474,6 +498,8 @@ const tests = [
{term: '飲む', source: '飲みまして', rule: 'v5', reasons: ['polite', '-te']},
{term: '飲む', source: '飲めば', rule: 'v5', reasons: ['-ba']},
+ {term: '飲む', source: '飲みゃ', rule: 'v5', reasons: ['-ba', '-ya']},
+ {term: '飲む', source: '飲んじゃ', rule: 'v5', reasons: ['-cha']},
{term: '飲む', source: '飲んじゃう', rule: 'v5', reasons: ['-chau']},
{term: '飲む', source: '飲んじまう', rule: 'v5', reasons: ['-chimau']},
{term: '飲む', source: '飲みなさい', rule: 'v5', reasons: ['-nasai']},
@@ -484,6 +510,7 @@ const tests = [
{term: '飲む', source: '飲んだり', rule: 'v5', reasons: ['-tari']},
{term: '飲む', source: '飲まず', rule: 'v5', reasons: ['-zu']},
{term: '飲む', source: '飲まぬ', rule: 'v5', reasons: ['-nu']},
+ {term: '飲む', source: '飲まん', rule: 'v5', reasons: ['-n']},
{term: '飲む', source: '飲まざる', rule: 'v5', reasons: ['-zaru']},
{term: '飲む', source: '飲まねば', rule: 'v5', reasons: ['-neba']},
{term: '飲む', source: '飲み', rule: 'v5', reasons: ['masu stem']},
@@ -524,6 +551,8 @@ const tests = [
{term: '作る', source: '作りまして', rule: 'v5', reasons: ['polite', '-te']},
{term: '作る', source: '作れば', rule: 'v5', reasons: ['-ba']},
+ {term: '作る', source: '作りゃ', rule: 'v5', reasons: ['-ba', '-ya']},
+ {term: '作る', source: '作っちゃ', rule: 'v5', reasons: ['-cha']},
{term: '作る', source: '作っちゃう', rule: 'v5', reasons: ['-chau']},
{term: '作る', source: '作っちまう', rule: 'v5', reasons: ['-chimau']},
{term: '作る', source: '作りなさい', rule: 'v5', reasons: ['-nasai']},
@@ -534,6 +563,7 @@ const tests = [
{term: '作る', source: '作ったり', rule: 'v5', reasons: ['-tari']},
{term: '作る', source: '作らず', rule: 'v5', reasons: ['-zu']},
{term: '作る', source: '作らぬ', rule: 'v5', reasons: ['-nu']},
+ {term: '作る', source: '作らん', rule: 'v5', reasons: ['-n']},
{term: '作る', source: '作らざる', rule: 'v5', reasons: ['-zaru']},
{term: '作る', source: '作らねば', rule: 'v5', reasons: ['-neba']},
{term: '作る', source: '作り', rule: 'v5', reasons: ['masu stem']},
@@ -579,6 +609,8 @@ const tests = [
{term: '為る', source: '為まして', rule: 'vs', reasons: ['polite', '-te']},
{term: '為る', source: '為れば', rule: 'vs', reasons: ['-ba']},
+ {term: '為る', source: '為りゃ', rule: 'vs', reasons: ['-ba', '-ya']},
+ {term: '為る', source: '為ちゃ', rule: 'vs', reasons: ['-cha']},
{term: '為る', source: '為ちゃう', rule: 'vs', reasons: ['-chau']},
{term: '為る', source: '為ちまう', rule: 'vs', reasons: ['-chimau']},
{term: '為る', source: '為なさい', rule: 'vs', reasons: ['-nasai']},
@@ -589,6 +621,7 @@ const tests = [
{term: '為る', source: '為たり', rule: 'vs', reasons: ['-tari']},
{term: '為る', source: '為ず', rule: 'vs', reasons: ['-zu']},
{term: '為る', source: '為ぬ', rule: 'vs', reasons: ['-nu']},
+ {term: '為る', source: '為ん', rule: 'vs', reasons: ['-n']},
{term: '為る', source: '為ざる', rule: 'vs', reasons: ['-zaru']},
{term: '為る', source: '為ねば', rule: 'vs', reasons: ['-neba']},
// ['masu stem']
@@ -631,6 +664,8 @@ const tests = [
{term: 'する', source: 'しまして', rule: 'vs', reasons: ['polite', '-te']},
{term: 'する', source: 'すれば', rule: 'vs', reasons: ['-ba']},
+ {term: 'する', source: 'すりゃ', rule: 'vs', reasons: ['-ba', '-ya']},
+ {term: 'する', source: 'しちゃ', rule: 'vs', reasons: ['-cha']},
{term: 'する', source: 'しちゃう', rule: 'vs', reasons: ['-chau']},
{term: 'する', source: 'しちまう', rule: 'vs', reasons: ['-chimau']},
{term: 'する', source: 'しなさい', rule: 'vs', reasons: ['-nasai']},
@@ -641,11 +676,13 @@ const tests = [
{term: 'する', source: 'したり', rule: 'vs', reasons: ['-tari']},
{term: 'する', source: 'せず', rule: 'vs', reasons: ['-zu']},
{term: 'する', source: 'せぬ', rule: 'vs', reasons: ['-nu']},
+ {term: 'する', source: 'せん', rule: 'vs', reasons: ['-n']},
{term: 'する', source: 'せざる', rule: 'vs', reasons: ['-zaru']},
{term: 'する', source: 'せねば', rule: 'vs', reasons: ['-neba']},
{term: 'する', source: 'し', rule: 'vs', reasons: ['masu stem']},
{term: 'する', source: 'しましょう', rule: 'vs', reasons: ['polite', 'volitional']},
{term: 'する', source: 'しよう', rule: 'vs', reasons: ['volitional']},
+ {term: 'する', source: 'しなきゃ', rule: 'vs', reasons: ['negative', '-ba', '-ya']},
// ['causative passive']
{term: 'する', source: 'しとく', rule: 'vs', reasons: ['-toku']},
{term: 'する', source: 'している', rule: 'vs', reasons: ['-te', 'progressive or perfect']},
@@ -677,6 +714,8 @@ const tests = [
{term: '来る', source: '来まして', rule: 'vk', reasons: ['polite', '-te']},
{term: '来る', source: '来れば', rule: 'vk', reasons: ['-ba']},
+ {term: '来る', source: '来りゃ', rule: 'vk', reasons: ['-ba', '-ya']},
+ {term: '来る', source: '来ちゃ', rule: 'vk', reasons: ['-cha']},
{term: '来る', source: '来ちゃう', rule: 'vk', reasons: ['-chau']},
{term: '来る', source: '来ちまう', rule: 'vk', reasons: ['-chimau']},
{term: '来る', source: '来なさい', rule: 'vk', reasons: ['-nasai']},
@@ -687,6 +726,7 @@ const tests = [
{term: '来る', source: '来たり', rule: 'vk', reasons: ['-tari']},
{term: '来る', source: '来ず', rule: 'vk', reasons: ['-zu']},
{term: '来る', source: '来ぬ', rule: 'vk', reasons: ['-nu']},
+ {term: '来る', source: '来ん', rule: 'vk', reasons: ['-n']},
{term: '来る', source: '来ざる', rule: 'vk', reasons: ['-zaru']},
{term: '来る', source: '来ねば', rule: 'vk', reasons: ['-neba']},
{term: '来る', source: '来', rule: 'vk', reasons: ['masu stem']},
@@ -723,6 +763,8 @@ const tests = [
{term: '來る', source: '來まして', rule: 'vk', reasons: ['polite', '-te']},
{term: '來る', source: '來れば', rule: 'vk', reasons: ['-ba']},
+ {term: '來る', source: '來りゃ', rule: 'vk', reasons: ['-ba', '-ya']},
+ {term: '來る', source: '來ちゃ', rule: 'vk', reasons: ['-cha']},
{term: '來る', source: '來ちゃう', rule: 'vk', reasons: ['-chau']},
{term: '來る', source: '來ちまう', rule: 'vk', reasons: ['-chimau']},
{term: '來る', source: '來なさい', rule: 'vk', reasons: ['-nasai']},
@@ -733,6 +775,7 @@ const tests = [
{term: '來る', source: '來たり', rule: 'vk', reasons: ['-tari']},
{term: '來る', source: '來ず', rule: 'vk', reasons: ['-zu']},
{term: '來る', source: '來ぬ', rule: 'vk', reasons: ['-nu']},
+ {term: '來る', source: '來ん', rule: 'vk', reasons: ['-n']},
{term: '來る', source: '來ざる', rule: 'vk', reasons: ['-zaru']},
{term: '來る', source: '來ねば', rule: 'vk', reasons: ['-neba']},
{term: '來る', source: '來', rule: 'vk', reasons: ['masu stem']},
@@ -769,6 +812,8 @@ const tests = [
{term: 'くる', source: 'きまして', rule: 'vk', reasons: ['polite', '-te']},
{term: 'くる', source: 'くれば', rule: 'vk', reasons: ['-ba']},
+ {term: 'くる', source: 'くりゃ', rule: 'vk', reasons: ['-ba', '-ya']},
+ {term: 'くる', source: 'きちゃ', rule: 'vk', reasons: ['-cha']},
{term: 'くる', source: 'きちゃう', rule: 'vk', reasons: ['-chau']},
{term: 'くる', source: 'きちまう', rule: 'vk', reasons: ['-chimau']},
{term: 'くる', source: 'きなさい', rule: 'vk', reasons: ['-nasai']},
@@ -779,6 +824,7 @@ const tests = [
{term: 'くる', source: 'きたり', rule: 'vk', reasons: ['-tari']},
{term: 'くる', source: 'こず', rule: 'vk', reasons: ['-zu']},
{term: 'くる', source: 'こぬ', rule: 'vk', reasons: ['-nu']},
+ {term: 'くる', source: 'こん', rule: 'vk', reasons: ['-n']},
{term: 'くる', source: 'こざる', rule: 'vk', reasons: ['-zaru']},
{term: 'くる', source: 'こねば', rule: 'vk', reasons: ['-neba']},
{term: 'くる', source: 'き', rule: 'vk', reasons: ['masu stem']},
@@ -827,6 +873,8 @@ const tests = [
{term: '論ずる', source: '論じまして', rule: 'vz', reasons: ['polite', '-te']},
{term: '論ずる', source: '論ずれば', rule: 'vz', reasons: ['-ba']},
+ {term: '論ずる', source: '論ずりゃ', rule: 'vz', reasons: ['-ba', '-ya']},
+ {term: '論ずる', source: '論じちゃ', rule: 'vz', reasons: ['-cha']},
{term: '論ずる', source: '論じちゃう', rule: 'vz', reasons: ['-chau']},
{term: '論ずる', source: '論じちまう', rule: 'vz', reasons: ['-chimau']},
{term: '論ずる', source: '論じなさい', rule: 'vz', reasons: ['-nasai']},
@@ -837,6 +885,7 @@ const tests = [
{term: '論ずる', source: '論じたり', rule: 'vz', reasons: ['-tari']},
{term: '論ずる', source: '論ぜず', rule: 'vz', reasons: ['-zu']},
{term: '論ずる', source: '論ぜぬ', rule: 'vz', reasons: ['-nu']},
+ {term: '論ずる', source: '論ぜん', rule: 'vz', reasons: ['-n']},
{term: '論ずる', source: '論ぜざる', rule: 'vz', reasons: ['-zaru']},
{term: '論ずる', source: '論ぜねば', rule: 'vz', reasons: ['-neba']},
// ['masu stem']