Esempio n. 1
0
 /// <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;
 }
Esempio n. 2
0
 /// <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);
 }