UNPKG

@jirimracek/conjugate-esp

Version:

Spanish verb conjugator, castellano, voseo, canarias, formal

1,224 lines 52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.zurcir = exports.venir = exports.servir = exports.sentir = exports.seguir = exports.salir = exports.reunir = exports.reír = exports.rehuir = exports.rehenchir = exports.pudrir = exports.podrir = exports.plañir = exports.oír = exports.lucir = exports.ir = exports.huir = exports.escribir = exports.erguir = exports.embaír = exports.dormir = exports.distinguir = exports.discernir = exports.dirigir = exports.delinquir = exports.decir = exports.corregir = exports.conducir = exports.cohibir = exports.ceñir = exports.bendecir = exports.balbucir = exports.argüir = exports.adquirir = exports.asir = exports.abrir = exports.partir = void 0; const basemodel_1 = require("./basemodel"); const Array_6 = Array(6).fill(''); const Array_5 = Array(5).fill(''); class partir extends basemodel_1.BaseModel { constructor(verb, region, attributes) { super(verb, region, attributes); this.desinences = this.initDesinences(region); } setParticipio() { super.setParticipio(); const PR = this.attributes['PR']; if (PR) { const [expression, alteredStem] = PR.split('/'); this.participioCompuesto = this.participioCompuesto.replace(expression, alteredStem); this.table.Impersonal.Participio = this.participioCompuesto; } } initDesinences(region) { return { Impersonal: { Infinitivo: !this.reflexive ? 'ir' : 'irse', Gerundio: !this.reflexive ? 'iendo' : 'iéndose', Participio: 'ido' }, Indicativo: { Presente: ['o', region !== 'voseo' ? (region !== 'formal' ? 'es' : 'e') : 'ís', 'e', 'imos', region !== 'castellano' ? 'en' : 'ís', 'en'], PreteritoImperfecto: ['ía', region !== 'formal' ? 'ías' : 'ía', 'ía', 'íamos', region !== 'castellano' ? 'ían' : 'íais', 'ían'], PreteritoIndefinido: ['í', region !== 'formal' ? 'iste' : 'ió', 'ió', 'imos', region !== 'castellano' ? 'ieron' : 'isteis', 'ieron'], FuturoImperfecto: ['iré', region !== 'formal' ? 'irás' : 'irá', 'irá', 'iremos', region !== 'castellano' ? 'irán' : 'iréis', 'irán'], CondicionalSimple: ['iría', region !== 'formal' ? 'irías' : 'iría', 'iría', 'iríamos', region !== 'castellano' ? 'irían' : 'iríais', 'irían'] }, Subjuntivo: { Presente: ['a', region === 'formal' ? 'a' : 'as', 'a', 'amos', region === 'castellano' ? 'áis' : 'an', 'an'], PreteritoImperfectoRa: ['iera', region === 'formal' ? 'iera' : 'ieras', 'iera', 'iéramos', region === 'castellano' ? 'ierais' : 'ieran', 'ieran'], PreteritoImperfectoSe: ['iese', region === 'formal' ? 'iese' : 'ieses', 'iese', 'iésemos', region === 'castellano' ? 'ieseis' : 'iesen', 'iesen'], FuturoImperfecto: ['iere', region === 'formal' ? 'iere' : 'ieres', 'iere', 'iéremos', region === 'castellano' ? 'iereis' : 'ieren', 'ieren'] } }; } } exports.partir = partir; class abrir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); } setParticipio() { this.participioCompuesto = `${this.stem}${this.desinences.Impersonal.Participio}`.replace(/rid/, 'iert'); this.table.Impersonal.Participio = this.participioCompuesto; } } exports.abrir = abrir; class asir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.desinences.Indicativo.Presente[0] = 'go'; this.desinences.Subjuntivo.Presente = this.desinences.Subjuntivo.Presente.map(d => `g${d}`); } } exports.asir = asir; class adquirir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/ir/, 'ier'); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.alteredStem, this.alteredStem); } setSubjuntivoPresente() { this.setSubjuntivoPresentePattern0125(this.alteredStem); } } exports.adquirir = adquirir; class argüir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/\u00fc/, 'u'); this.alteredStemArray = Array_6.map(() => this.alteredStem); this.desinences.Impersonal.Gerundio = 'yendo'; [0, 2, 5].forEach(i => this.desinences.Indicativo.Presente[i] = `y${this.desinences.Indicativo.Presente[i]}`); [2, 5].forEach(i => this.desinences.Indicativo.PreteritoIndefinido[i] = this.desinences.Indicativo.PreteritoIndefinido[i].replace(/^i/, 'y')); if (region !== 'castellano') { this.desinences.Indicativo.Presente[4] = `y${this.desinences.Indicativo.Presente[4]}`; this.desinences.Indicativo.PreteritoIndefinido[4] = this.desinences.Indicativo.PreteritoIndefinido[4].replace(/^i/, 'y'); } if (region === 'formal') { this.desinences.Indicativo.PreteritoIndefinido[1] = this.desinences.Indicativo.PreteritoIndefinido[1].replace(/^i/, 'y'); } if (region !== 'voseo') { this.desinences.Indicativo.Presente[1] = `y${this.desinences.Indicativo.Presente[1]}`; } this.desinences.Subjuntivo.Presente = this.desinences.Subjuntivo.Presente.map(d => `y${d}`); this.desinences.Subjuntivo.PreteritoImperfectoRa = this.desinences.Subjuntivo.PreteritoImperfectoRa.map(d => d.replace(/^i/, 'y')); this.desinences.Subjuntivo.PreteritoImperfectoSe = this.desinences.Subjuntivo.PreteritoImperfectoSe.map(d => d.replace(/^i/, 'y')); this.desinences.Subjuntivo.FuturoImperfecto = this.desinences.Subjuntivo.FuturoImperfecto.map(d => d.replace(/^i/, 'y')); } setGerundio() { super.setGerundio(this.alteredStem); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.alteredStem, this.alteredStem); } setIndicativoPreteritoIndefinido() { this.setIndicativoPreteritoIndefinidoPattern25(this.alteredStem); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.alteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.alteredStemArray); } } exports.argüir = argüir; class balbucir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/c$/, 'ce'); this.desinences.Subjuntivo.Presente = ['e', region !== 'formal' ? 'es' : 'e', 'e', 'emos', region !== 'castellano' ? 'en' : 'éis', 'en']; } setIndicativoPresente() { this.setTable('Indicativo', 'Presente', [ this.alteredStem, ...Array_5.map(() => this.stem) ]); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', Array_6.map(() => this.alteredStem)); } } exports.balbucir = balbucir; class bendecir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/ec/, ''); this.alteredStemArray = Array_6.map(() => this.alteredStem); this.desinences.Indicativo.PreteritoIndefinido = [ 'e', region !== 'formal' ? 'iste' : 'o', 'o', 'imos', region !== 'castellano' ? 'eron' : 'isteis', 'eron' ]; this.desinences.Subjuntivo.PreteritoImperfectoRa = [ 'ijera', region !== 'formal' ? 'ijeras' : 'ijera', 'ijera', 'ijéramos', region !== 'castellano' ? 'ijeran' : 'ijerais', 'ijeran', ]; this.desinences.Subjuntivo.PreteritoImperfectoSe = [ 'ijese', region !== 'formal' ? 'ijeses' : 'ijese', 'ijese', 'ijésemos', region !== 'castellano' ? 'ijesen' : 'ijeseis', 'ijesen', ]; this.desinences.Subjuntivo.FuturoImperfecto = [ 'ijere', region !== 'formal' ? 'ijeres' : 'ijere', 'ijere', 'ijéremos', region !== 'castellano' ? 'ijeren' : 'ijereis', 'ijeren', ]; } setGerundio() { super.setGerundio(this.stem.replace(/dec/, 'dic')); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.stem.replace(/ec/, 'ig'), this.stem.replace(/(.*)e/, '$1i')); } setIndicativoPreteritoIndefinido() { const alteredStem = this.stem.replace(/ec/, 'ij'); this.setTable('Indicativo', 'PreteritoIndefinido', Array_6.map(() => alteredStem)); } setSubjuntivoPresente() { const alteredStem = this.stem.replace(/ec/, 'ig'); this.setTable('Subjuntivo', 'Presente', Array_6.map(() => alteredStem)); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.alteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.alteredStemArray); } } exports.bendecir = bendecir; class ceñir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/(.*)e/, '$1i'); this.alteredStemArray = Array_6.map(() => this.alteredStem); this.desinences.Impersonal.Gerundio = this.desinences.Impersonal.Gerundio.replace(/^i/, ''); [2, 5].forEach(i => this.desinences.Indicativo.PreteritoIndefinido[i] = this.desinences.Indicativo.PreteritoIndefinido[i].replace(/^i/, '')); if (region !== 'castellano') { this.desinences.Indicativo.PreteritoIndefinido[4] = this.desinences.Indicativo.PreteritoIndefinido[4].replace(/^i/, ''); if (region === 'formal') { this.desinences.Indicativo.PreteritoIndefinido[1] = this.desinences.Indicativo.PreteritoIndefinido[1].replace(/^i/, ''); } } this.desinences.Subjuntivo.PreteritoImperfectoRa = this.desinences.Subjuntivo.PreteritoImperfectoRa.map(d => d.replace(/^i/, '')); this.desinences.Subjuntivo.PreteritoImperfectoSe = this.desinences.Subjuntivo.PreteritoImperfectoSe.map(d => d.replace(/^i/, '')); this.desinences.Subjuntivo.FuturoImperfecto = this.desinences.Subjuntivo.FuturoImperfecto.map(d => d.replace(/^i/, '')); } setGerundio() { super.setGerundio(this.alteredStem); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.alteredStem, this.alteredStem); } setIndicativoPreteritoIndefinido() { this.setIndicativoPreteritoIndefinidoPattern25(this.alteredStem); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.alteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.alteredStemArray); } } exports.ceñir = ceñir; class cohibir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/(.*)i/, '$1í'); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.alteredStem, this.alteredStem); } setSubjuntivoPresente() { this.setSubjuntivoPresentePattern0125(this.alteredStem); } } exports.cohibir = cohibir; class conducir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/(.*)c/, '$1zc'); this.alteredStemArray = Array_6.map(() => this.alteredStem); this.secondAlteredStem = this.stem.replace(/(.*)c/, '$1j'); this.secondAlteredStemArray = Array_6.map(() => this.secondAlteredStem); this.desinences.Indicativo.PreteritoIndefinido[0] = 'e'; this.desinences.Indicativo.PreteritoIndefinido[2] = 'o'; if (region !== 'castellano') { this.desinences.Indicativo.PreteritoIndefinido[4] = 'eron'; if (region === 'formal') { this.desinences.Indicativo.PreteritoIndefinido[1] = 'o'; } } this.desinences.Indicativo.PreteritoIndefinido[5] = 'eron'; this.desinences.Subjuntivo.PreteritoImperfectoRa = this.desinences.Subjuntivo.PreteritoImperfectoRa.map(d => d.replace(/i/, '')); this.desinences.Subjuntivo.PreteritoImperfectoSe = this.desinences.Subjuntivo.PreteritoImperfectoSe.map(d => d.replace(/i/, '')); this.desinences.Subjuntivo.FuturoImperfecto = this.desinences.Subjuntivo.FuturoImperfecto.map(d => d.replace(/i/, '')); } setIndicativoPresente() { this.setTable('Indicativo', 'Presente', [ this.alteredStem, ...Array_5.map(() => this.stem) ]); } setIndicativoPreteritoIndefinido() { this.setTable('Indicativo', 'PreteritoIndefinido', this.secondAlteredStemArray); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.secondAlteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.secondAlteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.secondAlteredStemArray); } } exports.conducir = conducir; class corregir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/(.*)e/, '$1i'); this.alteredStemArray = Array_6.map(() => this.alteredStem); this.secondAlteredStem = this.stem.replace(/eg/, 'ij'); this.secondAlteredStemArray = Array_6.map(() => this.secondAlteredStem); } setGerundio() { super.setGerundio(this.alteredStem); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.secondAlteredStem, this.alteredStem); } setIndicativoPreteritoIndefinido() { this.setIndicativoPreteritoIndefinidoPattern25(this.alteredStem); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', this.secondAlteredStemArray); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.alteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.alteredStemArray); } } exports.corregir = corregir; class decir extends bendecir { constructor(verb, region, attributes) { super(verb, region, attributes); } setParticipio() { this.participioCompuesto = `${this.stem}${this.desinences.Impersonal.Participio}`.replace(/ecid/, 'ich'); this.table.Impersonal.Participio = this.participioCompuesto; } setIndicativoFuturoImperfecto() { if (this.version === '2') { this.setTable('Indicativo', 'FuturoImperfecto'); } else { this.setTable('Indicativo', 'FuturoImperfecto', this.alteredStemArray); } } setIndicativoCondicionalSimple() { if (this.version === '2') { this.setTable('Indicativo', 'CondicionalSimple'); } else { this.setTable('Indicativo', 'CondicionalSimple', this.alteredStemArray); } } setImperativoAfirmativo() { super.setImperativoAfirmativo(); if (this.version === '0') { this.setImperativoAfirmativoMono(/(.*)d[ií]ce/, 'di', 'dí'); } } } exports.decir = decir; class delinquir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/qu/, 'c'); } setIndicativoPresente() { this.setTable('Indicativo', 'Presente', [ this.alteredStem, ...Array_5.map(() => this.stem) ]); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', Array_6.map(() => this.alteredStem)); } } exports.delinquir = delinquir; class dirigir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/g$/, 'j'); } setIndicativoPresente() { this.setTable('Indicativo', 'Presente', [ this.alteredStem, ...Array_5.map(() => this.stem) ]); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', Array_6.map(() => this.alteredStem)); } } exports.dirigir = dirigir; class discernir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/(.*)e/, '$1ie'); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.alteredStem, this.alteredStem); } setSubjuntivoPresente() { this.setSubjuntivoPresentePattern0125(this.alteredStem); } } exports.discernir = discernir; class distinguir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/u$/, ''); } setIndicativoPresente() { this.setTable('Indicativo', 'Presente', [ this.alteredStem, ...Array_5.map(() => this.stem) ]); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', Array_6.map(() => this.alteredStem)); } } exports.distinguir = distinguir; class dormir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/(.*)o/, '$1u'); this.alteredStemArray = Array_6.map(() => this.alteredStem); this.secondAlteredStem = this.stem.replace(/(.*)o/, '$1ue'); } setGerundio() { super.setGerundio(this.alteredStem); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.secondAlteredStem, this.secondAlteredStem); } setIndicativoPreteritoIndefinido() { this.setIndicativoPreteritoIndefinidoPattern25(this.alteredStem); } setSubjuntivoPresente() { this.setSubjuntivoPresentePattern0125(this.secondAlteredStem, this.alteredStem); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.alteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.alteredStemArray); } } exports.dormir = dormir; class embaír extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.desinences.Impersonal.Infinitivo = !this.reflexive ? 'ír' : 'írse'; this.desinences.Impersonal.Gerundio = !this.reflexive ? 'yendo' : 'yéndose'; this.desinences.Impersonal.Participio = 'ído'; this.desinences.Indicativo.Presente[0] = 'yo'; this.desinences.Indicativo.Presente[3] = 'ímos'; this.desinences.Indicativo.PreteritoIndefinido = [ 'í', region !== 'formal' ? 'íste' : 'yó', 'yó', 'ímos', region !== 'castellano' ? 'yeron' : 'ísteis', 'yeron' ]; this.desinences.Subjuntivo.Presente = this.desinences.Subjuntivo.Presente.map(d => `y${d}`); this.desinences.Subjuntivo.PreteritoImperfectoRa = this.desinences.Subjuntivo.PreteritoImperfectoRa.map((d, i) => i === 4 && region === 'castellano' ? d.replace(/^ie/, 'yé') : d.replace(/^i/, 'y')); this.desinences.Subjuntivo.PreteritoImperfectoSe = this.desinences.Subjuntivo.PreteritoImperfectoSe.map((d, i) => i === 4 && region === 'castellano' ? d.replace(/^ie/, 'yé') : d.replace(/^i/, 'y')); this.desinences.Subjuntivo.FuturoImperfecto = this.desinences.Subjuntivo.FuturoImperfecto.map((d, i) => i === 4 && region === 'castellano' ? d.replace(/^ie/, 'yé') : d.replace(/^i/, 'y')); } } exports.embaír = embaír; class erguir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/^(.*)u/, 'y$1'); this.secondAlteredStem = this.stem.replace(/^e(.*)u/, 'i$1'); this.thirdAlteredStem = this.stem.replace(/^e/, 'i'); this.thirdAlteredStemArray = Array_6.map(() => this.thirdAlteredStem); } setGerundio() { super.setGerundio(this.thirdAlteredStem); } setIndicativoPresente() { if (this.version === '0') { this.setIndicativoPresentePattern125(this.alteredStem, this.stem.replace(/^/, 'y')); } else { this.setIndicativoPresentePattern125(this.secondAlteredStem, this.thirdAlteredStem); } } setIndicativoPreteritoIndefinido() { this.setIndicativoPreteritoIndefinidoPattern25(this.thirdAlteredStem); } setSubjuntivoPresente() { if (this.version === '0') { this.setSubjuntivoPresentePattern0125(this.alteredStem, this.secondAlteredStem); } else { this.setSubjuntivoPresentePattern0125(this.secondAlteredStem, this.secondAlteredStem); } } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.thirdAlteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.thirdAlteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.thirdAlteredStemArray); } setImperativoAfirmativo() { super.setImperativoAfirmativo(); if (this.region === 'voseo' && this.version === '0') { this.table.Imperativo.Afirmativo[1] = this.table.Imperativo.Afirmativo[1].replace(/ergu.*/, (match) => match.endsWith('te') ? 'yérguete' : 'yergue'); } } } exports.erguir = erguir; class escribir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.participioSecundario = this.attributes.PS; this.desinences.Impersonal.Participio = 'to'; } setParticipio() { this.participioCompuesto = `${this.stem.replace(/b$/, '')}${this.desinences.Impersonal.Participio}`; if (this.participioSecundario) { const [searchValue, replaceValue] = this.participioSecundario.split('/'); this.table.Impersonal.Participio = `${this.participioCompuesto}/${this.participioCompuesto.replace(searchValue, replaceValue)}`; } else { this.table.Impersonal.Participio = this.participioCompuesto; } } } exports.escribir = escribir; class huir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.desinences.Impersonal.Gerundio = this.desinences.Impersonal.Gerundio.replace(/^i/, 'y'); [0, 2, 5].forEach(i => this.desinences.Indicativo.Presente[i] = `y${this.desinences.Indicativo.Presente[i]}`); [2, 5].forEach(i => this.desinences.Indicativo.PreteritoIndefinido[i] = this.desinences.Indicativo.PreteritoIndefinido[i].replace(/^i/, 'y')); this.desinences.Subjuntivo.Presente = this.desinences.Subjuntivo.Presente.map(d => `y${d}`); switch (region) { case 'castellano': this.desinences.Indicativo.Presente[1] = `y${this.desinences.Indicativo.Presente[1]}`; break; case 'formal': this.desinences.Indicativo.PreteritoIndefinido[1] = this.desinences.Indicativo.PreteritoIndefinido[1].replace(/i/, 'y'); case 'canarias': this.desinences.Indicativo.Presente[1] = `y${this.desinences.Indicativo.Presente[1]}`; case 'voseo': this.desinences.Indicativo.Presente[4] = `y${this.desinences.Indicativo.Presente[4]}`; this.desinences.Indicativo.PreteritoIndefinido[4] = this.desinences.Indicativo.PreteritoIndefinido[4].replace(/i/, 'y'); } this.desinences.Subjuntivo.PreteritoImperfectoRa = this.desinences.Subjuntivo.PreteritoImperfectoRa.map(d => d.replace(/^i/, 'y')); this.desinences.Subjuntivo.PreteritoImperfectoSe = this.desinences.Subjuntivo.PreteritoImperfectoSe.map(d => d.replace(/^i/, 'y')); this.desinences.Subjuntivo.FuturoImperfecto = this.desinences.Subjuntivo.FuturoImperfecto.map(d => d.replace(/^i/, 'y')); if (typeof this.attributes['M'] !== 'undefined' && this.attributes['M'] === 'true') { if (region === 'voseo') { this.desinences.Indicativo.Presente[1] = 'is'; } if (region === 'castellano') { this.desinences.Indicativo.Presente[4] = 'is'; } this.desinences.Indicativo.PreteritoIndefinido[0] = 'i'; } } } exports.huir = huir; class ir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.desinences.Impersonal.Gerundio = !this.reflexive ? 'yendo' : 'yéndose'; this.desinences.Indicativo.Presente = ['oy', region !== 'formal' ? 'as' : 'a', 'a', 'amos', region !== 'castellano' ? 'an' : 'ais', 'an' ]; this.desinences.Indicativo.PreteritoImperfecto[3] = this.desinences.Indicativo.PreteritoImperfecto[3].replace(/./, 'íb'); [0, 1, 2, 4, 5].forEach(i => this.desinences.Indicativo.PreteritoImperfecto[i] = this.desinences.Indicativo.PreteritoImperfecto[i].replace(/./, 'ib')); this.desinences.Indicativo.PreteritoIndefinido = ['i', region !== 'formal' ? 'iste' : 'e', 'e', 'imos', region !== 'castellano' ? 'eron' : 'isteis', 'eron' ]; this.desinences.Subjuntivo.PreteritoImperfectoRa = this.desinences.Subjuntivo.PreteritoImperfectoRa.map(d => d.replace(/^./, '')); this.desinences.Subjuntivo.PreteritoImperfectoSe = this.desinences.Subjuntivo.PreteritoImperfectoSe.map(d => d.replace(/^./, '')); this.desinences.Subjuntivo.FuturoImperfecto = this.desinences.Subjuntivo.FuturoImperfecto.map(d => d.replace(/^./, '')); } setIndicativoPresente() { this.setTable('Indicativo', 'Presente', Array_6.map(() => 'v')); } setIndicativoPreteritoIndefinido() { this.setTable('Indicativo', 'PreteritoIndefinido', Array_6.map(() => 'fu')); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', Array_6.map(() => 'vay')); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', Array_6.map(() => 'fu')); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', Array_6.map(() => 'fu')); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', Array_6.map(() => 'fu')); } setImperativoAfirmativo() { super.setImperativoAfirmativo(); switch (this.region) { case 'voseo': this.table.Imperativo.Afirmativo[1] = this.table.Imperativo.Afirmativo[1].replace(/(.*)va.*/, (m, p) => m.endsWith('te') ? `${p}andate` : `${p}andá`); break; case 'castellano': this.table.Imperativo.Afirmativo[4] = this.table.Imperativo.Afirmativo[4].replace(/í/, 'id'); case 'canarias': this.table.Imperativo.Afirmativo[1] = this.table.Imperativo.Afirmativo[1].replace(/a/, 'e'); break; default: break; } } } exports.ir = ir; class lucir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/(.*)c/, '$1zc'); } setIndicativoPresente() { this.setTable('Indicativo', 'Presente', [ this.alteredStem, ...Array_5.map(() => this.stem) ]); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', Array_6.map(() => this.alteredStem)); } } exports.lucir = lucir; class oír extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.desinences.Impersonal.Infinitivo = 'ír'; this.desinences.Impersonal.Gerundio = 'yendo'; this.desinences.Impersonal.Participio = 'ído'; this.desinences.Indicativo.Presente[0] = 'igo'; this.desinences.Indicativo.Presente[3] = 'ímos'; [1, 2, 5].forEach(i => this.desinences.Indicativo.Presente[i] = this.desinences.Indicativo.Presente[i].replace(/^e/, 'ye')); if (region !== 'castellano') { this.desinences.Indicativo.Presente[4] = this.desinences.Indicativo.Presente[4].replace(/^e/, 'ye'); } this.desinences.Indicativo.PreteritoIndefinido = [ 'í', region !== 'formal' ? 'íste' : 'yó', 'yó', 'ímos', region !== 'castellano' ? 'yeron' : 'ísteis', 'yeron' ]; this.desinences.Subjuntivo.Presente = this.desinences.Subjuntivo.Presente.map(d => `ig${d}`); this.desinences.Subjuntivo.PreteritoImperfectoRa = this.desinences.Subjuntivo.PreteritoImperfectoRa.map(d => d.replace(/^i/, 'y')); this.desinences.Subjuntivo.PreteritoImperfectoSe = this.desinences.Subjuntivo.PreteritoImperfectoSe.map(d => d.replace(/^i/, 'y')); this.desinences.Subjuntivo.FuturoImperfecto = this.desinences.Subjuntivo.FuturoImperfecto.map(d => d.replace(/^i/, 'y')); } } exports.oír = oír; class plañir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.desinences.Impersonal.Gerundio = this.desinences.Impersonal.Gerundio.replace(/^i/, ''); [2, 5].forEach(i => this.desinences.Indicativo.PreteritoIndefinido[i] = this.desinences.Indicativo.PreteritoIndefinido[i].replace(/^i/, '')); if (region !== 'castellano') { this.desinences.Indicativo.PreteritoIndefinido[4] = this.desinences.Indicativo.PreteritoIndefinido[4].replace(/^i/, ''); if (region === 'formal') { this.desinences.Indicativo.PreteritoIndefinido[1] = this.desinences.Indicativo.PreteritoIndefinido[1].replace(/^i/, ''); } } this.desinences.Subjuntivo.Presente = this.desinences.Subjuntivo.Presente.map(d => d.replace(/^i/, '')); this.desinences.Subjuntivo.PreteritoImperfectoRa = this.desinences.Subjuntivo.PreteritoImperfectoRa.map(d => d.replace(/^i/, '')); this.desinences.Subjuntivo.PreteritoImperfectoSe = this.desinences.Subjuntivo.PreteritoImperfectoSe.map(d => d.replace(/^i/, '')); this.desinences.Subjuntivo.FuturoImperfecto = this.desinences.Subjuntivo.FuturoImperfecto.map(d => d.replace(/^i/, '')); } } exports.plañir = plañir; class podrir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/o/, 'u'); this.alteredStemArray = Array_6.map(() => this.alteredStem); } setGerundio() { super.setGerundio(this.alteredStem); } setIndicativoPresente() { if (this.version === '0') { this.setTable('Indicativo', 'Presente', Array_6.map(() => this.alteredStem)); } else { if (this.region === 'castellano') { this.setTable('Indicativo', 'Presente', [ this.alteredStem, this.alteredStem, this.alteredStem, this.stem, this.stem, this.alteredStem ]); } else { this.setTable('Indicativo', 'Presente', [ this.alteredStem, this.alteredStem, this.alteredStem, this.stem, this.alteredStem, this.alteredStem ]); } } } setIndicativoPreteritoImperfecto() { if (this.version === '0') { this.setTable('Indicativo', 'PreteritoImperfecto', this.alteredStemArray); } else { this.setTable('Indicativo', 'PreteritoImperfecto'); } } setIndicativoPreteritoIndefinido() { if (this.version === '0') { this.setTable('Indicativo', 'PreteritoIndefinido', this.alteredStemArray); } else { this.setTable('Indicativo', 'PreteritoIndefinido'); } } setIndicativoFuturoImperfecto() { if (this.version === '0') { this.setTable('Indicativo', 'FuturoImperfecto', this.alteredStemArray); } else { this.setTable('Indicativo', 'FuturoImperfecto'); } } setIndicativoCondicionalSimple() { if (this.version === '0') { this.setTable('Indicativo', 'CondicionalSimple', this.alteredStemArray); } else { this.setTable('Indicativo', 'CondicionalSimple'); } } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.alteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.alteredStemArray); } setImperativoAfirmativo() { super.setImperativoAfirmativo(); switch (this.region) { case 'castellano': if (this.version === '0') { this.table.Imperativo.Afirmativo[4] = this.table.Imperativo.Afirmativo[4].replace(/pod/, 'pud'); } break; case 'voseo': if (this.version !== '0') { this.table.Imperativo.Afirmativo[1] = this.table.Imperativo.Afirmativo[1].replace(/pud/, 'pod'); } } } } exports.podrir = podrir; class pudrir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/u/, 'o'); this.alteredStemArray = Array_6.map(() => this.alteredStem); } setParticipio() { this.participioCompuesto = `${this.alteredStem}${this.desinences.Impersonal.Participio}`; this.table.Impersonal.Participio = this.participioCompuesto; } setIndicativoPresente() { if (this.version === '0') { this.setTable('Indicativo', 'Presente'); } else { if (this.region === 'castellano') { this.setTable('Indicativo', 'Presente', [ this.stem, this.stem, this.stem, this.alteredStem, this.alteredStem, this.stem ]); } else { this.setTable('Indicativo', 'Presente', [ this.stem, this.stem, this.stem, this.alteredStem, this.stem, this.stem ]); } } } setIndicativoPreteritoImperfecto() { if (this.version === '0') { this.setTable('Indicativo', 'PreteritoImperfecto'); } else { this.setTable('Indicativo', 'PreteritoImperfecto', this.alteredStemArray); } } setIndicativoPreteritoIndefinido() { if (this.version === '0') { this.setTable('Indicativo', 'PreteritoIndefinido'); } else { this.setTable('Indicativo', 'PreteritoIndefinido', this.alteredStemArray); } } setIndicativoFuturoImperfecto() { if (this.version === '0') { this.setTable('Indicativo', 'FuturoImperfecto'); } else { this.setTable('Indicativo', 'FuturoImperfecto', this.alteredStemArray); } } setIndicativoCondicionalSimple() { if (this.version === '0') { this.setTable('Indicativo', 'CondicionalSimple'); } else { this.setTable('Indicativo', 'CondicionalSimple', this.alteredStemArray); } } setImperativoAfirmativo() { super.setImperativoAfirmativo(); if (this.version !== '0') { switch (this.region) { case 'castellano': this.table.Imperativo.Afirmativo[4] = this.table.Imperativo.Afirmativo[4].replace(/pud/, 'pod'); break; case 'voseo': this.table.Imperativo.Afirmativo[1] = this.table.Imperativo.Afirmativo[1].replace(/pud/, 'pod'); } } } } exports.pudrir = pudrir; class rehenchir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/(.*)e/, '$1i'); this.alteredStemArray = Array_6.map(() => this.alteredStem); this.secondAlteredStem = this.stem.replace(/(.*)[ei]/, '$1í'); } setGerundio() { super.setGerundio(this.alteredStem); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.secondAlteredStem, this.secondAlteredStem); } setSubjuntivoPresente() { this.setSubjuntivoPresentePattern0125(this.secondAlteredStem, this.alteredStem); } setIndicativoPreteritoIndefinido() { this.setIndicativoPreteritoIndefinidoPattern25(this.alteredStem); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.alteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.alteredStemArray); } } exports.rehenchir = rehenchir; class rehuir extends huir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/u/, 'ú'); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.alteredStem, this.alteredStem); } setSubjuntivoPresente() { this.setSubjuntivoPresentePattern0125(this.alteredStem); } } exports.rehuir = rehuir; class reír extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/e$/, ''); this.alteredStemArray = Array_6.map(() => this.alteredStem); this.secondAlteredStem = this.stem.replace(/e$/, 'í'); const is2010 = typeof this.attributes['M'] !== 'undefined' && this.attributes['M'] === 'true'; this.desinences.Impersonal.Infinitivo = !this.reflexive ? 'ír' : 'írse'; this.desinences.Impersonal.Participio = 'ído'; this.desinences.Indicativo.Presente[3] = 'ímos'; this.desinences.Indicativo.PreteritoIndefinido = [ 'í', region !== 'formal' ? 'íste' : is2010 ? 'io' : 'ió', is2010 ? 'io' : 'ió', 'ímos', region !== 'castellano' ? 'ieron' : 'ísteis', 'ieron' ]; if (is2010 && region === 'castellano') { this.desinences.Subjuntivo.Presente[4] = 'ais'; } } setGerundio() { super.setGerundio(this.alteredStem); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.secondAlteredStem, this.secondAlteredStem); } setIndicativoPreteritoIndefinido() { this.setIndicativoPreteritoIndefinidoPattern25(this.alteredStem); } setSubjuntivoPresente() { const localAltered = this.stem.replace(/e$/, 'i'); this.setSubjuntivoPresentePattern0125(this.secondAlteredStem, localAltered); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.alteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.alteredStemArray); } } exports.reír = reír; class reunir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/u/, 'ú'); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.alteredStem, this.alteredStem); } setSubjuntivoPresente() { this.setSubjuntivoPresentePattern0125(this.alteredStem); } } exports.reunir = reunir; class salir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); const alteredStem = this.stem.replace(/$/, 'd'); this.alteredStemArray = Array_6.map(() => alteredStem); this.desinences.Indicativo.Presente[0] = `g${this.desinences.Indicativo.Presente[0]}`; this.desinences.Indicativo.FuturoImperfecto = this.desinences.Indicativo.FuturoImperfecto.map(d => d.replace(/^i/, '')); this.desinences.Indicativo.CondicionalSimple = this.desinences.Indicativo.CondicionalSimple.map(d => d.replace(/^i/, '')); this.desinences.Subjuntivo.Presente = this.desinences.Subjuntivo.Presente.map(d => `g${d}`); } setIndicativoFuturoImperfecto() { this.setTable('Indicativo', 'FuturoImperfecto', this.alteredStemArray); } setIndicativoCondicionalSimple() { this.setTable('Indicativo', 'CondicionalSimple', this.alteredStemArray); } setImperativoAfirmativo() { super.setImperativoAfirmativo(); this.setImperativoAfirmativoMono(/(.*)s[aá]le/, 'sal', 'sal'); } } exports.salir = salir; class seguir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/(.*)e/, '$1i'); this.alteredStemArray = Array_6.map(() => this.alteredStem); this.secondAlteredStem = this.stem.replace(/(.*)egu/, '$1ig'); this.secondAlteredStemArray = Array_6.map(() => this.secondAlteredStem); } setGerundio() { super.setGerundio(this.alteredStem); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.secondAlteredStem, this.alteredStem); } setIndicativoPreteritoIndefinido() { this.setIndicativoPreteritoIndefinidoPattern25(this.alteredStem); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', this.secondAlteredStemArray); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.alteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.alteredStemArray); } } exports.seguir = seguir; class sentir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/(.*)e/, '$1i'); this.alteredStemArray = Array_6.map(() => this.alteredStem); this.secondAlteredStem = this.stem.replace(/(.*)e/, '$1ie'); } setGerundio() { super.setGerundio(this.alteredStem); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.secondAlteredStem, this.secondAlteredStem); } setIndicativoPreteritoIndefinido() { this.setIndicativoPreteritoIndefinidoPattern25(this.alteredStem); } setSubjuntivoPresente() { this.setSubjuntivoPresentePattern0125(this.secondAlteredStem, this.alteredStem); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.alteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.alteredStemArray); } } exports.sentir = sentir; class servir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/(.*)e/, '$1i'); this.alteredStemArray = Array_6.map(() => this.alteredStem); } setGerundio() { super.setGerundio(this.alteredStem); } setIndicativoPresente() { this.setIndicativoPresentePattern125(this.alteredStem, this.alteredStem); } setIndicativoPreteritoIndefinido() { this.setIndicativoPreteritoIndefinidoPattern25(this.alteredStem); } setSubjuntivoPresente() { this.setTable('Subjuntivo', 'Presente', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoRa() { this.setTable('Subjuntivo', 'PreteritoImperfectoRa', this.alteredStemArray); } setSubjuntivoPreteritoImperfectoSe() { this.setTable('Subjuntivo', 'PreteritoImperfectoSe', this.alteredStemArray); } setSubjuntivoFuturoImperfecto() { this.setTable('Subjuntivo', 'FuturoImperfecto', this.alteredStemArray); } } exports.servir = servir; class venir extends partir { constructor(verb, region, attributes) { super(verb, region, attributes); this.alteredStem = this.stem.replace(/en$/, 'ien'); this.secondAlteredStem = this.stem.replace(/en$/, 'in'); this.secondAlteredStemArray = Array_6.map(() => this.secondAlteredStem); this.desinences.Indicativo.Presente[0] = `g${this.desinences.Indicativo.Presente[0]}`; this.desinences.Indicativo.PreteritoIndefinido[0] = 'e'; if (region === 'formal') { this.desinences.Indicativo.PreteritoIndefinido[1] = 'o'; } this.desinences.Indicativo.PreteritoIndefinido[2] = 'o'; this.desinences.Indicativo.CondicionalSimple = this.desinences.Indicativo.CondicionalSimple.map(d => d.replace(/^i/, '')); this.desinences.Indicativo.FuturoImperfecto = this.desinences.Indicativo.FuturoImperfecto.map(d