/// <summary> /// Crea sumant els valors de dos objectes MorfoGram. /// Per als objectes inexistents, se suposa el valor NOCAT, NOTEMPS, etc. /// Si els valors són incompatibles, es provoca una excepció. /// </summary> /// <param name="mf1">El primer MorfoGram</param> /// <param name="mf2">El segon MorfoGram</param> public MorfoGram(MorfoGram mf1, MorfoGram mf2) { if (mf1 == null && mf2 == null) return; if (mf1 == null || mf2 == null) { MorfoGram mfx = (mf1 != null) ? mf1 : mf2; cat = mfx.Cat; temps = mfx.Temps; pers = mfx.Pers; gen = mfx.Gen; nbre = mfx.Nbre; return; } if (Unificables(mf1, mf2)) { cat = (mf1.Cat != eCat.NOCAT) ? mf1.Cat : mf2.Cat; temps = (mf1.Temps != eTemps.NOTEMPS) ? mf1.Temps : mf2.Temps; pers = (mf1.Pers != ePers.NOPERS) ? mf1.Pers : mf2.Pers; gen = (mf1.Gen != eGen.NOGEN) ? mf1.Gen : mf2.Gen; nbre = (mf1.Nbre != eNbre.NONBRE) ? mf1.Nbre : mf2.Nbre; } else { if ((mf1.Cat != eCat.NOCAT) && (mf2.Cat != eCat.NOCAT) && (mf1.Cat != mf2.Cat)) throw new Exception(String.Format("Categories incompatibles ({0}, {1})", mf1.ToString(), mf2.ToString())); if ((mf1.Temps != eTemps.NOTEMPS) && (mf2.Temps != eTemps.NOTEMPS) && (mf1.Temps != mf2.Temps)) throw new Exception(String.Format("Temps incompatibles ({0}, {1})", mf1.ToString(), mf2.ToString())); if ((mf1.Pers != ePers.NOPERS) && (mf2.Pers != ePers.NOPERS) && (mf1.Pers != mf2.Pers)) throw new Exception(String.Format("Persones incompatibles ({0}, {1})", mf1.ToString(), mf2.ToString())); if ((mf1.Gen != eGen.NOGEN) && (mf2.Gen != eGen.NOGEN) && (mf1.Gen != mf2.Gen)) throw new Exception(String.Format("Gèneres incompatibles ({0}, {1})", mf1.ToString(), mf2.ToString())); if ((mf1.Nbre != eNbre.NONBRE) && (mf2.Nbre != eNbre.NONBRE) && (mf1.Nbre != mf2.Nbre)) throw new Exception(String.Format("Categories incompatibles ({0}, {1})", mf1.ToString(), mf2.ToString())); } }
/// <summary> /// Crea amb una categoria, un gènere i un nombre. /// </summary> /// <param name="cat">La categoria</param> /// <param name="temps">El temps verbal</param> /// <param name="pers">La persona</param> /// <param name="gen">El gènere</param> /// <param name="nbre">El nombre</param> public MorfoGram(eCat cat, eTemps temps, ePers pers, eGen gen, eNbre nbre) { this.cat = cat; this.temps = temps; this.pers = pers; this.gen = gen; this.nbre = nbre; }
/// <summary> /// Crea amb un nombre. /// </summary> /// <param name="gen">El nombre</param> public MorfoGram(eNbre nbre) { this.nbre = nbre; }
/// <summary> /// Crea amb una categoria, un gènere i un nombre. /// </summary> /// <param name="cat">La categoria</param> /// <param name="gen">El gènere</param> /// <param name="nbre">El nombre</param> public MorfoGram(eCat cat, eGen gen, eNbre nbre) { this.cat = cat; this.gen = gen; this.nbre = nbre; }
/// <summary> /// Crea amb una categoria i un nombre. /// </summary> /// <param name="cat">La categoria</param> /// <param name="nbre">El nombre</param> public MorfoGram(eCat cat, eNbre nbre) { this.cat = cat; this.nbre = nbre; }