示例#1
0
 /// <summary>
 /// Crea una entrada, amb una arrel, un paradigma i informació extra.
 /// La informació extra es pot referir a excepcions, origen de la paraula, etc.
 /// Per defecte, les entrades tenen la marca '000'.
 /// </summary>
 /// <param name="identificador">L'objecte que identifica el paradigma al qual pertany l'entrada.</param>
 /// <param name="dades">Informació sobre l'entrada</param>
 public Entrada(Identificador identificador, Dictionary<string, string> dades)
 {
     this.dades = dades;
     this.excepcions = null;
     this.identificador = identificador;
     marques = null;
 }
示例#2
0
 private void testParaules(RTest resultat, Identificador idPar, Marques filtre, params string[] paraules)
 {
     List<Entrada> entrades = new List<Entrada>();
     List<string> notes = new List<string>();
     foreach (string paraula in paraules)
     {
         string infoParaula = paraula;
         string[] esperat = null;
         int posFletxa = paraula.IndexOf(" > ");
         if (posFletxa >= 0)
         {
             infoParaula = paraula.Substring(0, posFletxa);
             esperat = paraula.Substring(posFletxa + 3).Split(' ');
         }
         Entrada entrada = idPar.IdentificaEntrada(infoParaula);
         entrades.Add(entrada);
         string llista = Mot.LlistaPlana(entrada.GeneraMots(filtre, false), Cat.Cmp, true);
         bool ok = true;
         if (esperat != null)
             foreach (string esp in esperat)
                 if (!(llista + " ").Contains(esp + " "))
                 {
                     notes.Add(string.Format("No s'ha generat {0} ({1})", esp, entrada.Arrel));
                     ok = false;
                 }
         resultat.Nota("{0}: {1}", entrada.Ent, ok ? "OK" : "ERROR");
     }
     if (notes.Count > 0)
     {
         resultat.Assert(false, "Hi ha {0} error{1}", notes.Count, notes.Count == 1 ? "" : "s");
         foreach (string nota in notes)
             resultat.Nota(nota);
     }
 }
示例#3
0
 /// <summary>
 /// Llegeix entrades d'un fitxer, les identifica amb idPar i les afegeix a la llista.
 /// </summary>
 /// <param name="nomFitxer">El nom del fitxer amb les entrades. Hi ha una entrada per línia.
 /// S'ignoren les línies en blanc i les que comencen per "//".</param>
 /// <param name="identificador">Identificador de paradigmes. Es crida per a cada línia que pot contenir
 /// una entrada. Si idPar torna una Entrada, s'afegeix a la llista. Si torna null, no es
 /// fa res.</param>
 /// <param name="llista">La llista a la qual s'afegeixen les entrades que es troben.</param>
 /// <returns>El nombre d'entrades llegides del fitxer.</returns>
 public static int LlegeixEntrades(string nomFitxer, Identificador identificador, ref List<Entrada> llista)
 {
     int llegides = 0;
     return llegides;
 }
示例#4
0
 private void testParaules(RTest resultat, Identificador idPar, params string[] paraules)
 {
     testParaules(resultat, idPar, Marques.totes, paraules);
 }