diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/js/language/es/spanish-transforms.js | 490 |
1 files changed, 456 insertions, 34 deletions
diff --git a/ext/js/language/es/spanish-transforms.js b/ext/js/language/es/spanish-transforms.js index 54022fd5..dc4fc5a5 100644 --- a/ext/js/language/es/spanish-transforms.js +++ b/ext/js/language/es/spanish-transforms.js @@ -38,6 +38,19 @@ function addAccent(char) { export const spanishTransforms = { language: 'es', conditions: { + n: { + name: 'Noun', + isDictionaryForm: true, + subConditions: ['ns', 'np'], + }, + np: { + name: 'Noun plural', + isDictionaryForm: false, + }, + ns: { + name: 'Noun singular', + isDictionaryForm: false, + }, v: { name: 'Verb', isDictionaryForm: true, @@ -45,28 +58,15 @@ export const spanishTransforms = { }, v_ar: { name: '-ar verb', - isDictionaryForm: true, + isDictionaryForm: false, }, v_er: { name: '-er verb', - isDictionaryForm: true, + isDictionaryForm: false, }, v_ir: { name: '-ir verb', - isDictionaryForm: true, - }, - n: { - name: 'Noun', - isDictionaryForm: true, - subConditions: ['ns', 'np'], - }, - np: { - name: 'Noun plural', - isDictionaryForm: true, - }, - ns: { - name: 'Noun singular', - isDictionaryForm: true, + isDictionaryForm: false, }, adj: { name: 'Adjective', @@ -97,26 +97,26 @@ export const spanishTransforms = { description: 'Present indicative form of a verb', rules: [ // -ar verbs - suffixInflection('o', 'ar', ['v'], ['v']), - suffixInflection('as', 'ar', ['v'], ['v']), - suffixInflection('a', 'ar', ['v'], ['v']), - suffixInflection('amos', 'ar', ['v'], ['v']), - suffixInflection('áis', 'ar', ['v'], ['v']), - suffixInflection('an', 'ar', ['v'], ['v']), + suffixInflection('o', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('as', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('a', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('amos', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('áis', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('an', 'ar', ['v_ar'], ['v_ar']), // -er verbs - suffixInflection('o', 'er', ['v'], ['v']), - suffixInflection('es', 'er', ['v'], ['v']), - suffixInflection('e', 'er', ['v'], ['v']), - suffixInflection('emos', 'er', ['v'], ['v']), - suffixInflection('éis', 'er', ['v'], ['v']), - suffixInflection('en', 'er', ['v'], ['v']), + suffixInflection('o', 'er', ['v_er'], ['v_er']), + suffixInflection('es', 'er', ['v_er'], ['v_er']), + suffixInflection('e', 'er', ['v_er'], ['v_er']), + suffixInflection('emos', 'er', ['v_er'], ['v_er']), + suffixInflection('éis', 'er', ['v_er'], ['v_er']), + suffixInflection('en', 'er', ['v_er'], ['v_er']), // -ir verbs - suffixInflection('o', 'ir', ['v'], ['v']), - suffixInflection('es', 'ir', ['v'], ['v']), - suffixInflection('e', 'ir', ['v'], ['v']), - suffixInflection('imos', 'ir', ['v'], ['v']), - suffixInflection('ís', 'ir', ['v'], ['v']), - suffixInflection('en', 'ir', ['v'], ['v']), + suffixInflection('o', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('es', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('e', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('imos', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('ís', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('en', 'ir', ['v_ir'], ['v_ir']), // -tener verbs suffixInflection('tengo', 'tener', ['v'], ['v']), suffixInflection('tienes', 'tener', ['v'], ['v']), @@ -167,5 +167,427 @@ export const spanishTransforms = { wholeWordInflection('han', 'haber', ['v'], ['v']), ], }, + 'preterite': { + name: 'preterite', + description: 'Preterite (past) form of a verb', + rules: [ + // -ar verbs + suffixInflection('é', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('aste', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('ó', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('amos', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('asteis', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('aron', 'ar', ['v_ar'], ['v_ar']), + // -er verbs + suffixInflection('í', 'er', ['v_er'], ['v_er']), + suffixInflection('iste', 'er', ['v_er'], ['v_er']), + suffixInflection('ió', 'er', ['v_er'], ['v_er']), + suffixInflection('imos', 'er', ['v_er'], ['v_er']), + suffixInflection('isteis', 'er', ['v_er'], ['v_er']), + suffixInflection('ieron', 'er', ['v_er'], ['v_er']), + // -ir verbs + suffixInflection('í', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('iste', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('ió', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('imos', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('isteis', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('ieron', 'ir', ['v_ir'], ['v_ir']), + // -car, -gar, -zar verbs + suffixInflection('qué', 'car', ['v'], ['v']), + suffixInflection('gué', 'gar', ['v'], ['v']), + suffixInflection('cé', 'zar', ['v'], ['v']), + // -uir verbs + suffixInflection('í', 'uir', ['v'], ['v']), + // Verbs with irregular forms + wholeWordInflection('fui', 'ser', ['v'], ['v']), + wholeWordInflection('fuiste', 'ser', ['v'], ['v']), + wholeWordInflection('fue', 'ser', ['v'], ['v']), + wholeWordInflection('fuimos', 'ser', ['v'], ['v']), + wholeWordInflection('fuisteis', 'ser', ['v'], ['v']), + wholeWordInflection('fueron', 'ser', ['v'], ['v']), + wholeWordInflection('fui', 'ir', ['v'], ['v']), + wholeWordInflection('fuiste', 'ir', ['v'], ['v']), + wholeWordInflection('fue', 'ir', ['v'], ['v']), + wholeWordInflection('fuimos', 'ir', ['v'], ['v']), + wholeWordInflection('fuisteis', 'ir', ['v'], ['v']), + wholeWordInflection('fueron', 'ir', ['v'], ['v']), + wholeWordInflection('di', 'dar', ['v'], ['v']), + wholeWordInflection('diste', 'dar', ['v'], ['v']), + wholeWordInflection('dio', 'dar', ['v'], ['v']), + wholeWordInflection('dimos', 'dar', ['v'], ['v']), + wholeWordInflection('disteis', 'dar', ['v'], ['v']), + wholeWordInflection('dieron', 'dar', ['v'], ['v']), + suffixInflection('hice', 'hacer', ['v'], ['v']), + suffixInflection('hiciste', 'hacer', ['v'], ['v']), + suffixInflection('hizo', 'hacer', ['v'], ['v']), + suffixInflection('hicimos', 'hacer', ['v'], ['v']), + suffixInflection('hicisteis', 'hacer', ['v'], ['v']), + suffixInflection('hicieron', 'hacer', ['v'], ['v']), + suffixInflection('puse', 'poner', ['v'], ['v']), + suffixInflection('pusiste', 'poner', ['v'], ['v']), + suffixInflection('puso', 'poner', ['v'], ['v']), + suffixInflection('pusimos', 'poner', ['v'], ['v']), + suffixInflection('pusisteis', 'poner', ['v'], ['v']), + suffixInflection('pusieron', 'poner', ['v'], ['v']), + suffixInflection('dije', 'decir', ['v'], ['v']), + suffixInflection('dijiste', 'decir', ['v'], ['v']), + suffixInflection('dijo', 'decir', ['v'], ['v']), + suffixInflection('dijimos', 'decir', ['v'], ['v']), + suffixInflection('dijisteis', 'decir', ['v'], ['v']), + suffixInflection('dijeron', 'decir', ['v'], ['v']), + suffixInflection('vine', 'venir', ['v'], ['v']), + suffixInflection('viniste', 'venir', ['v'], ['v']), + suffixInflection('vino', 'venir', ['v'], ['v']), + suffixInflection('vinimos', 'venir', ['v'], ['v']), + suffixInflection('vinisteis', 'venir', ['v'], ['v']), + suffixInflection('vinieron', 'venir', ['v'], ['v']), + wholeWordInflection('quise', 'querer', ['v'], ['v']), + wholeWordInflection('quisiste', 'querer', ['v'], ['v']), + wholeWordInflection('quiso', 'querer', ['v'], ['v']), + wholeWordInflection('quisimos', 'querer', ['v'], ['v']), + wholeWordInflection('quisisteis', 'querer', ['v'], ['v']), + wholeWordInflection('quisieron', 'querer', ['v'], ['v']), + suffixInflection('tuve', 'tener', ['v'], ['v']), + suffixInflection('tuviste', 'tener', ['v'], ['v']), + suffixInflection('tuvo', 'tener', ['v'], ['v']), + suffixInflection('tuvimos', 'tener', ['v'], ['v']), + suffixInflection('tuvisteis', 'tener', ['v'], ['v']), + suffixInflection('tuvieron', 'tener', ['v'], ['v']), + wholeWordInflection('pude', 'poder', ['v'], ['v']), + wholeWordInflection('pudiste', 'poder', ['v'], ['v']), + wholeWordInflection('pudo', 'poder', ['v'], ['v']), + wholeWordInflection('pudimos', 'poder', ['v'], ['v']), + wholeWordInflection('pudisteis', 'poder', ['v'], ['v']), + wholeWordInflection('pudieron', 'poder', ['v'], ['v']), + wholeWordInflection('supe', 'saber', ['v'], ['v']), + wholeWordInflection('supiste', 'saber', ['v'], ['v']), + wholeWordInflection('supo', 'saber', ['v'], ['v']), + wholeWordInflection('supimos', 'saber', ['v'], ['v']), + wholeWordInflection('supisteis', 'saber', ['v'], ['v']), + wholeWordInflection('supieron', 'saber', ['v'], ['v']), + wholeWordInflection('estuve', 'estar', ['v'], ['v']), + wholeWordInflection('estuviste', 'estar', ['v'], ['v']), + wholeWordInflection('estuvo', 'estar', ['v'], ['v']), + wholeWordInflection('estuvimos', 'estar', ['v'], ['v']), + wholeWordInflection('estuvisteis', 'estar', ['v'], ['v']), + wholeWordInflection('estuvieron', 'estar', ['v'], ['v']), + wholeWordInflection('anduve', 'andar', ['v'], ['v']), + wholeWordInflection('anduviste', 'andar', ['v'], ['v']), + wholeWordInflection('anduvo', 'andar', ['v'], ['v']), + wholeWordInflection('anduvimos', 'andar', ['v'], ['v']), + wholeWordInflection('anduvisteis', 'andar', ['v'], ['v']), + wholeWordInflection('anduvieron', 'andar', ['v'], ['v']), + ], + }, + 'imperfect': { + name: 'imperfect', + description: 'Imperfect form of a verb', + rules: [ + // -ar verbs + suffixInflection('aba', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('abas', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('aba', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('ábamos', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('abais', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('aban', 'ar', ['v_ar'], ['v_ar']), + // -er verbs + suffixInflection('ía', 'er', ['v_er'], ['v_er']), + suffixInflection('ías', 'er', ['v_er'], ['v_er']), + suffixInflection('ía', 'er', ['v_er'], ['v_er']), + suffixInflection('íamos', 'er', ['v_er'], ['v_er']), + suffixInflection('íais', 'er', ['v_er'], ['v_er']), + suffixInflection('ían', 'er', ['v_er'], ['v_er']), + // -ir verbs + suffixInflection('ía', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('ías', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('ía', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('íamos', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('íais', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('ían', 'ir', ['v_ir'], ['v_ir']), + // -ir verbs with stem changes + suffixInflection('eía', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('eías', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('eía', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('eíamos', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('eíais', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('eían', 'ir', ['v_ir'], ['v_ir']), + // irregular verbs ir, ser, ver + wholeWordInflection('era', 'ser', ['v'], ['v']), + wholeWordInflection('eras', 'ser', ['v'], ['v']), + wholeWordInflection('era', 'ser', ['v'], ['v']), + wholeWordInflection('éramos', 'ser', ['v'], ['v']), + wholeWordInflection('erais', 'ser', ['v'], ['v']), + wholeWordInflection('eran', 'ser', ['v'], ['v']), + wholeWordInflection('iba', 'ir', ['v'], ['v']), + wholeWordInflection('ibas', 'ir', ['v'], ['v']), + wholeWordInflection('iba', 'ir', ['v'], ['v']), + wholeWordInflection('íbamos', 'ir', ['v'], ['v']), + wholeWordInflection('ibais', 'ir', ['v'], ['v']), + wholeWordInflection('iban', 'ir', ['v'], ['v']), + wholeWordInflection('veía', 'ver', ['v'], ['v']), + wholeWordInflection('veías', 'ver', ['v'], ['v']), + wholeWordInflection('veía', 'ver', ['v'], ['v']), + wholeWordInflection('veíamos', 'ver', ['v'], ['v']), + wholeWordInflection('veíais', 'ver', ['v'], ['v']), + wholeWordInflection('veían', 'ver', ['v'], ['v']), + ], + }, + 'progressive': { + name: 'progressive', + description: 'Progressive form of a verb', + rules: [ + suffixInflection('ando', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('iendo', 'er', ['v_er'], ['v_er']), + suffixInflection('iendo', 'ir', ['v_ir'], ['v_ir']), + ], + }, + 'imperative': { + name: 'imperative', + description: 'Imperative form of a verb', + rules: [ + // -ar verbs + suffixInflection('a', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('ad', 'ar', ['v_ar'], ['v_ar']), + // -er verbs + suffixInflection('e', 'er', ['v_er'], ['v_er']), + suffixInflection('ed', 'er', ['v_er'], ['v_er']), + // -ir verbs + suffixInflection('e', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('id', 'ir', ['v_ir'], ['v_ir']), + // irregular verbs + wholeWordInflection('diga', 'decir', ['v'], ['v']), + // irregular imperative verbs + wholeWordInflection('sé', 'ser', ['v'], ['v']), + wholeWordInflection('ve', 'ir', ['v'], ['v']), + wholeWordInflection('ten', 'tener', ['v'], ['v']), + wholeWordInflection('ven', 'vener', ['v'], ['v']), + wholeWordInflection('haz', 'hacer', ['v'], ['v']), + wholeWordInflection('di', 'decir', ['v'], ['v']), + wholeWordInflection('pon', 'poner', ['v'], ['v']), + wholeWordInflection('sal', 'salir', ['v'], ['v']), + // TODO: negative commands, nosotros & vosotros commands + ], + }, + 'conditional': { + name: 'conditional', + description: 'Conditional form of a verb', + rules: [ + suffixInflection('ía', '', ['v'], ['v']), + suffixInflection('ías', '', ['v'], ['v']), + suffixInflection('ía', '', ['v'], ['v']), + suffixInflection('íamos', '', ['v'], ['v']), + suffixInflection('íais', '', ['v'], ['v']), + suffixInflection('ían', '', ['v'], ['v']), + // irregular verbs + wholeWordInflection('diría', 'decir', ['v'], ['v']), + wholeWordInflection('dirías', 'decir', ['v'], ['v']), + wholeWordInflection('diría', 'decir', ['v'], ['v']), + wholeWordInflection('diríamos', 'decir', ['v'], ['v']), + wholeWordInflection('diríais', 'decir', ['v'], ['v']), + wholeWordInflection('dirían', 'decir', ['v'], ['v']), + wholeWordInflection('haría', 'hacer', ['v'], ['v']), + wholeWordInflection('harías', 'hacer', ['v'], ['v']), + wholeWordInflection('haría', 'hacer', ['v'], ['v']), + wholeWordInflection('haríamos', 'hacer', ['v'], ['v']), + wholeWordInflection('haríais', 'hacer', ['v'], ['v']), + wholeWordInflection('harían', 'hacer', ['v'], ['v']), + wholeWordInflection('pondría', 'poner', ['v'], ['v']), + wholeWordInflection('pondrías', 'poner', ['v'], ['v']), + wholeWordInflection('pondría', 'poner', ['v'], ['v']), + wholeWordInflection('pondríamos', 'poner', ['v'], ['v']), + wholeWordInflection('pondríais', 'poner', ['v'], ['v']), + wholeWordInflection('pondrían', 'poner', ['v'], ['v']), + wholeWordInflection('saldría', 'salir', ['v'], ['v']), + wholeWordInflection('saldrías', 'salir', ['v'], ['v']), + wholeWordInflection('saldría', 'salir', ['v'], ['v']), + wholeWordInflection('saldríamos', 'salir', ['v'], ['v']), + wholeWordInflection('saldríais', 'salir', ['v'], ['v']), + wholeWordInflection('saldrían', 'salir', ['v'], ['v']), + wholeWordInflection('tendría', 'tener', ['v'], ['v']), + wholeWordInflection('tendrías', 'tener', ['v'], ['v']), + wholeWordInflection('tendría', 'tener', ['v'], ['v']), + wholeWordInflection('tendríamos', 'tener', ['v'], ['v']), + wholeWordInflection('tendríais', 'tener', ['v'], ['v']), + wholeWordInflection('tendrían', 'tener', ['v'], ['v']), + wholeWordInflection('vendría', 'venir', ['v'], ['v']), + wholeWordInflection('vendrías', 'venir', ['v'], ['v']), + wholeWordInflection('vendría', 'venir', ['v'], ['v']), + wholeWordInflection('vendríamos', 'venir', ['v'], ['v']), + wholeWordInflection('vendríais', 'venir', ['v'], ['v']), + wholeWordInflection('vendrían', 'venir', ['v'], ['v']), + wholeWordInflection('querría', 'querer', ['v'], ['v']), + wholeWordInflection('querrías', 'querer', ['v'], ['v']), + wholeWordInflection('querría', 'querer', ['v'], ['v']), + wholeWordInflection('querríamos', 'querer', ['v'], ['v']), + wholeWordInflection('querríais', 'querer', ['v'], ['v']), + wholeWordInflection('querrían', 'querer', ['v'], ['v']), + wholeWordInflection('podría', 'poder', ['v'], ['v']), + wholeWordInflection('podrías', 'poder', ['v'], ['v']), + wholeWordInflection('podría', 'poder', ['v'], ['v']), + wholeWordInflection('podríamos', 'poder', ['v'], ['v']), + wholeWordInflection('podríais', 'poder', ['v'], ['v']), + wholeWordInflection('podrían', 'poder', ['v'], ['v']), + wholeWordInflection('sabría', 'saber', ['v'], ['v']), + wholeWordInflection('sabrías', 'saber', ['v'], ['v']), + wholeWordInflection('sabría', 'saber', ['v'], ['v']), + wholeWordInflection('sabríamos', 'saber', ['v'], ['v']), + wholeWordInflection('sabríais', 'saber', ['v'], ['v']), + wholeWordInflection('sabrían', 'saber', ['v'], ['v']), + ], + }, + 'future': { + name: 'future', + description: 'Future form of a verb', + rules: [ + suffixInflection('é', '', ['v'], ['v']), + suffixInflection('ás', '', ['v'], ['v']), + suffixInflection('á', '', ['v'], ['v']), + suffixInflection('emos', '', ['v'], ['v']), + suffixInflection('éis', '', ['v'], ['v']), + suffixInflection('án', '', ['v'], ['v']), + // irregular verbs + suffixInflection('diré', 'decir', ['v'], ['v']), + suffixInflection('dirás', 'decir', ['v'], ['v']), + suffixInflection('dirá', 'decir', ['v'], ['v']), + suffixInflection('diremos', 'decir', ['v'], ['v']), + suffixInflection('diréis', 'decir', ['v'], ['v']), + suffixInflection('dirán', 'decir', ['v'], ['v']), + wholeWordInflection('haré', 'hacer', ['v'], ['v']), + wholeWordInflection('harás', 'hacer', ['v'], ['v']), + wholeWordInflection('hará', 'hacer', ['v'], ['v']), + wholeWordInflection('haremos', 'hacer', ['v'], ['v']), + wholeWordInflection('haréis', 'hacer', ['v'], ['v']), + wholeWordInflection('harán', 'hacer', ['v'], ['v']), + suffixInflection('pondré', 'poner', ['v'], ['v']), + suffixInflection('pondrás', 'poner', ['v'], ['v']), + suffixInflection('pondrá', 'poner', ['v'], ['v']), + suffixInflection('pondremos', 'poner', ['v'], ['v']), + suffixInflection('pondréis', 'poner', ['v'], ['v']), + suffixInflection('pondrán', 'poner', ['v'], ['v']), + wholeWordInflection('saldré', 'salir', ['v'], ['v']), + wholeWordInflection('saldrás', 'salir', ['v'], ['v']), + wholeWordInflection('saldrá', 'salir', ['v'], ['v']), + wholeWordInflection('saldremos', 'salir', ['v'], ['v']), + wholeWordInflection('saldréis', 'salir', ['v'], ['v']), + wholeWordInflection('saldrán', 'salir', ['v'], ['v']), + suffixInflection('tendré', 'tener', ['v'], ['v']), + suffixInflection('tendrás', 'tener', ['v'], ['v']), + suffixInflection('tendrá', 'tener', ['v'], ['v']), + suffixInflection('tendremos', 'tener', ['v'], ['v']), + suffixInflection('tendréis', 'tener', ['v'], ['v']), + suffixInflection('tendrán', 'tener', ['v'], ['v']), + suffixInflection('vendré', 'venir', ['v'], ['v']), + suffixInflection('vendrás', 'venir', ['v'], ['v']), + suffixInflection('vendrá', 'venir', ['v'], ['v']), + suffixInflection('vendremos', 'venir', ['v'], ['v']), + suffixInflection('vendréis', 'venir', ['v'], ['v']), + suffixInflection('vendrán', 'venir', ['v'], ['v']), + ], + }, + 'present subjunctive': { + name: 'present subjunctive', + description: 'Present subjunctive form of a verb', + rules: [ + // -ar verbs + suffixInflection('e', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('es', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('e', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('emos', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('éis', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('en', 'ar', ['v_ar'], ['v_ar']), + // -er verbs + suffixInflection('a', 'er', ['v_er'], ['v_er']), + suffixInflection('as', 'er', ['v_er'], ['v_er']), + suffixInflection('a', 'er', ['v_er'], ['v_er']), + suffixInflection('amos', 'er', ['v_er'], ['v_er']), + suffixInflection('áis', 'er', ['v_er'], ['v_er']), + suffixInflection('an', 'er', ['v_er'], ['v_er']), + // -ir verbs + suffixInflection('a', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('as', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('a', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('amos', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('áis', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('an', 'ir', ['v_ir'], ['v_ir']), + // TODO: stem-changing verbs + // irregular verbs + wholeWordInflection('dé', 'dar', ['v'], ['v']), + wholeWordInflection('des', 'dar', ['v'], ['v']), + wholeWordInflection('dé', 'dar', ['v'], ['v']), + wholeWordInflection('demos', 'dar', ['v'], ['v']), + wholeWordInflection('deis', 'dar', ['v'], ['v']), + wholeWordInflection('den', 'dar', ['v'], ['v']), + wholeWordInflection('esté', 'estar', ['v'], ['v']), + wholeWordInflection('estés', 'estar', ['v'], ['v']), + wholeWordInflection('esté', 'estar', ['v'], ['v']), + wholeWordInflection('estemos', 'estar', ['v'], ['v']), + wholeWordInflection('estéis', 'estar', ['v'], ['v']), + wholeWordInflection('estén', 'estar', ['v'], ['v']), + wholeWordInflection('sea', 'ser', ['v'], ['v']), + wholeWordInflection('seas', 'ser', ['v'], ['v']), + wholeWordInflection('sea', 'ser', ['v'], ['v']), + wholeWordInflection('seamos', 'ser', ['v'], ['v']), + wholeWordInflection('seáis', 'ser', ['v'], ['v']), + wholeWordInflection('sean', 'ser', ['v'], ['v']), + wholeWordInflection('vaya', 'ir', ['v'], ['v']), + wholeWordInflection('vayas', 'ir', ['v'], ['v']), + wholeWordInflection('vaya', 'ir', ['v'], ['v']), + wholeWordInflection('vayamos', 'ir', ['v'], ['v']), + wholeWordInflection('vayáis', 'ir', ['v'], ['v']), + wholeWordInflection('vayan', 'ir', ['v'], ['v']), + wholeWordInflection('haya', 'haber', ['v'], ['v']), + wholeWordInflection('hayas', 'haber', ['v'], ['v']), + wholeWordInflection('haya', 'haber', ['v'], ['v']), + wholeWordInflection('hayamos', 'haber', ['v'], ['v']), + wholeWordInflection('hayáis', 'haber', ['v'], ['v']), + wholeWordInflection('hayan', 'haber', ['v'], ['v']), + wholeWordInflection('sepa', 'saber', ['v'], ['v']), + wholeWordInflection('sepas', 'saber', ['v'], ['v']), + wholeWordInflection('sepa', 'saber', ['v'], ['v']), + wholeWordInflection('sepamos', 'saber', ['v'], ['v']), + wholeWordInflection('sepáis', 'saber', ['v'], ['v']), + wholeWordInflection('sepan', 'saber', ['v'], ['v']), + ], + }, + 'imperfect subjunctive': { + name: 'imperfect subjunctive', + description: 'Imperfect subjunctive form of a verb', + rules: [ + // -ar verbs + suffixInflection('ara', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('aras', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('ara', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('áramos', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('arais', 'ar', ['v_ar'], ['v_ar']), + suffixInflection('aran', 'ar', ['v_ar'], ['v_ar']), + // -er verbs + suffixInflection('iera', 'er', ['v_er'], ['v_er']), + suffixInflection('ieras', 'er', ['v_er'], ['v_er']), + suffixInflection('iera', 'er', ['v_er'], ['v_er']), + suffixInflection('iéramos', 'er', ['v_er'], ['v_er']), + suffixInflection('ierais', 'er', ['v_er'], ['v_er']), + suffixInflection('ieran', 'er', ['v_er'], ['v_er']), + // -ir verbs + suffixInflection('iera', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('ieras', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('iera', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('iéramos', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('ierais', 'ir', ['v_ir'], ['v_ir']), + suffixInflection('ieran', 'ir', ['v_ir'], ['v_ir']), + // irregular verbs + wholeWordInflection('fuera', 'ser', ['v'], ['v']), + wholeWordInflection('fueras', 'ser', ['v'], ['v']), + wholeWordInflection('fuera', 'ser', ['v'], ['v']), + wholeWordInflection('fuéramos', 'ser', ['v'], ['v']), + wholeWordInflection('fuerais', 'ser', ['v'], ['v']), + wholeWordInflection('fueran', 'ser', ['v'], ['v']), + wholeWordInflection('fuera', 'ir', ['v'], ['v']), + wholeWordInflection('fueras', 'ir', ['v'], ['v']), + wholeWordInflection('fuera', 'ir', ['v'], ['v']), + wholeWordInflection('fuéramos', 'ir', ['v'], ['v']), + wholeWordInflection('fuerais', 'ir', ['v'], ['v']), + wholeWordInflection('fueran', 'ir', ['v'], ['v']), + ], + }, }, }; |