Algorithme First()

cs_nabil86 Messages postés 3 Date d'inscription vendredi 23 juin 2006 Statut Membre Dernière intervention 5 août 2009 - 14 juin 2009 à 23:53
cs_nabil86 Messages postés 3 Date d'inscription vendredi 23 juin 2006 Statut Membre Dernière intervention 5 août 2009 - 5 août 2009 à 16:07
Bonsoir tout le monde,
J'essaie d'implemeter l'algorithme First() j'ai realiser ce code mais il fonctionne dans des cas et dans d'autres non voici le code:
public Terminal[] first(Symbol s, Vocabulary v){

Terminal[] listTerminal = null;
if (v.get(s.getName()) instanceof Terminal) {
System.out.println("ici");
listTerminal[index] = (Terminal)s;
return listTerminal;
}

else {
for (int i = 0; i < prodList.size(); i++) {
if(prodList.get(i).getLeft().getName().equals(s.getName())){
if (prodList.get(i).getRight().get(0).equals("") || prodList.get(i).getRight().size() == 0) {
listTerminal[index] = new Terminal("epsi");
System.out.println("dans epsi");
index++;
}
else{
System.out.println(prodList.get(i).getLeft().getName());
Terminal[] t = first(prodList.get(i).getRight().get(0), v);
for (int j = 0; j < t.length; j++) {
listTerminal[index] = t[j];
index++;
}
}
}
}
}
return null;
}

3 réponses

FlopFlo Messages postés 20 Date d'inscription lundi 30 octobre 2006 Statut Membre Dernière intervention 5 août 2009
5 août 2009 à 14:23
Je te conseille de reposter avec des balises code si tu veux une réponse
0
cs_nabil86 Messages postés 3 Date d'inscription vendredi 23 juin 2006 Statut Membre Dernière intervention 5 août 2009
5 août 2009 à 16:07
public Terminal[] first(Symbol s, Vocabulary v)
{
Terminal[] listTerminal = null;
if (v.get(s.getName()) instanceof Terminal) {
System.out.println("ici");
listTerminal[index] = (Terminal)s;
return listTerminal;
}
else {
for (int i = 0; i < prodList.size(); i++) {
if(prodList.get(i).getLeft().getName().equals(s.getName()) {
if (prodList.get(i).getRight().get(0).equals("") || prodList.get(i).getRight().size() == 0) {
listTerminal[index] = new Terminal("epsi");
System.out.println("dans epsi");
index++;
}
else{
System.out.println(prodList.get(i).getLeft().getName());
Terminal[] t = first(prodList.get(i).getRight().get(0), v);
for (int j = 0; j < t.length; j++) {
listTerminal[index] = t[j];
index++;
}
}
}
}
}
return null;
}
0
cs_nabil86 Messages postés 3 Date d'inscription vendredi 23 juin 2006 Statut Membre Dernière intervention 5 août 2009
5 août 2009 à 16:07
merci d'avance
0
Rejoignez-nous