diff --git a/benches/japanese-language-transformer.bench.js b/benches/japanese-language-transformer.bench.js index a2ed8626f7..e07ee7336f 100644 --- a/benches/japanese-language-transformer.bench.js +++ b/benches/japanese-language-transformer.bench.js @@ -50,6 +50,7 @@ describe('japanese language transformer', () => { '食べられる', '食べられる', '食べさせる', + '食べさす', '食べさせられる', '食べろ', '食べない', @@ -60,6 +61,7 @@ describe('japanese language transformer', () => { '食べられない', '食べられない', '食べさせない', + '食べささない', '食べさせられない', '食べ', '食べれば', @@ -103,6 +105,7 @@ describe('japanese language transformer', () => { 'こられる', 'こられる', 'こさせる', + 'こさす', 'こさせられる', 'こい', 'こない', @@ -113,6 +116,7 @@ describe('japanese language transformer', () => { 'こられない', 'こられない', 'こさせない', + 'こささない', 'こさせられない', 'くるな', 'きまして', @@ -154,6 +158,7 @@ describe('japanese language transformer', () => { 'せられる', 'される', 'させる', + 'さす', 'せさせる', 'させられる', 'せさせられる', @@ -167,6 +172,7 @@ describe('japanese language transformer', () => { 'されない', 'させない', 'せさせない', + 'ささない', 'させられない', 'せさせられない', 'するな', diff --git a/ext/js/language/ja/japanese-transforms.js b/ext/js/language/ja/japanese-transforms.js index 56949eae83..82727022aa 100644 --- a/ext/js/language/ja/japanese-transforms.js +++ b/ext/js/language/ja/japanese-transforms.js @@ -76,7 +76,7 @@ const conditions = { }, ], isDictionaryForm: true, - subConditions: ['v5d', 'v5m'], + subConditions: ['v5d', 'v5m', 'v5s'], }, 'v5d': { name: 'Godan verb, dictionary form', @@ -92,6 +92,10 @@ const conditions = { name: 'Godan verb, polite (masu) form', isDictionaryForm: false, }, + 'v5s': { + name: 'Godan verb, short causative form', + isDictionaryForm: false, + }, 'vk': { name: 'Kuru verb', i18n: [ @@ -898,6 +902,41 @@ export const japaneseTransforms = { suffixInflection('來させる', '來る', ['v1'], ['vk']), ], }, + 'short causative': { + name: 'short causative', + description: 'Contraction of the causative form.\n' + + 'Describes the intention to make someone do something.\n' + + 'Usage: Attach す to the irrealis form (mizenkei) of godan verbs.\n' + + 'Attach さす to the dictionary form (shuushikei) of ichidan verbs.\n' + + 'する becomes さす, くる becomes こさす.\n' + + 'It itself conjugates as an godan verb.', + i18n: [ + { + language: 'ja', + name: '使役形の短縮形', + description: 'だれかにある行為をさせる意を表わす時の言い方。例、「食べさす」の「さす」。', + }, + ], + rules: [ + suffixInflection('さす', 'る', ['v5s'], ['v1']), + suffixInflection('かす', 'く', ['v5s'], ['v5']), + suffixInflection('がす', 'ぐ', ['v5s'], ['v5']), + suffixInflection('さす', 'す', ['v5s'], ['v5']), + suffixInflection('たす', 'つ', ['v5s'], ['v5']), + suffixInflection('なす', 'ぬ', ['v5s'], ['v5']), + suffixInflection('ばす', 'ぶ', ['v5s'], ['v5']), + suffixInflection('ます', 'む', ['v5s'], ['v5']), + suffixInflection('らす', 'る', ['v5s'], ['v5']), + suffixInflection('わす', 'う', ['v5s'], ['v5']), + suffixInflection('じさす', 'ずる', ['v5s'], ['vz']), + suffixInflection('ぜさす', 'ずる', ['v5s'], ['vz']), + suffixInflection('さす', 'する', ['v5s'], ['vs']), + suffixInflection('為す', '為る', ['v5s'], ['vs']), + suffixInflection('こさす', 'くる', ['v5s'], ['vk']), + suffixInflection('来さす', '来る', ['v5s'], ['vk']), + suffixInflection('來さす', '來る', ['v5s'], ['vk']), + ], + }, 'imperative': { name: 'imperative', description: '1. To give orders.\n' + @@ -1132,15 +1171,15 @@ export const japaneseTransforms = { ], rules: [ suffixInflection('ます', 'る', ['v1'], ['v1']), - suffixInflection('います', 'う', ['v5m'], ['v5d']), - suffixInflection('きます', 'く', ['v5m'], ['v5d']), - suffixInflection('ぎます', 'ぐ', ['v5m'], ['v5d']), - suffixInflection('します', 'す', ['v5m'], ['v5d']), - suffixInflection('ちます', 'つ', ['v5m'], ['v5d']), - suffixInflection('にます', 'ぬ', ['v5m'], ['v5d']), - suffixInflection('びます', 'ぶ', ['v5m'], ['v5d']), - suffixInflection('みます', 'む', ['v5m'], ['v5d']), - suffixInflection('ります', 'る', ['v5m'], ['v5d']), + suffixInflection('います', 'う', ['v5m'], ['v5d', 'v5s']), + suffixInflection('きます', 'く', ['v5m'], ['v5d', 'v5s']), + suffixInflection('ぎます', 'ぐ', ['v5m'], ['v5d', 'v5s']), + suffixInflection('します', 'す', ['v5m'], ['v5d', 'v5s']), + suffixInflection('ちます', 'つ', ['v5m'], ['v5d', 'v5s']), + suffixInflection('にます', 'ぬ', ['v5m'], ['v5d', 'v5s']), + suffixInflection('びます', 'ぶ', ['v5m'], ['v5d', 'v5s']), + suffixInflection('みます', 'む', ['v5m'], ['v5d', 'v5s']), + suffixInflection('ります', 'る', ['v5m'], ['v5d', 'v5s']), suffixInflection('じます', 'ずる', ['vz'], ['vz']), suffixInflection('します', 'する', ['vs'], ['vs']), suffixInflection('為ます', '為る', ['vs'], ['vs']), diff --git a/test/language/japanese-transforms.test.js b/test/language/japanese-transforms.test.js index 1b3532f761..4c77f8a737 100644 --- a/test/language/japanese-transforms.test.js +++ b/test/language/japanese-transforms.test.js @@ -58,6 +58,8 @@ const tests = [ {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: ['short causative']}, + {term: '食べる', source: '食べさします', rule: 'v1', reasons: ['short causative', '-masu']}, {term: '食べる', source: '食べさせられる', rule: 'v1', reasons: ['causative', 'potential or passive']}, {term: '食べる', source: '食べろ', rule: 'v1', reasons: ['imperative']}, {term: '食べる', source: '食べない', rule: 'v1', reasons: ['negative']}, @@ -68,6 +70,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '食べる', source: '食べさせられない', rule: 'v1', reasons: ['causative', 'potential or passive', 'negative']}, {term: '食べる', source: '食べるな', rule: 'v1', reasons: ['imperative negative']}, {term: '食べる', source: '食べまして', rule: 'v1', reasons: ['-masu', '-te']}, @@ -118,6 +121,8 @@ const tests = [ {term: '買う', source: '買える', rule: 'v5', reasons: ['potential']}, {term: '買う', source: '買われる', rule: 'v5', reasons: ['passive']}, {term: '買う', source: '買わせる', rule: 'v5', reasons: ['causative']}, + {term: '買う', source: '買わす', rule: 'v5', reasons: ['short causative']}, + {term: '買う', source: '買わします', rule: 'v5', reasons: ['short causative', '-masu']}, {term: '買う', source: '買わせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, {term: '買う', source: '買え', rule: 'v5', reasons: ['imperative']}, {term: '買う', source: '買わない', rule: 'v5', reasons: ['negative']}, @@ -128,6 +133,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '買う', source: '買わせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, {term: '買う', source: '買うな', rule: 'v5', reasons: ['imperative negative']}, {term: '買う', source: '買いまして', rule: 'v5', reasons: ['-masu', '-te']}, @@ -177,6 +183,8 @@ const tests = [ {term: '行く', source: '行ける', rule: 'v5', reasons: ['potential']}, {term: '行く', source: '行かれる', rule: 'v5', reasons: ['passive']}, {term: '行く', source: '行かせる', rule: 'v5', reasons: ['causative']}, + {term: '行く', source: '行かす', rule: 'v5', reasons: ['short causative']}, + {term: '行く', source: '行かします', rule: 'v5', reasons: ['short causative', '-masu']}, {term: '行く', source: '行かせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, {term: '行く', source: '行け', rule: 'v5', reasons: ['imperative']}, {term: '行く', source: '行かない', rule: 'v5', reasons: ['negative']}, @@ -187,6 +195,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '行く', source: '行かせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, {term: '行く', source: '行くな', rule: 'v5', reasons: ['imperative negative']}, {term: '行く', source: '行きまして', rule: 'v5', reasons: ['-masu', '-te']}, @@ -236,6 +245,8 @@ const tests = [ {term: '泳ぐ', source: '泳げる', rule: 'v5', reasons: ['potential']}, {term: '泳ぐ', source: '泳がれる', rule: 'v5', reasons: ['passive']}, {term: '泳ぐ', source: '泳がせる', rule: 'v5', reasons: ['causative']}, + {term: '泳ぐ', source: '泳がす', rule: 'v5', reasons: ['short causative']}, + {term: '泳ぐ', source: '泳がします', rule: 'v5', reasons: ['short causative', '-masu']}, {term: '泳ぐ', source: '泳がせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, {term: '泳ぐ', source: '泳げ', rule: 'v5', reasons: ['imperative']}, {term: '泳ぐ', source: '泳がない', rule: 'v5', reasons: ['negative']}, @@ -246,6 +257,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '泳ぐ', source: '泳がせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, {term: '泳ぐ', source: '泳ぐな', rule: 'v5', reasons: ['imperative negative']}, {term: '泳ぐ', source: '泳ぎまして', rule: 'v5', reasons: ['-masu', '-te']}, @@ -294,6 +306,8 @@ const tests = [ {term: '話す', source: '話せる', rule: 'v5', reasons: ['potential']}, {term: '話す', source: '話される', rule: 'v5', reasons: ['passive']}, {term: '話す', source: '話させる', rule: 'v5', reasons: ['causative']}, + {term: '話す', source: '話さす', rule: 'v5', reasons: ['short causative']}, + {term: '話す', source: '話さします', rule: 'v5', reasons: ['short causative', '-masu']}, {term: '話す', source: '話させられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, {term: '話す', source: '話せ', rule: 'v5', reasons: ['imperative']}, {term: '話す', source: '話さない', rule: 'v5', reasons: ['negative']}, @@ -304,6 +318,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '話す', source: '話させられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, {term: '話す', source: '話すな', rule: 'v5', reasons: ['imperative negative']}, {term: '話す', source: '話しまして', rule: 'v5', reasons: ['-masu', '-te']}, @@ -356,6 +371,8 @@ const tests = [ {term: '待つ', source: '待てる', rule: 'v5', reasons: ['potential']}, {term: '待つ', source: '待たれる', rule: 'v5', reasons: ['passive']}, {term: '待つ', source: '待たせる', rule: 'v5', reasons: ['causative']}, + {term: '待つ', source: '待たす', rule: 'v5', reasons: ['short causative']}, + {term: '待つ', source: '待たします', rule: 'v5', reasons: ['short causative', '-masu']}, {term: '待つ', source: '待たせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, {term: '待つ', source: '待て', rule: 'v5', reasons: ['imperative']}, {term: '待つ', source: '待たない', rule: 'v5', reasons: ['negative']}, @@ -366,6 +383,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '待つ', source: '待たせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, {term: '待つ', source: '待つな', rule: 'v5', reasons: ['imperative negative']}, {term: '待つ', source: '待ちまして', rule: 'v5', reasons: ['-masu', '-te']}, @@ -415,6 +433,8 @@ const tests = [ {term: '死ぬ', source: '死ねる', rule: 'v5', reasons: ['potential']}, {term: '死ぬ', source: '死なれる', rule: 'v5', reasons: ['passive']}, {term: '死ぬ', source: '死なせる', rule: 'v5', reasons: ['causative']}, + {term: '死ぬ', source: '死なす', rule: 'v5', reasons: ['short causative']}, + {term: '死ぬ', source: '死なします', rule: 'v5', reasons: ['short causative', '-masu']}, {term: '死ぬ', source: '死なせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, {term: '死ぬ', source: '死ね', rule: 'v5', reasons: ['imperative']}, {term: '死ぬ', source: '死なない', rule: 'v5', reasons: ['negative']}, @@ -425,6 +445,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '死ぬ', source: '死なせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, {term: '死ぬ', source: '死ぬな', rule: 'v5', reasons: ['imperative negative']}, {term: '死ぬ', source: '死にまして', rule: 'v5', reasons: ['-masu', '-te']}, @@ -473,6 +494,8 @@ const tests = [ {term: '遊ぶ', source: '遊べる', rule: 'v5', reasons: ['potential']}, {term: '遊ぶ', source: '遊ばれる', rule: 'v5', reasons: ['passive']}, {term: '遊ぶ', source: '遊ばせる', rule: 'v5', reasons: ['causative']}, + {term: '遊ぶ', source: '遊ばす', rule: 'v5', reasons: ['short causative']}, + {term: '遊ぶ', source: '遊ばします', rule: 'v5', reasons: ['short causative', '-masu']}, {term: '遊ぶ', source: '遊ばせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, {term: '遊ぶ', source: '遊べ', rule: 'v5', reasons: ['imperative']}, {term: '遊ぶ', source: '遊ばない', rule: 'v5', reasons: ['negative']}, @@ -483,6 +506,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '遊ぶ', source: '遊ばせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, {term: '遊ぶ', source: '遊ぶな', rule: 'v5', reasons: ['imperative negative']}, {term: '遊ぶ', source: '遊びまして', rule: 'v5', reasons: ['-masu', '-te']}, @@ -531,6 +555,8 @@ const tests = [ {term: '飲む', source: '飲める', rule: 'v5', reasons: ['potential']}, {term: '飲む', source: '飲まれる', rule: 'v5', reasons: ['passive']}, {term: '飲む', source: '飲ませる', rule: 'v5', reasons: ['causative']}, + {term: '飲む', source: '飲ます', rule: 'v5', reasons: ['short causative']}, + {term: '飲む', source: '飲まします', rule: 'v5', reasons: ['short causative', '-masu']}, {term: '飲む', source: '飲ませられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, {term: '飲む', source: '飲め', rule: 'v5', reasons: ['imperative']}, {term: '飲む', source: '飲まない', rule: 'v5', reasons: ['negative']}, @@ -541,6 +567,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '飲む', source: '飲ませられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, {term: '飲む', source: '飲むな', rule: 'v5', reasons: ['imperative negative']}, {term: '飲む', source: '飲みまして', rule: 'v5', reasons: ['-masu', '-te']}, @@ -589,6 +616,8 @@ const tests = [ {term: '作る', source: '作れる', rule: 'v5', reasons: ['potential']}, {term: '作る', source: '作られる', rule: 'v5', reasons: ['passive']}, {term: '作る', source: '作らせる', rule: 'v5', reasons: ['causative']}, + {term: '作る', source: '作らす', rule: 'v5', reasons: ['short causative']}, + {term: '作る', source: '作らします', rule: 'v5', reasons: ['short causative', '-masu']}, {term: '作る', source: '作らせられる', rule: 'v5', reasons: ['causative', 'potential or passive']}, {term: '作る', source: '作れ', rule: 'v5', reasons: ['imperative']}, {term: '作る', source: '作らない', rule: 'v5', reasons: ['negative']}, @@ -599,6 +628,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '作る', source: '作らせられない', rule: 'v5', reasons: ['causative', 'potential or passive', 'negative']}, {term: '作る', source: '作るな', rule: 'v5', reasons: ['imperative negative']}, {term: '作る', source: '作りまして', rule: 'v5', reasons: ['-masu', '-te']}, @@ -649,6 +679,8 @@ const tests = [ {term: '為る', source: '為れる', rule: 'vs', reasons: ['passive']}, {term: '為る', source: '為せる', rule: 'vs', reasons: ['causative']}, {term: '為る', source: '為させる', rule: 'vs', reasons: ['causative']}, + {term: '為る', source: '為す', rule: 'vs', reasons: ['short causative']}, + {term: '為る', source: '為します', rule: 'vs', reasons: ['short causative', '-masu']}, {term: '為る', source: '為せられる', rule: 'vs', reasons: ['causative', 'potential or passive']}, {term: '為る', source: '為させられる', rule: 'vs', reasons: ['causative', 'potential or passive']}, {term: '為る', source: '為ろ', rule: 'vs', reasons: ['imperative']}, @@ -661,6 +693,7 @@ const tests = [ {term: '為る', source: '為れない', rule: 'vs', reasons: ['passive', 'negative']}, {term: '為る', source: '為せない', rule: 'vs', reasons: ['causative', 'negative']}, {term: '為る', source: '為させない', rule: 'vs', reasons: ['causative', 'negative']}, + {term: '為る', source: '為さない', rule: 'vs', reasons: ['short causative', 'negative']}, {term: '為る', source: '為せられない', rule: 'vs', reasons: ['causative', 'potential or passive', 'negative']}, {term: '為る', source: '為させられない', rule: 'vs', reasons: ['causative', 'potential or passive', 'negative']}, {term: '為る', source: '為るな', rule: 'vs', reasons: ['imperative negative']}, @@ -710,6 +743,8 @@ const tests = [ {term: 'する', source: 'される', rule: 'vs', reasons: ['passive']}, {term: 'する', source: 'させる', rule: 'vs', reasons: ['causative']}, {term: 'する', source: 'せさせる', rule: 'vs', reasons: ['causative']}, + {term: 'する', source: 'さす', rule: 'vs', reasons: ['short causative']}, + {term: 'する', source: 'さします', rule: 'vs', reasons: ['short causative', '-masu']}, {term: 'する', source: 'させられる', rule: 'vs', reasons: ['causative', 'potential or passive']}, {term: 'する', source: 'せさせられる', rule: 'vs', reasons: ['causative', 'potential or passive']}, {term: 'する', source: 'しろ', rule: 'vs', reasons: ['imperative']}, @@ -722,6 +757,7 @@ const tests = [ {term: 'する', source: 'されない', rule: 'vs', reasons: ['passive', 'negative']}, {term: 'する', source: 'させない', rule: 'vs', reasons: ['causative', 'negative']}, {term: 'する', source: 'せさせない', rule: 'vs', reasons: ['causative', 'negative']}, + {term: 'する', source: 'ささない', rule: 'vs', reasons: ['short causative', 'negative']}, {term: 'する', source: 'させられない', rule: 'vs', reasons: ['causative', 'potential or passive', 'negative']}, {term: 'する', source: 'せさせられない', rule: 'vs', reasons: ['causative', 'potential or passive', 'negative']}, {term: 'する', source: 'するな', rule: 'vs', reasons: ['imperative negative']}, @@ -769,6 +805,8 @@ const tests = [ {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: ['short causative']}, + {term: '来る', source: '来さします', rule: 'vk', reasons: ['short causative', '-masu']}, {term: '来る', source: '来させられる', rule: 'vk', reasons: ['causative', 'potential or passive']}, {term: '来る', source: '来い', rule: 'vk', reasons: ['imperative']}, {term: '来る', source: '来ない', rule: 'vk', reasons: ['negative']}, @@ -779,6 +817,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '来る', source: '来させられない', rule: 'vk', reasons: ['causative', 'potential or passive', 'negative']}, {term: '来る', source: '来るな', rule: 'vk', reasons: ['imperative negative']}, {term: '来る', source: '来まして', rule: 'vk', reasons: ['-masu', '-te']}, @@ -824,6 +863,8 @@ const tests = [ {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: ['short causative']}, + {term: '來る', source: '來さします', rule: 'vk', reasons: ['short causative', '-masu']}, {term: '來る', source: '來させられる', rule: 'vk', reasons: ['causative', 'potential or passive']}, {term: '來る', source: '來い', rule: 'vk', reasons: ['imperative']}, {term: '來る', source: '來ない', rule: 'vk', reasons: ['negative']}, @@ -834,6 +875,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: '來る', source: '來させられない', rule: 'vk', reasons: ['causative', 'potential or passive', 'negative']}, {term: '來る', source: '來るな', rule: 'vk', reasons: ['imperative negative']}, {term: '來る', source: '來まして', rule: 'vk', reasons: ['-masu', '-te']}, @@ -879,6 +921,8 @@ const tests = [ {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: ['short causative']}, + {term: 'くる', source: 'こさします', rule: 'vk', reasons: ['short causative', '-masu']}, {term: 'くる', source: 'こさせられる', rule: 'vk', reasons: ['causative', 'potential or passive']}, {term: 'くる', source: 'こい', rule: 'vk', reasons: ['imperative']}, {term: 'くる', source: 'こない', rule: 'vk', reasons: ['negative']}, @@ -889,6 +933,7 @@ const tests = [ {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: ['short causative', 'negative']}, {term: 'くる', source: 'こさせられない', rule: 'vk', reasons: ['causative', 'potential or passive', 'negative']}, {term: 'くる', source: 'くるな', rule: 'vk', reasons: ['imperative negative']}, {term: 'くる', source: 'きまして', rule: 'vk', reasons: ['-masu', '-te']}, @@ -942,6 +987,10 @@ const tests = [ {term: '論ずる', source: '論ぜされる', rule: 'vz', reasons: ['passive']}, {term: '論ずる', source: '論じさせる', rule: 'vz', reasons: ['causative']}, {term: '論ずる', source: '論ぜさせる', rule: 'vz', reasons: ['causative']}, + {term: '論ずる', source: '論じさす', rule: 'vz', reasons: ['short causative']}, + {term: '論ずる', source: '論ぜさす', rule: 'vz', reasons: ['short causative']}, + {term: '論ずる', source: '論じさします', rule: 'vz', reasons: ['short causative', '-masu']}, + {term: '論ずる', source: '論ぜさします', rule: 'vz', reasons: ['short causative', '-masu']}, {term: '論ずる', source: '論じさせられる', rule: 'vz', reasons: ['causative', 'potential or passive']}, {term: '論ずる', source: '論ぜさせられる', rule: 'vz', reasons: ['causative', 'potential or passive']}, {term: '論ずる', source: '論じろ', rule: 'vz', reasons: ['imperative']}, @@ -955,6 +1004,8 @@ const tests = [ {term: '論ずる', source: '論ぜされない', rule: 'vz', reasons: ['passive', 'negative']}, {term: '論ずる', source: '論じさせない', rule: 'vz', reasons: ['causative', 'negative']}, {term: '論ずる', source: '論ぜさせない', rule: 'vz', reasons: ['causative', 'negative']}, + {term: '論ずる', source: '論じささない', rule: 'vz', reasons: ['short causative', 'negative']}, + {term: '論ずる', source: '論ぜささない', rule: 'vz', reasons: ['short causative', 'negative']}, {term: '論ずる', source: '論じさせられない', rule: 'vz', reasons: ['causative', 'potential or passive', 'negative']}, {term: '論ずる', source: '論ぜさせられない', rule: 'vz', reasons: ['causative', 'potential or passive', 'negative']}, {term: '論ずる', source: '論ずるな', rule: 'vz', reasons: ['imperative negative']}, @@ -1189,8 +1240,8 @@ const tests = [ valid: false, tests: [ {term: '食べる', source: '食べて', rule: null, reasons: ['-te', '-teiru', 'continuative']}, - {term: 'なる', source: 'なりません', rule: null, reasons: ['-masu', 'potential', '-n']}, + {term: '食べる', source: '食べさせられる', rule: null, reasons: ['short causative', 'potential', 'potential or passive']}, ], }, // Kansai-ben