/// <summary> /// Genera una llista de GrupMyspell /// </summary> public List<ReglaMyspell> GrupsMyspell(Regles regles, Marques filtre, GetAfinaReglaMyspell getAfina) { List<ReglaMyspell> grups = new List<ReglaMyspell>(); foreach (CasRegla cas in casos) { if (!filtre.Conte(cas.Marca)) continue; ReglaMyspell grup = grups.Find(delegate(ReglaMyspell g) { return g.CasPertany(cas); }); if (grup == null) { grup = new ReglaMyspell(this, regles, getAfina); grups.Add(grup); } grup.NouCas(cas); } return grups; }
/// <summary> /// Processa un cas abans que s'afegesqui al grup. /// </summary> /// <param name="cas">El cas que està a punt d'afegir-se al grup.</param> /// <returns>El cas, eventualment modificat.</returns> public abstract CasRegla ProcessaCas(ReglaMyspell grup, CasRegla cas);
public override CasRegla ProcessaCas(ReglaMyspell grup, CasRegla cas) { return new CasRegla(grup.ReglaOriginal, "at", cas.Afegir, "at", grup.ReglaOriginal.EsSufix, cas.Marca, cas.Info, cas.MesRegles); }
public override CasRegla ProcessaCas(ReglaMyspell grup, CasRegla cas) { AfinaParticipiIR.grup = grup; if (cas.Info.Nbre == MorfoGram.eNbre.SG && cas.Info.Gen == MorfoGram.eGen.M) casosMascSg.Add(cas); string condicio = cas.Condicio.Substring(0, cas.Condicio.Length - 3) + cas.Afegir[0] + "t"; return new CasRegla(grup.ReglaOriginal, cas.Afegir[0] + "t", cas.Afegir, condicio, grup.ReglaOriginal.EsSufix, cas.Marca, cas.Info, cas.MesRegles); }
public override CasRegla ProcessaCas(ReglaMyspell grup, CasRegla cas) { return new CasRegla(grup.ReglaOriginal, "m", cas.Afegir.Substring(1), cas.Suprimir[0] + "m", grup.ReglaOriginal.EsSufix, cas.Marca, cas.Info, cas.MesRegles); }