• # Élémetns de réponse ;

    Posté par . En réponse au message La grammaire et Bison. Évalué à 3.

    Le conflit "réduction/réduction" (reduce/reduce conflict) vient du fait que bison est un compilateur LALR.

    En gros il y a un moment, il ne sait pas quel chemin prendre.

    Je dirais bien que ton lexème "FIN" pose problème puisqu'il peut très bien appartenir à ligne ou ses composantes (creation/fonction). Donc le compliateur ne peux pas réduire l'expression => erreur de reduce/reduce. (Il peut réduire de plusieurs manières, mais il ne fais pas de choix).


    Par ailleurs, je me trompe peut être parce que je n'ai pas fait de lex/yacc depuis un bout de temps, mais je pense que tu ne peux pas mettre une fonction comme ça directement suite aux règles.

    Tu devrais mettre ton code complet, ainsi que le flex qui va avec (sans les balises pre ou sur un site et linké ici). Ce serait plus facile de t'aider.

    Pour les pipes et les :, je fais comme ça : si il n'y a qu'un élément, je le met à la suite
    truc : machin
    Si il y en a plusieurs, alors je met à la ligne. Par contre je garde les pipe en début de ligne. C'est plus propre.
    truc :
    | machin1
    | machin2
    | machin3
    ;

    Mais bon il n'y a pas vraiment de règles et la beauté, c'est subjectif.