public override List<ItemDic> GeneraDic(Dictionary<string, string> dades, Dictionary<string, string> excepcions, Marques filtre, Entrada.Speller speller) { List<ItemDic> llista = new List<ItemDic>(); llista.Add(new ItemDic(dades["arrel"])); return llista; }
private void MostraDadesDic(Entrada entrada) { dadesDic.Clear(); dadesDic.AppendText("Línies dins .dic:\r\n"); foreach (string linia in Entrada.GeneraLiniesDic(entrada, new Marques(true), Entrada.Speller.HUNSPELL, Cat.Cmp)) dadesDic.AppendText(String.Format(" {0}\r\n", linia)); }
private void MostraDadesEntrada(Entrada entrada) { dadesEntrada.Clear(); string[] claus; claus = new string[entrada.Dades.Count]; entrada.Dades.Keys.CopyTo(claus, 0); Array.Sort(claus); foreach (string clau in claus) { if (clau == "línia") continue; dadesEntrada.AppendText(string.Format("{0}: {1}\n", clau, entrada.Dades[clau])); } if (entrada.Excepcions != null) { dadesEntrada.AppendText("\n"); Dictionary<string, string> exc = entrada.Excepcions.Contingut.Valors(new Marques(true)); claus = new string[exc.Count]; exc.Keys.CopyTo(claus, 0); Array.Sort(claus); foreach (string clau in claus) dadesEntrada.AppendText(string.Format("{0}: {1}\n", clau, exc[clau])); } }
public override List<Mot> GeneraMots(Entrada entrada, Marques filtre, bool nomesAfixos) { List<Mot> llista = new List<Mot>(); llista.Add(new Mot(entrada.Arrel, null, null)); return llista; }
public override Entrada IdentificaEntrada(string linia) { Dictionary<string, string> dades = new Dictionary<string,string>(); Match match; foreach (string tros in trossosLinia.Split(linia)) { match = clauIgualValor.Match(tros); if (!match.Success) throw new Exception(String.Format("S'esperava xxx=yyy (rebut: \"{0}\")", tros)); dades[match.Groups[1].Value] = match.Groups[2].Value; } if (!dades.ContainsKey("ent")) throw new Exception("No ent!"); string ent = dades["ent"]; if (ignoraEntrada.IsMatch(ent)) return null; match = netejaFinal.Match(ent); string arrel = match.Success ? match.Groups[1].Value : ent; match = netejaMig.Match(ent); if (match.Success) arrel = match.Groups[1].Value + match.Groups[2].Value; dades["arrel"] = arrel; dades["línia"] = linia; Entrada entrada = new Entrada(this, dades); entrada.Excepcions = Excepcio(entrada.Ent); return entrada; }
/// <summary> /// Genera les línies d'un fitxer .dic per a una entrada. /// </summary> /// <param name="entrada">L'entrada a partir de la qual volem generar.</param> /// <param name="identificador">Un identificador per als paradigmes.</param> /// <param name="filtre">Les marques que volem incloure al resultat.</param> /// <param name="speller">El client per al qual generarem les línies .dic.</param> /// <param name="comparador">La funció de comparació.</param> /// <returns>Una llista de línies amb el format adequat, ordenada segons el comparador.</returns> public static string[] GeneraLiniesDic(Entrada entrada, Marques filtre, Speller speller, Comparison<string> comparador) { List<Entrada> entrades = new List<Entrada>(); entrades.Add(entrada); return GeneraLiniesDic(entrades, filtre, speller, comparador); }
/// <summary> /// Torna la llista de mots corresponents a una entrada. /// Es passa l'entrada com a paràmetre perquè moltes entrades poden compartir un paradigma. /// </summary> /// <param name="entrada">L'entrada de la qual volem generar els mots.</param> /// <param name="nomesAfixos"> /// Si és true, només genera amb les regles que tenen la propietat EsAfix. /// Si és false, genera amb totes les regles possibles. /// </param> /// <returns>Una llista de mots.</returns> public virtual List<Mot> GeneraMots(Entrada entrada, Marques filtre, bool nomesAfixos) { throw new Exception("Sense implementar"); }
/// <summary> /// Torna la llista d'ítems del diccionari corresponents a una entrada. /// Es passa l'entrada com a paràmetre perquè moltes entrades poden compartir un paradigma. /// </summary> /// <param name="dades">Les dades de l'entrada.</param> /// <param name="excepcions">Informació sobre excepcions.</param> /// <param name="filtre">Les marques per filtrar el resultat</param> /// <param name="speller">El format del corrector.</param> /// <returns>Una llista amb els ítems.</returns> public virtual List<ItemDic> GeneraDic(Dictionary<string,string> dades, Dictionary<string, string> excepcions, Marques filtre, Entrada.Speller speller) { throw new Exception("Sense implementar"); }
private void MostraExemple(Entrada entrada) { MostraDadesEntrada(entrada); MostraDadesDic(entrada); string[] tot = Mot.LlistaPlana(entrada.GeneraMots(Marques.totes, false), Cat.Cmp, true).Split(' '); string comu = null; foreach (string un in tot) { string[] trossos = un.Split('='); if (trossos.Length != 2) continue; string info = trossos[0]; if (comu == null) comu = info; else { int i = 0; while (i < info.Length && i < comu.Length && info[i] == comu[i]) ++i; comu = info.Substring(0, i); } } int midaComu = 0; Dictionary<string, string> dades = null; if (comu != null) { midaComu = comu.Length; dades = new Dictionary<string, string>(); foreach (string un in tot) { string[] trossos = un.Split('='); string info = trossos[0].Substring(midaComu); string formes = trossos[1]; dades[info] = formes; } } else comu = ""; switch (comu) { case "VERB.": MostraHtml("verb", dades); break; case "NOM.F.": MostraHtml("nomfem", dades); break; case "NOM.M.": MostraHtml("nommasc", dades); break; case "NOM.": MostraHtml("nommascfem", dades); break; default: navegadorWeb.DocumentText = string.Format("=== \"{0}\" ===<br>\r\n{1}", entrada.Arrel, String.Join("<br>\r\n", tot)); break; } }
public override List<Mot> GeneraMots(Entrada entrada, Marques filtre, bool nomesAfixos) { List<ItemDic> items = Entrada.GeneraItemsDic(entrada, filtre, Entrada.Speller.HUNSPELL, Cat.Cmp); List<Mot> llista = GeneraMots(items, filtre, nomesAfixos); return llista; }
public override List<ItemDic> GeneraDic(Dictionary<string, string> dades, Dictionary<string, string> excepcions, Marques filtre, Entrada.Speller speller) { List<ItemDic> llista = new List<ItemDic>(); Genera(dades, excepcions, filtre, llista); return llista; }