@jirimracek/conjugate-esp
Version:
Spanish verb conjugator, castellano, voseo, canarias, formal
1,224 lines • 52 kB
JavaScript
"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